diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cfa45f..3445102 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Jackify Changelog +## v0.0.32 - Engine Update and FNV Simplification +**Release Date:** September 8, 2025 + +### Engine Update +- **jackify-engine v0.3.12**: Fixed file extraction encoding issues + +### Improvements +- **FNV Modlists**: Simplified configuration using registry injection instead of launch options +- **Code Cleanup**: Removed special-case launch option handling for FNV + +--- + ## v0.0.31 - Pre-Alpha Polish Update **Release Date:** September 7, 2025 diff --git a/README.md b/README.md index b0cc0aa..54d24ee 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,31 @@ +![Jackify Banner](assets/images/readme/Jackify_Github_Banner.png) + +| [Wiki](https://github.com/Omni-guides/Jackify/wiki) | [Download](https://www.nexusmods.com/site/mods/xxx) | [Wabbajack Discord](https://discord.gg/wabbajack) | [Jackify Issues](https://github.com/Omni-guides/Jackify/issues) | [Legacy Guides](Legacy/) | [Ko-fi](https://ko-fi.com/omni1) | +|:---:|:---:|:---:|:---:|:---:|:---:| + +--- + + # Jackify -A modlist installer and manager for Wabbajack modlists on Linux +A modlist installation and configuration tool for Wabbajack modlists on Linux Jackify enables seamless installation and configuration of Wabbajack modlists on Linux systems, providing automated Steam shortcut creation and Proton prefix configuration. +### **Repository Migration Notice** + +This repository has evolved from the original [Wabbajack-Modlist-Linux](https://github.com/Omni-guides/Wabbajack-Modlist-Linux) guides and bash scripts into **Jackify** - a comprehensive Linux application for Wabbajack modlist management. + +**What changed?** +- **From**: Semi-automated bash scripts and step-by-step wiki guides +- **To**: A complete, automated Linux application with GUI and CLI interfaces +- **Why**: To provide a user-friendly application that removes the complexity of Wabbajack and modlist configuration + +**Previous Content**: All original guides and scripts are preserved in the `Legacy/` directory. Jackify provides the same functionality with significantly improved automation and user experience. + +--- + ## Introduction + Thank you for your interest in Jackify - the next step, and a giant leap forward from my automated Wabbajack and modlist post-install scripts. So, Jackify - What is it? Jackify is an almost Linux-native application written in Python, with a GUI produced with PySide6, and a full featured CLI interface if preferred. More info on the "almost" can be found in the full Introduction Wiki page. Currently, there are two main functions that Jackify will perform at this stage of development: @@ -19,6 +41,16 @@ Jackify is an almost Linux-native application written in Python, with a GUI prod - Automated Steam Integration: Automatic Steam shortcut creation with complete Proton configuration - Professional Interface: Both GUI and CLI interfaces with identical features +## Disclaimer + +**Jackify is a hobby project in early Alpha development stage. Use at your own risk.** + +- **No Warranty**: This software is provided "as is" without any warranty or guarantee of functionality +- **Best Effort Support**: Support is provided on a best-effort basis through community channels +- **System Compatibility**: Functionality on your specific system is not guaranteed +- **Data Safety**: Always backup your important data before using Jackify +- **Alpha Software**: Features may be incomplete, unstable, or change without notice + ## Quick Start ### Requirements @@ -30,8 +62,8 @@ Jackify is an almost Linux-native application written in Python, with a GUI prod ### Installation ```bash -# Download latest release -wget https://github.com/your-repo/jackify/releases/latest/Jackify.AppImage +# Download latest release from Nexus Mods +# Extract the Jackify.AppImage from the 7z archive chmod +x Jackify.AppImage ./Jackify.AppImage ``` @@ -85,6 +117,17 @@ This project is licensed under the GPLv3 License - see the LICENSE file for deta ## Contributing At this early stage of development, where basic functionality is the primary focus, I'd prefer to use GitHub Issues to suggest improvements, rather tha PRs. This will likely change in the future. +## Future Planned Features (not guaranteed) + +- Continue to expand the supported games list for fully automated configuration +- Add full TTW+Modlist automation for TTW based modlists +- Replace the API Key requirement with a more secure OAuth based approach +- Add support for modding and modlist creation tools via a sister application or module +- Revise the GUI to be more refined +- Dark/Light theme support for the GUI +- Advanced logging and diagnostics - more detailed troubleshooting information +- Automatic dependency resolution - ensure all required tools and libraries are installed + ## Support - Issues: Report bugs and request features via GitHub Issues - Documentation: See the Wiki for detailed guides @@ -97,4 +140,4 @@ At this early stage of development, where basic functionality is the primary foc --- -**Jackify** - Bringing Wabbajack modlist management to Linux \ No newline at end of file +**Jackify** - Simplifying Wabbajack modlist installation and configuration on Linux \ No newline at end of file diff --git a/assets/images/readme/Jackify_Github_Banner.png b/assets/images/readme/Jackify_Github_Banner.png new file mode 100644 index 0000000..3ebdba4 Binary files /dev/null and b/assets/images/readme/Jackify_Github_Banner.png differ diff --git a/assets/images/readme/Jackify_Github_Banner_tall.png b/assets/images/readme/Jackify_Github_Banner_tall.png new file mode 100644 index 0000000..ccde223 Binary files /dev/null and b/assets/images/readme/Jackify_Github_Banner_tall.png differ diff --git a/jackify/__init__.py b/jackify/__init__.py index a180e77..493b566 100644 --- a/jackify/__init__.py +++ b/jackify/__init__.py @@ -5,4 +5,4 @@ This package provides both CLI and GUI interfaces for managing Wabbajack modlists natively on Linux systems. """ -__version__ = "0.0.31" +__version__ = "0.0.32" diff --git a/jackify/backend/handlers/modlist_handler.py b/jackify/backend/handlers/modlist_handler.py index fed80ec..dbf38a2 100644 --- a/jackify/backend/handlers/modlist_handler.py +++ b/jackify/backend/handlers/modlist_handler.py @@ -673,17 +673,17 @@ class ModlistHandler: # Use canonical logic for all modlists/games components = self.get_modlist_wine_components(self.game_name, self.game_var_full) - # Detect special games and use vanilla AppID instead of modlist AppID - special_game_type = self.detect_special_game_type(self.modlist_dir) - self.logger.debug(f"Wine components step - modlist_dir='{self.modlist_dir}', special_game_type='{special_game_type}'") - if special_game_type == "fnv": - target_appid = "22380" # Vanilla Fallout New Vegas AppID - self.logger.info("Installing wine components to vanilla FNV compatdata (AppID 22380)") - elif special_game_type == "enderal": - target_appid = "976620" # Enderal: Forgotten Stories Special Edition AppID - self.logger.info("Installing wine components to vanilla Enderal compatdata (AppID 976620)") - else: - target_appid = self.appid # Normal modlist AppID + # DISABLED: Special game wine component routing - now using registry injection approach + # special_game_type = self.detect_special_game_type(self.modlist_dir) + # if special_game_type == "fnv": + # target_appid = "22380" # Vanilla Fallout New Vegas AppID + # elif special_game_type == "enderal": + # target_appid = "976620" # Enderal: Forgotten Stories Special Edition AppID + # else: + # target_appid = self.appid # Normal modlist AppID + + # All modlists now use their own AppID for wine components + target_appid = self.appid if not self.protontricks_handler.install_wine_components(target_appid, self.game_var_full, specific_components=components): self.logger.error("Failed to install Wine components. Configuration aborted.") diff --git a/jackify/backend/services/automated_prefix_service.py b/jackify/backend/services/automated_prefix_service.py index 6d0501a..bad22aa 100644 --- a/jackify/backend/services/automated_prefix_service.py +++ b/jackify/backend/services/automated_prefix_service.py @@ -1718,18 +1718,21 @@ echo Prefix creation complete. progress_callback("=== Steam Integration ===") progress_callback(f"{self._get_progress_timestamp()} Creating Steam shortcut with native service") - # Detect special game types early to generate proper launch options - from ..handlers.modlist_handler import ModlistHandler - modlist_handler = ModlistHandler() - special_game_type = modlist_handler.detect_special_game_type(modlist_install_dir) + # DISABLED: Special game launch options - now using registry injection approach + # from ..handlers.modlist_handler import ModlistHandler + # modlist_handler = ModlistHandler() + # special_game_type = modlist_handler.detect_special_game_type(modlist_install_dir) + # + # # Generate complete launch options for special games + # custom_launch_options = None + # if special_game_type in ["fnv", "enderal"]: + # custom_launch_options = self._generate_special_game_launch_options(special_game_type, modlist_install_dir) + # if not custom_launch_options: + # logger.error(f"Failed to generate launch options for {special_game_type.upper()} modlist") + # return False, None, None, None - # Generate complete launch options for special games + # All modlists now use standard shortcut creation without custom launch options custom_launch_options = None - if special_game_type in ["fnv", "enderal"]: - custom_launch_options = self._generate_special_game_launch_options(special_game_type, modlist_install_dir) - if not custom_launch_options: - logger.error(f"Failed to generate launch options for {special_game_type.upper()} modlist") - return False, None, None, None try: # Step 1: Create shortcut with native Steam service (pointing to ModOrganizer.exe initially) @@ -1803,8 +1806,17 @@ echo Prefix creation complete. if progress_callback: progress_callback(f"{self._get_progress_timestamp()} Setup verification completed") - # Get the prefix path + # Step 5: Inject game registry entries for FNV/Enderal modlists + logger.info("Step 5: Injecting game registry entries") + if progress_callback: + progress_callback(f"{self._get_progress_timestamp()} Injecting game registry entries...") + + # Get prefix path for registry injection prefix_path = self.get_prefix_path(appid) + if prefix_path: + self._inject_game_registry_entries(str(prefix_path)) + else: + logger.warning("Could not find prefix path for registry injection") last_timestamp = self._get_progress_timestamp() logger.info(f" Working workflow completed successfully! AppID: {appid}, Prefix: {prefix_path}") @@ -2736,4 +2748,139 @@ echo Prefix creation complete. return prefix_dir else: return None + + def _find_steam_game(self, app_id: str, common_names: list) -> Optional[str]: + """Find a Steam game installation path by AppID and common names""" + import os + from pathlib import Path + + # Get Steam libraries from libraryfolders.vdf + steam_config_path = Path.home() / ".steam/steam/config/libraryfolders.vdf" + if not steam_config_path.exists(): + return None + + steam_libraries = [] + try: + with open(steam_config_path, 'r') as f: + content = f.read() + # Parse library paths from VDF + import re + library_matches = re.findall(r'"path"\s+"([^"]+)"', content) + steam_libraries = [Path(path) / "steamapps" / "common" for path in library_matches] + except Exception as e: + logger.warning(f"Failed to parse Steam library folders: {e}") + return None + + # Search for game in each library + for library_path in steam_libraries: + if not library_path.exists(): + continue + + # Check manifest file first (more reliable) + manifest_path = library_path.parent / "appmanifest_{}.acf".format(app_id) + if manifest_path.exists(): + try: + with open(manifest_path, 'r') as f: + content = f.read() + install_dir_match = re.search(r'"installdir"\s+"([^"]+)"', content) + if install_dir_match: + game_path = library_path / install_dir_match.group(1) + if game_path.exists(): + return str(game_path) + except Exception: + pass + + # Fallback: check common folder names + for name in common_names: + game_path = library_path / name + if game_path.exists(): + return str(game_path) + + return None + + def _update_registry_path(self, system_reg_path: str, section_name: str, path_key: str, new_path: str) -> bool: + """Update a specific path value in Wine registry, preserving other entries""" + if not os.path.exists(system_reg_path): + return False + + try: + # Read existing content + with open(system_reg_path, 'r', encoding='utf-8', errors='ignore') as f: + lines = f.readlines() + + in_target_section = False + path_updated = False + wine_path = new_path.replace('/', '\\\\') + + # Update existing path if found + for i, line in enumerate(lines): + stripped_line = line.strip() + if stripped_line == section_name: + in_target_section = True + elif stripped_line.startswith('[') and in_target_section: + in_target_section = False + elif in_target_section and f'"{path_key}"' in line: + lines[i] = f'"{path_key}"="Z:\\\\{wine_path}\\\\"\n' # Add trailing backslashes + path_updated = True + break + + # Add new section if path wasn't updated + if not path_updated: + lines.append(f'\n{section_name}\n') + lines.append(f'"{path_key}"="Z:\\\\{wine_path}\\\\"\n') # Add trailing backslashes + + # Write updated content + with open(system_reg_path, 'w', encoding='utf-8') as f: + f.writelines(lines) + + return True + + except Exception as e: + logger.error(f"Failed to update registry path: {e}") + return False + + def _inject_game_registry_entries(self, modlist_compatdata_path: str): + """Detect and inject FNV/Enderal game paths into modlist's system.reg""" + system_reg_path = os.path.join(modlist_compatdata_path, "pfx", "system.reg") + if not os.path.exists(system_reg_path): + logger.warning("system.reg not found, skipping game path injection") + return + + logger.info("Detecting and injecting game registry entries...") + + # Game configurations + games_config = { + "22380": { # Fallout New Vegas AppID + "name": "Fallout New Vegas", + "common_names": ["Fallout New Vegas", "FalloutNV"], + "registry_section": "[Software\\\\WOW6432Node\\\\bethesda softworks\\\\falloutnv]", + "path_key": "Installed Path" + }, + "976620": { # Enderal Special Edition AppID + "name": "Enderal", + "common_names": ["Enderal: Forgotten Stories (Special Edition)", "Enderal Special Edition", "Enderal"], + "registry_section": "[Software\\\\Wow6432Node\\\\SureAI\\\\Enderal SE]", + "path_key": "installed path" + } + } + + # Detect and inject each game + for app_id, config in games_config.items(): + game_path = self._find_steam_game(app_id, config["common_names"]) + if game_path: + logger.info(f"Detected {config['name']} at: {game_path}") + success = self._update_registry_path( + system_reg_path, + config["registry_section"], + config["path_key"], + game_path + ) + if success: + logger.info(f"Updated registry entry for {config['name']}") + else: + logger.warning(f"Failed to update registry entry for {config['name']}") + else: + logger.debug(f"{config['name']} not found in Steam libraries") + + logger.info("Game registry injection completed") diff --git a/jackify/engine/Wabbajack.CLI.Builder.dll b/jackify/engine/Wabbajack.CLI.Builder.dll index 4eb91bb..95aae1e 100644 Binary files a/jackify/engine/Wabbajack.CLI.Builder.dll and b/jackify/engine/Wabbajack.CLI.Builder.dll differ diff --git a/jackify/engine/Wabbajack.Common.dll b/jackify/engine/Wabbajack.Common.dll index 2299d0d..d419dc5 100644 Binary files a/jackify/engine/Wabbajack.Common.dll and b/jackify/engine/Wabbajack.Common.dll differ diff --git a/jackify/engine/Wabbajack.Compiler.dll b/jackify/engine/Wabbajack.Compiler.dll index 38175b9..e0afe15 100644 Binary files a/jackify/engine/Wabbajack.Compiler.dll and b/jackify/engine/Wabbajack.Compiler.dll differ diff --git a/jackify/engine/Wabbajack.Compression.BSA.dll b/jackify/engine/Wabbajack.Compression.BSA.dll index b2aa836..045373a 100644 Binary files a/jackify/engine/Wabbajack.Compression.BSA.dll and b/jackify/engine/Wabbajack.Compression.BSA.dll differ diff --git a/jackify/engine/Wabbajack.Compression.Zip.dll b/jackify/engine/Wabbajack.Compression.Zip.dll index 8f532f0..e83b907 100644 Binary files a/jackify/engine/Wabbajack.Compression.Zip.dll and b/jackify/engine/Wabbajack.Compression.Zip.dll differ diff --git a/jackify/engine/Wabbajack.Configuration.dll b/jackify/engine/Wabbajack.Configuration.dll index 3baa3cf..0ab6821 100644 Binary files a/jackify/engine/Wabbajack.Configuration.dll and b/jackify/engine/Wabbajack.Configuration.dll differ diff --git a/jackify/engine/Wabbajack.DTOs.dll b/jackify/engine/Wabbajack.DTOs.dll index 6ebb595..1d044d4 100644 Binary files a/jackify/engine/Wabbajack.DTOs.dll and b/jackify/engine/Wabbajack.DTOs.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.Bethesda.dll b/jackify/engine/Wabbajack.Downloaders.Bethesda.dll index 41eaa95..3489e9e 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.Bethesda.dll and b/jackify/engine/Wabbajack.Downloaders.Bethesda.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.Dispatcher.dll b/jackify/engine/Wabbajack.Downloaders.Dispatcher.dll index ee6032a..1001c59 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.Dispatcher.dll and b/jackify/engine/Wabbajack.Downloaders.Dispatcher.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.GameFile.dll b/jackify/engine/Wabbajack.Downloaders.GameFile.dll index 87c6841..586973d 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.GameFile.dll and b/jackify/engine/Wabbajack.Downloaders.GameFile.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.GoogleDrive.dll b/jackify/engine/Wabbajack.Downloaders.GoogleDrive.dll index eb98b38..3375e49 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.GoogleDrive.dll and b/jackify/engine/Wabbajack.Downloaders.GoogleDrive.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.Http.dll b/jackify/engine/Wabbajack.Downloaders.Http.dll index 49920d1..b14ba93 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.Http.dll and b/jackify/engine/Wabbajack.Downloaders.Http.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.IPS4OAuth2Downloader.dll b/jackify/engine/Wabbajack.Downloaders.IPS4OAuth2Downloader.dll index aab87ca..a8fbb78 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.IPS4OAuth2Downloader.dll and b/jackify/engine/Wabbajack.Downloaders.IPS4OAuth2Downloader.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.Interfaces.dll b/jackify/engine/Wabbajack.Downloaders.Interfaces.dll index 1e85fa5..a35ed03 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.Interfaces.dll and b/jackify/engine/Wabbajack.Downloaders.Interfaces.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.Manual.dll b/jackify/engine/Wabbajack.Downloaders.Manual.dll index 6f52935..c88e113 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.Manual.dll and b/jackify/engine/Wabbajack.Downloaders.Manual.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.MediaFire.dll b/jackify/engine/Wabbajack.Downloaders.MediaFire.dll index 32221f7..3063a03 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.MediaFire.dll and b/jackify/engine/Wabbajack.Downloaders.MediaFire.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.Mega.dll b/jackify/engine/Wabbajack.Downloaders.Mega.dll index aa46591..b59d7e7 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.Mega.dll and b/jackify/engine/Wabbajack.Downloaders.Mega.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.ModDB.dll b/jackify/engine/Wabbajack.Downloaders.ModDB.dll index 47267ea..e5c259c 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.ModDB.dll and b/jackify/engine/Wabbajack.Downloaders.ModDB.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.Nexus.dll b/jackify/engine/Wabbajack.Downloaders.Nexus.dll index f3e7bd1..7994715 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.Nexus.dll and b/jackify/engine/Wabbajack.Downloaders.Nexus.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.VerificationCache.dll b/jackify/engine/Wabbajack.Downloaders.VerificationCache.dll index 9dd653c..94eb5f2 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.VerificationCache.dll and b/jackify/engine/Wabbajack.Downloaders.VerificationCache.dll differ diff --git a/jackify/engine/Wabbajack.Downloaders.WabbajackCDN.dll b/jackify/engine/Wabbajack.Downloaders.WabbajackCDN.dll index 3e7d78e..48709b8 100644 Binary files a/jackify/engine/Wabbajack.Downloaders.WabbajackCDN.dll and b/jackify/engine/Wabbajack.Downloaders.WabbajackCDN.dll differ diff --git a/jackify/engine/Wabbajack.FileExtractor.dll b/jackify/engine/Wabbajack.FileExtractor.dll index dcc701f..0c40a63 100644 Binary files a/jackify/engine/Wabbajack.FileExtractor.dll and b/jackify/engine/Wabbajack.FileExtractor.dll differ diff --git a/jackify/engine/Wabbajack.Hashing.PHash.dll b/jackify/engine/Wabbajack.Hashing.PHash.dll index a949418..cce8de4 100644 Binary files a/jackify/engine/Wabbajack.Hashing.PHash.dll and b/jackify/engine/Wabbajack.Hashing.PHash.dll differ diff --git a/jackify/engine/Wabbajack.Hashing.xxHash64.dll b/jackify/engine/Wabbajack.Hashing.xxHash64.dll index 90761b7..52f7bfc 100644 Binary files a/jackify/engine/Wabbajack.Hashing.xxHash64.dll and b/jackify/engine/Wabbajack.Hashing.xxHash64.dll differ diff --git a/jackify/engine/Wabbajack.IO.Async.dll b/jackify/engine/Wabbajack.IO.Async.dll index ec4bd4b..f0d2530 100644 Binary files a/jackify/engine/Wabbajack.IO.Async.dll and b/jackify/engine/Wabbajack.IO.Async.dll differ diff --git a/jackify/engine/Wabbajack.Installer.dll b/jackify/engine/Wabbajack.Installer.dll index 1b139a2..3ba69fd 100644 Binary files a/jackify/engine/Wabbajack.Installer.dll and b/jackify/engine/Wabbajack.Installer.dll differ diff --git a/jackify/engine/Wabbajack.Networking.BethesdaNet.dll b/jackify/engine/Wabbajack.Networking.BethesdaNet.dll index ef51818..5d01125 100644 Binary files a/jackify/engine/Wabbajack.Networking.BethesdaNet.dll and b/jackify/engine/Wabbajack.Networking.BethesdaNet.dll differ diff --git a/jackify/engine/Wabbajack.Networking.Discord.dll b/jackify/engine/Wabbajack.Networking.Discord.dll index 2e8f27e..9958a81 100644 Binary files a/jackify/engine/Wabbajack.Networking.Discord.dll and b/jackify/engine/Wabbajack.Networking.Discord.dll differ diff --git a/jackify/engine/Wabbajack.Networking.GitHub.dll b/jackify/engine/Wabbajack.Networking.GitHub.dll index 4b3fa1a..b1e5779 100644 Binary files a/jackify/engine/Wabbajack.Networking.GitHub.dll and b/jackify/engine/Wabbajack.Networking.GitHub.dll differ diff --git a/jackify/engine/Wabbajack.Networking.Http.Interfaces.dll b/jackify/engine/Wabbajack.Networking.Http.Interfaces.dll index b2e15c5..88762e6 100644 Binary files a/jackify/engine/Wabbajack.Networking.Http.Interfaces.dll and b/jackify/engine/Wabbajack.Networking.Http.Interfaces.dll differ diff --git a/jackify/engine/Wabbajack.Networking.Http.dll b/jackify/engine/Wabbajack.Networking.Http.dll index 4c42eb1..027498a 100644 Binary files a/jackify/engine/Wabbajack.Networking.Http.dll and b/jackify/engine/Wabbajack.Networking.Http.dll differ diff --git a/jackify/engine/Wabbajack.Networking.NexusApi.dll b/jackify/engine/Wabbajack.Networking.NexusApi.dll index 38369c5..3a82176 100644 Binary files a/jackify/engine/Wabbajack.Networking.NexusApi.dll and b/jackify/engine/Wabbajack.Networking.NexusApi.dll differ diff --git a/jackify/engine/Wabbajack.Networking.WabbajackClientApi.dll b/jackify/engine/Wabbajack.Networking.WabbajackClientApi.dll index b9b151d..c974bed 100644 Binary files a/jackify/engine/Wabbajack.Networking.WabbajackClientApi.dll and b/jackify/engine/Wabbajack.Networking.WabbajackClientApi.dll differ diff --git a/jackify/engine/Wabbajack.Paths.IO.dll b/jackify/engine/Wabbajack.Paths.IO.dll index 8c44315..69f552b 100644 Binary files a/jackify/engine/Wabbajack.Paths.IO.dll and b/jackify/engine/Wabbajack.Paths.IO.dll differ diff --git a/jackify/engine/Wabbajack.Paths.dll b/jackify/engine/Wabbajack.Paths.dll index 9f1573b..084d3ac 100644 Binary files a/jackify/engine/Wabbajack.Paths.dll and b/jackify/engine/Wabbajack.Paths.dll differ diff --git a/jackify/engine/Wabbajack.RateLimiter.dll b/jackify/engine/Wabbajack.RateLimiter.dll index db25f6b..9d2a45a 100644 Binary files a/jackify/engine/Wabbajack.RateLimiter.dll and b/jackify/engine/Wabbajack.RateLimiter.dll differ diff --git a/jackify/engine/Wabbajack.Server.Lib.dll b/jackify/engine/Wabbajack.Server.Lib.dll index 74ebf28..d89e953 100644 Binary files a/jackify/engine/Wabbajack.Server.Lib.dll and b/jackify/engine/Wabbajack.Server.Lib.dll differ diff --git a/jackify/engine/Wabbajack.Services.OSIntegrated.dll b/jackify/engine/Wabbajack.Services.OSIntegrated.dll index 8b7269a..1edc770 100644 Binary files a/jackify/engine/Wabbajack.Services.OSIntegrated.dll and b/jackify/engine/Wabbajack.Services.OSIntegrated.dll differ diff --git a/jackify/engine/Wabbajack.VFS.Interfaces.dll b/jackify/engine/Wabbajack.VFS.Interfaces.dll index 05c4be9..2ec35c1 100644 Binary files a/jackify/engine/Wabbajack.VFS.Interfaces.dll and b/jackify/engine/Wabbajack.VFS.Interfaces.dll differ diff --git a/jackify/engine/Wabbajack.VFS.dll b/jackify/engine/Wabbajack.VFS.dll index 0b1cf09..9945c88 100644 Binary files a/jackify/engine/Wabbajack.VFS.dll and b/jackify/engine/Wabbajack.VFS.dll differ diff --git a/jackify/engine/jackify-engine.deps.json b/jackify/engine/jackify-engine.deps.json index 11c0d9a..0ecd450 100644 --- a/jackify/engine/jackify-engine.deps.json +++ b/jackify/engine/jackify-engine.deps.json @@ -7,7 +7,7 @@ "targets": { ".NETCoreApp,Version=v8.0": {}, ".NETCoreApp,Version=v8.0/linux-x64": { - "jackify-engine/0.3.11": { + "jackify-engine/0.3.12": { "dependencies": { "Markdig": "0.40.0", "Microsoft.Extensions.Configuration.Json": "9.0.1", @@ -22,16 +22,16 @@ "SixLabors.ImageSharp": "3.1.6", "System.CommandLine": "2.0.0-beta4.22272.1", "System.CommandLine.NamingConventionBinder": "2.0.0-beta4.22272.1", - "Wabbajack.CLI.Builder": "0.3.11", - "Wabbajack.Downloaders.Bethesda": "0.3.11", - "Wabbajack.Downloaders.Dispatcher": "0.3.11", - "Wabbajack.Hashing.xxHash64": "0.3.11", - "Wabbajack.Networking.Discord": "0.3.11", - "Wabbajack.Networking.GitHub": "0.3.11", - "Wabbajack.Paths.IO": "0.3.11", - "Wabbajack.Server.Lib": "0.3.11", - "Wabbajack.Services.OSIntegrated": "0.3.11", - "Wabbajack.VFS": "0.3.11", + "Wabbajack.CLI.Builder": "0.3.12", + "Wabbajack.Downloaders.Bethesda": "0.3.12", + "Wabbajack.Downloaders.Dispatcher": "0.3.12", + "Wabbajack.Hashing.xxHash64": "0.3.12", + "Wabbajack.Networking.Discord": "0.3.12", + "Wabbajack.Networking.GitHub": "0.3.12", + "Wabbajack.Paths.IO": "0.3.12", + "Wabbajack.Server.Lib": "0.3.12", + "Wabbajack.Services.OSIntegrated": "0.3.12", + "Wabbajack.VFS": "0.3.12", "MegaApiClient": "1.0.0.0", "runtimepack.Microsoft.NETCore.App.Runtime.linux-x64": "8.0.19" }, @@ -1781,7 +1781,7 @@ } } }, - "Wabbajack.CLI.Builder/0.3.11": { + "Wabbajack.CLI.Builder/0.3.12": { "dependencies": { "Microsoft.Extensions.Configuration.Json": "9.0.1", "Microsoft.Extensions.DependencyInjection": "9.0.1", @@ -1791,109 +1791,109 @@ "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "System.CommandLine": "2.0.0-beta4.22272.1", "System.CommandLine.NamingConventionBinder": "2.0.0-beta4.22272.1", - "Wabbajack.Paths": "0.3.11" + "Wabbajack.Paths": "0.3.12" }, "runtime": { "Wabbajack.CLI.Builder.dll": {} } }, - "Wabbajack.Common/0.3.11": { + "Wabbajack.Common/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "System.Reactive": "6.0.1", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Networking.Http": "0.3.11", - "Wabbajack.Paths.IO": "0.3.11" + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Networking.Http": "0.3.12", + "Wabbajack.Paths.IO": "0.3.12" }, "runtime": { "Wabbajack.Common.dll": {} } }, - "Wabbajack.Compiler/0.3.11": { + "Wabbajack.Compiler/0.3.12": { "dependencies": { "F23.StringSimilarity": "6.0.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Downloaders.Dispatcher": "0.3.11", - "Wabbajack.Installer": "0.3.11", - "Wabbajack.VFS": "0.3.11", + "Wabbajack.Downloaders.Dispatcher": "0.3.12", + "Wabbajack.Installer": "0.3.12", + "Wabbajack.VFS": "0.3.12", "ini-parser-netstandard": "2.5.2" }, "runtime": { "Wabbajack.Compiler.dll": {} } }, - "Wabbajack.Compression.BSA/0.3.11": { + "Wabbajack.Compression.BSA/0.3.12": { "dependencies": { "K4os.Compression.LZ4.Streams": "1.3.8", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "SharpZipLib": "1.4.2", - "Wabbajack.Common": "0.3.11", - "Wabbajack.DTOs": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.DTOs": "0.3.12" }, "runtime": { "Wabbajack.Compression.BSA.dll": {} } }, - "Wabbajack.Compression.Zip/0.3.11": { + "Wabbajack.Compression.Zip/0.3.12": { "dependencies": { - "Wabbajack.IO.Async": "0.3.11" + "Wabbajack.IO.Async": "0.3.12" }, "runtime": { "Wabbajack.Compression.Zip.dll": {} } }, - "Wabbajack.Configuration/0.3.11": { + "Wabbajack.Configuration/0.3.12": { "runtime": { "Wabbajack.Configuration.dll": {} } }, - "Wabbajack.Downloaders.Bethesda/0.3.11": { + "Wabbajack.Downloaders.Bethesda/0.3.12": { "dependencies": { "LibAES-CTR": "1.1.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "SharpZipLib": "1.4.2", - "Wabbajack.Common": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.Networking.BethesdaNet": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.Networking.BethesdaNet": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.Bethesda.dll": {} } }, - "Wabbajack.Downloaders.Dispatcher/0.3.11": { + "Wabbajack.Downloaders.Dispatcher/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Downloaders.Bethesda": "0.3.11", - "Wabbajack.Downloaders.GameFile": "0.3.11", - "Wabbajack.Downloaders.GoogleDrive": "0.3.11", - "Wabbajack.Downloaders.Http": "0.3.11", - "Wabbajack.Downloaders.IPS4OAuth2Downloader": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.Downloaders.Manual": "0.3.11", - "Wabbajack.Downloaders.MediaFire": "0.3.11", - "Wabbajack.Downloaders.Mega": "0.3.11", - "Wabbajack.Downloaders.ModDB": "0.3.11", - "Wabbajack.Downloaders.Nexus": "0.3.11", - "Wabbajack.Downloaders.VerificationCache": "0.3.11", - "Wabbajack.Downloaders.WabbajackCDN": "0.3.11", - "Wabbajack.Networking.WabbajackClientApi": "0.3.11" + "Wabbajack.Downloaders.Bethesda": "0.3.12", + "Wabbajack.Downloaders.GameFile": "0.3.12", + "Wabbajack.Downloaders.GoogleDrive": "0.3.12", + "Wabbajack.Downloaders.Http": "0.3.12", + "Wabbajack.Downloaders.IPS4OAuth2Downloader": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.Downloaders.Manual": "0.3.12", + "Wabbajack.Downloaders.MediaFire": "0.3.12", + "Wabbajack.Downloaders.Mega": "0.3.12", + "Wabbajack.Downloaders.ModDB": "0.3.12", + "Wabbajack.Downloaders.Nexus": "0.3.12", + "Wabbajack.Downloaders.VerificationCache": "0.3.12", + "Wabbajack.Downloaders.WabbajackCDN": "0.3.12", + "Wabbajack.Networking.WabbajackClientApi": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.Dispatcher.dll": {} } }, - "Wabbajack.Downloaders.GameFile/0.3.11": { + "Wabbajack.Downloaders.GameFile/0.3.12": { "dependencies": { "GameFinder.StoreHandlers.EADesktop": "4.5.0", "GameFinder.StoreHandlers.EGS": "4.5.0", @@ -1903,360 +1903,360 @@ "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.VFS": "0.3.11" + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.VFS": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.GameFile.dll": {} } }, - "Wabbajack.Downloaders.GoogleDrive/0.3.11": { + "Wabbajack.Downloaders.GoogleDrive/0.3.12": { "dependencies": { "HtmlAgilityPack": "1.11.72", "Microsoft.AspNetCore.Http.Extensions": "2.3.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Common": "0.3.11", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.Networking.Http": "0.3.11", - "Wabbajack.Networking.Http.Interfaces": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.Networking.Http": "0.3.12", + "Wabbajack.Networking.Http.Interfaces": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.GoogleDrive.dll": {} } }, - "Wabbajack.Downloaders.Http/0.3.11": { + "Wabbajack.Downloaders.Http/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Common": "0.3.11", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.Networking.BethesdaNet": "0.3.11", - "Wabbajack.Networking.Http.Interfaces": "0.3.11", - "Wabbajack.Paths.IO": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.Networking.BethesdaNet": "0.3.12", + "Wabbajack.Networking.Http.Interfaces": "0.3.12", + "Wabbajack.Paths.IO": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.Http.dll": {} } }, - "Wabbajack.Downloaders.Interfaces/0.3.11": { + "Wabbajack.Downloaders.Interfaces/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", - "Wabbajack.Compression.Zip": "0.3.11", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Paths.IO": "0.3.11" + "Wabbajack.Compression.Zip": "0.3.12", + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Paths.IO": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.Interfaces.dll": {} } }, - "Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.11": { + "Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.12": { "dependencies": { "F23.StringSimilarity": "6.0.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Common": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.Networking.Http": "0.3.11", - "Wabbajack.Networking.Http.Interfaces": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.Networking.Http": "0.3.12", + "Wabbajack.Networking.Http.Interfaces": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.IPS4OAuth2Downloader.dll": {} } }, - "Wabbajack.Downloaders.Manual/0.3.11": { + "Wabbajack.Downloaders.Manual/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Common": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.Manual.dll": {} } }, - "Wabbajack.Downloaders.MediaFire/0.3.11": { + "Wabbajack.Downloaders.MediaFire/0.3.12": { "dependencies": { "HtmlAgilityPack": "1.11.72", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Common": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.Networking.Http.Interfaces": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.Networking.Http.Interfaces": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.MediaFire.dll": {} } }, - "Wabbajack.Downloaders.Mega/0.3.11": { + "Wabbajack.Downloaders.Mega/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", - "Wabbajack.Common": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.Paths.IO": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.Paths.IO": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.Mega.dll": {} } }, - "Wabbajack.Downloaders.ModDB/0.3.11": { + "Wabbajack.Downloaders.ModDB/0.3.12": { "dependencies": { "HtmlAgilityPack": "1.11.72", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", - "Wabbajack.Common": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.Networking.Http": "0.3.11", - "Wabbajack.Networking.Http.Interfaces": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.Networking.Http": "0.3.12", + "Wabbajack.Networking.Http.Interfaces": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.ModDB.dll": {} } }, - "Wabbajack.Downloaders.Nexus/0.3.11": { + "Wabbajack.Downloaders.Nexus/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.Hashing.xxHash64": "0.3.11", - "Wabbajack.Networking.Http": "0.3.11", - "Wabbajack.Networking.Http.Interfaces": "0.3.11", - "Wabbajack.Networking.NexusApi": "0.3.11", - "Wabbajack.Paths": "0.3.11" + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.Hashing.xxHash64": "0.3.12", + "Wabbajack.Networking.Http": "0.3.12", + "Wabbajack.Networking.Http.Interfaces": "0.3.12", + "Wabbajack.Networking.NexusApi": "0.3.12", + "Wabbajack.Paths": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.Nexus.dll": {} } }, - "Wabbajack.Downloaders.VerificationCache/0.3.11": { + "Wabbajack.Downloaders.VerificationCache/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Stub.System.Data.SQLite.Core.NetStandard": "1.0.119", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Paths.IO": "0.3.11" + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Paths.IO": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.VerificationCache.dll": {} } }, - "Wabbajack.Downloaders.WabbajackCDN/0.3.11": { + "Wabbajack.Downloaders.WabbajackCDN/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Microsoft.Toolkit.HighPerformance": "7.1.2", - "Wabbajack.Common": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.Networking.Http": "0.3.11", - "Wabbajack.RateLimiter": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.Networking.Http": "0.3.12", + "Wabbajack.RateLimiter": "0.3.12" }, "runtime": { "Wabbajack.Downloaders.WabbajackCDN.dll": {} } }, - "Wabbajack.DTOs/0.3.11": { + "Wabbajack.DTOs/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", - "Wabbajack.Hashing.xxHash64": "0.3.11", - "Wabbajack.Paths": "0.3.11" + "Wabbajack.Hashing.xxHash64": "0.3.12", + "Wabbajack.Paths": "0.3.12" }, "runtime": { "Wabbajack.DTOs.dll": {} } }, - "Wabbajack.FileExtractor/0.3.11": { + "Wabbajack.FileExtractor/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "OMODFramework": "3.0.1", - "Wabbajack.Common": "0.3.11", - "Wabbajack.Compression.BSA": "0.3.11", - "Wabbajack.Hashing.PHash": "0.3.11", - "Wabbajack.Paths": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.Compression.BSA": "0.3.12", + "Wabbajack.Hashing.PHash": "0.3.12", + "Wabbajack.Paths": "0.3.12" }, "runtime": { "Wabbajack.FileExtractor.dll": {} } }, - "Wabbajack.Hashing.PHash/0.3.11": { + "Wabbajack.Hashing.PHash/0.3.12": { "dependencies": { "BCnEncoder.Net.ImageSharp": "1.1.1", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Shipwreck.Phash": "0.5.0", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Common": "0.3.11", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Paths": "0.3.11", - "Wabbajack.Paths.IO": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Paths": "0.3.12", + "Wabbajack.Paths.IO": "0.3.12" }, "runtime": { "Wabbajack.Hashing.PHash.dll": {} } }, - "Wabbajack.Hashing.xxHash64/0.3.11": { + "Wabbajack.Hashing.xxHash64/0.3.12": { "dependencies": { - "Wabbajack.Paths": "0.3.11", - "Wabbajack.RateLimiter": "0.3.11" + "Wabbajack.Paths": "0.3.12", + "Wabbajack.RateLimiter": "0.3.12" }, "runtime": { "Wabbajack.Hashing.xxHash64.dll": {} } }, - "Wabbajack.Installer/0.3.11": { + "Wabbajack.Installer/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", "Octopus.Octodiff": "2.0.548", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Downloaders.Dispatcher": "0.3.11", - "Wabbajack.Downloaders.GameFile": "0.3.11", - "Wabbajack.FileExtractor": "0.3.11", - "Wabbajack.Networking.WabbajackClientApi": "0.3.11", - "Wabbajack.Paths": "0.3.11", - "Wabbajack.Paths.IO": "0.3.11", - "Wabbajack.VFS": "0.3.11", + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Downloaders.Dispatcher": "0.3.12", + "Wabbajack.Downloaders.GameFile": "0.3.12", + "Wabbajack.FileExtractor": "0.3.12", + "Wabbajack.Networking.WabbajackClientApi": "0.3.12", + "Wabbajack.Paths": "0.3.12", + "Wabbajack.Paths.IO": "0.3.12", + "Wabbajack.VFS": "0.3.12", "ini-parser-netstandard": "2.5.2" }, "runtime": { "Wabbajack.Installer.dll": {} } }, - "Wabbajack.IO.Async/0.3.11": { + "Wabbajack.IO.Async/0.3.12": { "runtime": { "Wabbajack.IO.Async.dll": {} } }, - "Wabbajack.Networking.BethesdaNet/0.3.11": { + "Wabbajack.Networking.BethesdaNet/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Networking.Http": "0.3.11", - "Wabbajack.Networking.Http.Interfaces": "0.3.11" + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Networking.Http": "0.3.12", + "Wabbajack.Networking.Http.Interfaces": "0.3.12" }, "runtime": { "Wabbajack.Networking.BethesdaNet.dll": {} } }, - "Wabbajack.Networking.Discord/0.3.11": { + "Wabbajack.Networking.Discord/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.Networking.Http.Interfaces": "0.3.11" + "Wabbajack.Networking.Http.Interfaces": "0.3.12" }, "runtime": { "Wabbajack.Networking.Discord.dll": {} } }, - "Wabbajack.Networking.GitHub/0.3.11": { + "Wabbajack.Networking.GitHub/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Octokit": "14.0.0", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Networking.Http.Interfaces": "0.3.11" + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Networking.Http.Interfaces": "0.3.12" }, "runtime": { "Wabbajack.Networking.GitHub.dll": {} } }, - "Wabbajack.Networking.Http/0.3.11": { + "Wabbajack.Networking.Http/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Http": "9.0.1", "Microsoft.Extensions.Logging": "9.0.1", - "Wabbajack.Configuration": "0.3.11", - "Wabbajack.Downloaders.Interfaces": "0.3.11", - "Wabbajack.Hashing.xxHash64": "0.3.11", - "Wabbajack.Networking.Http.Interfaces": "0.3.11", - "Wabbajack.Paths": "0.3.11", - "Wabbajack.Paths.IO": "0.3.11" + "Wabbajack.Configuration": "0.3.12", + "Wabbajack.Downloaders.Interfaces": "0.3.12", + "Wabbajack.Hashing.xxHash64": "0.3.12", + "Wabbajack.Networking.Http.Interfaces": "0.3.12", + "Wabbajack.Paths": "0.3.12", + "Wabbajack.Paths.IO": "0.3.12" }, "runtime": { "Wabbajack.Networking.Http.dll": {} } }, - "Wabbajack.Networking.Http.Interfaces/0.3.11": { + "Wabbajack.Networking.Http.Interfaces/0.3.12": { "dependencies": { - "Wabbajack.Hashing.xxHash64": "0.3.11" + "Wabbajack.Hashing.xxHash64": "0.3.12" }, "runtime": { "Wabbajack.Networking.Http.Interfaces.dll": {} } }, - "Wabbajack.Networking.NexusApi/0.3.11": { + "Wabbajack.Networking.NexusApi/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Networking.Http": "0.3.11", - "Wabbajack.Networking.Http.Interfaces": "0.3.11", - "Wabbajack.Networking.WabbajackClientApi": "0.3.11" + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Networking.Http": "0.3.12", + "Wabbajack.Networking.Http.Interfaces": "0.3.12", + "Wabbajack.Networking.WabbajackClientApi": "0.3.12" }, "runtime": { "Wabbajack.Networking.NexusApi.dll": {} } }, - "Wabbajack.Networking.WabbajackClientApi/0.3.11": { + "Wabbajack.Networking.WabbajackClientApi/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "Octokit": "14.0.0", - "Wabbajack.Common": "0.3.11", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Paths.IO": "0.3.11", - "Wabbajack.VFS.Interfaces": "0.3.11", + "Wabbajack.Common": "0.3.12", + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Paths.IO": "0.3.12", + "Wabbajack.VFS.Interfaces": "0.3.12", "YamlDotNet": "16.3.0" }, "runtime": { "Wabbajack.Networking.WabbajackClientApi.dll": {} } }, - "Wabbajack.Paths/0.3.11": { + "Wabbajack.Paths/0.3.12": { "runtime": { "Wabbajack.Paths.dll": {} } }, - "Wabbajack.Paths.IO/0.3.11": { + "Wabbajack.Paths.IO/0.3.12": { "dependencies": { - "Wabbajack.Paths": "0.3.11", + "Wabbajack.Paths": "0.3.12", "shortid": "4.0.0" }, "runtime": { "Wabbajack.Paths.IO.dll": {} } }, - "Wabbajack.RateLimiter/0.3.11": { + "Wabbajack.RateLimiter/0.3.12": { "runtime": { "Wabbajack.RateLimiter.dll": {} } }, - "Wabbajack.Server.Lib/0.3.11": { + "Wabbajack.Server.Lib/0.3.12": { "dependencies": { "FluentFTP": "52.0.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", @@ -2264,58 +2264,58 @@ "Nettle": "3.0.0", "Newtonsoft.Json": "13.0.3", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Common": "0.3.11", - "Wabbajack.Networking.Http.Interfaces": "0.3.11", - "Wabbajack.Services.OSIntegrated": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.Networking.Http.Interfaces": "0.3.12", + "Wabbajack.Services.OSIntegrated": "0.3.12" }, "runtime": { "Wabbajack.Server.Lib.dll": {} } }, - "Wabbajack.Services.OSIntegrated/0.3.11": { + "Wabbajack.Services.OSIntegrated/0.3.12": { "dependencies": { "DeviceId": "6.8.0", "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Newtonsoft.Json": "13.0.3", "SixLabors.ImageSharp": "3.1.6", - "Wabbajack.Compiler": "0.3.11", - "Wabbajack.Downloaders.Dispatcher": "0.3.11", - "Wabbajack.Installer": "0.3.11", - "Wabbajack.Networking.BethesdaNet": "0.3.11", - "Wabbajack.Networking.Discord": "0.3.11", - "Wabbajack.VFS": "0.3.11" + "Wabbajack.Compiler": "0.3.12", + "Wabbajack.Downloaders.Dispatcher": "0.3.12", + "Wabbajack.Installer": "0.3.12", + "Wabbajack.Networking.BethesdaNet": "0.3.12", + "Wabbajack.Networking.Discord": "0.3.12", + "Wabbajack.VFS": "0.3.12" }, "runtime": { "Wabbajack.Services.OSIntegrated.dll": {} } }, - "Wabbajack.VFS/0.3.11": { + "Wabbajack.VFS/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", "Microsoft.Extensions.Logging.Abstractions": "9.0.1", "SixLabors.ImageSharp": "3.1.6", "System.Data.SQLite.Core": "1.0.119", - "Wabbajack.Common": "0.3.11", - "Wabbajack.FileExtractor": "0.3.11", - "Wabbajack.Hashing.PHash": "0.3.11", - "Wabbajack.Hashing.xxHash64": "0.3.11", - "Wabbajack.Paths": "0.3.11", - "Wabbajack.Paths.IO": "0.3.11", - "Wabbajack.VFS.Interfaces": "0.3.11" + "Wabbajack.Common": "0.3.12", + "Wabbajack.FileExtractor": "0.3.12", + "Wabbajack.Hashing.PHash": "0.3.12", + "Wabbajack.Hashing.xxHash64": "0.3.12", + "Wabbajack.Paths": "0.3.12", + "Wabbajack.Paths.IO": "0.3.12", + "Wabbajack.VFS.Interfaces": "0.3.12" }, "runtime": { "Wabbajack.VFS.dll": {} } }, - "Wabbajack.VFS.Interfaces/0.3.11": { + "Wabbajack.VFS.Interfaces/0.3.12": { "dependencies": { "Microsoft.Extensions.DependencyInjection": "9.0.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1", - "Wabbajack.DTOs": "0.3.11", - "Wabbajack.Hashing.xxHash64": "0.3.11", - "Wabbajack.Paths": "0.3.11" + "Wabbajack.DTOs": "0.3.12", + "Wabbajack.Hashing.xxHash64": "0.3.12", + "Wabbajack.Paths": "0.3.12" }, "runtime": { "Wabbajack.VFS.Interfaces.dll": {} @@ -2332,7 +2332,7 @@ } }, "libraries": { - "jackify-engine/0.3.11": { + "jackify-engine/0.3.12": { "type": "project", "serviceable": false, "sha512": "" @@ -3021,202 +3021,202 @@ "path": "yamldotnet/16.3.0", "hashPath": "yamldotnet.16.3.0.nupkg.sha512" }, - "Wabbajack.CLI.Builder/0.3.11": { + "Wabbajack.CLI.Builder/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Common/0.3.11": { + "Wabbajack.Common/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Compiler/0.3.11": { + "Wabbajack.Compiler/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Compression.BSA/0.3.11": { + "Wabbajack.Compression.BSA/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Compression.Zip/0.3.11": { + "Wabbajack.Compression.Zip/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Configuration/0.3.11": { + "Wabbajack.Configuration/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Bethesda/0.3.11": { + "Wabbajack.Downloaders.Bethesda/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Dispatcher/0.3.11": { + "Wabbajack.Downloaders.Dispatcher/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.GameFile/0.3.11": { + "Wabbajack.Downloaders.GameFile/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.GoogleDrive/0.3.11": { + "Wabbajack.Downloaders.GoogleDrive/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Http/0.3.11": { + "Wabbajack.Downloaders.Http/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Interfaces/0.3.11": { + "Wabbajack.Downloaders.Interfaces/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.11": { + "Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Manual/0.3.11": { + "Wabbajack.Downloaders.Manual/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.MediaFire/0.3.11": { + "Wabbajack.Downloaders.MediaFire/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Mega/0.3.11": { + "Wabbajack.Downloaders.Mega/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.ModDB/0.3.11": { + "Wabbajack.Downloaders.ModDB/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.Nexus/0.3.11": { + "Wabbajack.Downloaders.Nexus/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.VerificationCache/0.3.11": { + "Wabbajack.Downloaders.VerificationCache/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Downloaders.WabbajackCDN/0.3.11": { + "Wabbajack.Downloaders.WabbajackCDN/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.DTOs/0.3.11": { + "Wabbajack.DTOs/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.FileExtractor/0.3.11": { + "Wabbajack.FileExtractor/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Hashing.PHash/0.3.11": { + "Wabbajack.Hashing.PHash/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Hashing.xxHash64/0.3.11": { + "Wabbajack.Hashing.xxHash64/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Installer/0.3.11": { + "Wabbajack.Installer/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.IO.Async/0.3.11": { + "Wabbajack.IO.Async/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.BethesdaNet/0.3.11": { + "Wabbajack.Networking.BethesdaNet/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.Discord/0.3.11": { + "Wabbajack.Networking.Discord/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.GitHub/0.3.11": { + "Wabbajack.Networking.GitHub/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.Http/0.3.11": { + "Wabbajack.Networking.Http/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.Http.Interfaces/0.3.11": { + "Wabbajack.Networking.Http.Interfaces/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.NexusApi/0.3.11": { + "Wabbajack.Networking.NexusApi/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Networking.WabbajackClientApi/0.3.11": { + "Wabbajack.Networking.WabbajackClientApi/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Paths/0.3.11": { + "Wabbajack.Paths/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Paths.IO/0.3.11": { + "Wabbajack.Paths.IO/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.RateLimiter/0.3.11": { + "Wabbajack.RateLimiter/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Server.Lib/0.3.11": { + "Wabbajack.Server.Lib/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.Services.OSIntegrated/0.3.11": { + "Wabbajack.Services.OSIntegrated/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.VFS/0.3.11": { + "Wabbajack.VFS/0.3.12": { "type": "project", "serviceable": false, "sha512": "" }, - "Wabbajack.VFS.Interfaces/0.3.11": { + "Wabbajack.VFS.Interfaces/0.3.12": { "type": "project", "serviceable": false, "sha512": "" diff --git a/jackify/engine/jackify-engine.dll b/jackify/engine/jackify-engine.dll index e75e1f0..5c8145c 100644 Binary files a/jackify/engine/jackify-engine.dll and b/jackify/engine/jackify-engine.dll differ