From e3d10330a56930a862185a1f27489f7838bd4a11 Mon Sep 17 00:00:00 2001 From: NotNite Date: Fri, 1 Nov 2024 17:12:15 -0400 Subject: [PATCH 01/41] Initial work on GDWeave support --- .../images/game_selection/WEBFISHING.jpg | Bin 0 -> 124449 bytes src/installers/GDWeaveInstaller.ts | 82 ++++++++++++++++++ src/installers/registry.ts | 4 +- src/model/game/GameManager.ts | 6 ++ src/model/installing/PackageLoader.ts | 3 + .../PlatformInterceptorImpl.ts | 1 + .../InstallationRuleApplicator.ts | 2 + .../game_rules/InstallRules_GDWeave.ts | 32 +++++++ .../ModLoaderVariantRecord.ts | 2 + .../instructions/DynamicGameInstruction.ts | 1 + .../instructions/GameInstructionParser.ts | 6 +- .../instructions/GameInstructions.ts | 2 + .../loader/GDWeaveGameInstructions.ts | 14 +++ .../runners/linux/SteamGameRunner_Linux.ts | 9 +- 14 files changed, 159 insertions(+), 5 deletions(-) create mode 100644 src/assets/images/game_selection/WEBFISHING.jpg create mode 100644 src/installers/GDWeaveInstaller.ts create mode 100644 src/r2mm/installing/default_installation_rules/game_rules/InstallRules_GDWeave.ts create mode 100644 src/r2mm/launching/instructions/instructions/loader/GDWeaveGameInstructions.ts diff --git a/src/assets/images/game_selection/WEBFISHING.jpg b/src/assets/images/game_selection/WEBFISHING.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f3c6583d32bb0f145aa3d2ac4c17a31c78bb5f6b GIT binary patch literal 124449 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

eM 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 literal 0 HcmV?d00001 diff --git a/src/installers/GDWeaveInstaller.ts b/src/installers/GDWeaveInstaller.ts new file mode 100644 index 000000000..9f5928309 --- /dev/null +++ b/src/installers/GDWeaveInstaller.ts @@ -0,0 +1,82 @@ +import { InstallArgs, PackageInstaller } from "./PackageInstaller"; +import path from "path"; +import FsProvider from "../providers/generic/file/FsProvider"; +import { addToStateFile } from "./InstallRuleInstaller"; +import FileUtils from "../utils/FileUtils"; + +const basePackageFiles = ["manifest.json", "readme.md", "icon.png"]; + +// Adapted from the BepInEx & Lovely installers +export class GDWeaveInstaller implements PackageInstaller { + async install(args: InstallArgs) { + const fs = FsProvider.instance; + const fileRelocations = new Map(); + + const winmmSrc = path.join(args.packagePath, "winmm.dll"); + const winmmDest = args.profile.joinToProfilePath("winmm.dll"); + await fs.copyFile(winmmSrc, winmmDest); + fileRelocations.set(winmmSrc, "winmm.dll"); + + for (const item of (await FsProvider.instance.readdir(args.packagePath))) { + if (basePackageFiles.includes(item.toLowerCase())) continue; + + const srcPath = path.join(args.packagePath, item); + const destPath = args.profile.joinToProfilePath(item); + if ((await FsProvider.instance.stat(srcPath)).isFile()) { + await FsProvider.instance.copyFile(srcPath, destPath); + } else { + await FsProvider.instance.copyFolder(srcPath, destPath); + } + } + + await addToStateFile(args.mod, fileRelocations, args.profile); + } +} + +async function searchForManifest(fs: FsProvider, dir: string): Promise { + if (await fs.exists(path.join(dir, "manifest.json"))) { + return dir; + } + + for (const item of await fs.readdir(dir)) { + if ((await fs.stat(path.join(dir, item))).isDirectory()) { + const result = await searchForManifest(fs, path.join(dir, item)); + if (result) return result; + } + } + + return null; +} + +export class GDWeavePluginInstaller implements PackageInstaller { + async install(args: InstallArgs) { + const fs = FsProvider.instance; + const installDir = path.join("GDWeave", "mods", args.mod.getName()); + const files = await FsProvider.instance.readdir(args.packagePath); + + // Packaging is all over the place. Find a folder with a manifest.json + // not at the top level (because the top level is Thunderstore's packaging) + let modFolder: string | null = null; + for (const item of files) { + if ((await fs.stat(path.join(args.packagePath, item))).isDirectory()) { + const result = await searchForManifest(fs, path.join(args.packagePath, item)); + if (result) { + modFolder = result; + break; + } + } + } + + if (!modFolder) { + throw new Error("Could not find mod folder"); + } else { + for (const file of await fs.readdir(modFolder)) { + const srcPath = path.join(modFolder, file); + const destPath = args.profile.joinToProfilePath(installDir, file); + + await FileUtils.ensureDirectory(path.dirname(destPath)); + await fs.copyFile(srcPath, destPath); + } + } + } +} diff --git a/src/installers/registry.ts b/src/installers/registry.ts index b665f989d..e0c3dc816 100644 --- a/src/installers/registry.ts +++ b/src/installers/registry.ts @@ -6,7 +6,7 @@ import { ShimloaderInstaller, ShimloaderPluginInstaller } from './ShimloaderInst import { LovelyInstaller, LovelyPluginInstaller } from './LovelyInstaller'; import { NorthstarInstaller } from './NorthstarInstaller'; import { ReturnOfModdingInstaller, ReturnOfModdingPluginInstaller } from './ReturnOfModdingInstaller'; - +import { GDWeaveInstaller, GDWeavePluginInstaller } from './GDWeaveInstaller'; const _PackageInstallers = { // "legacy": new InstallRuleInstaller(), // TODO: Enable @@ -20,6 +20,8 @@ const _PackageInstallers = { "lovely-plugin": new LovelyPluginInstaller(), "returnofmodding": new ReturnOfModdingInstaller(), "returnofmodding-plugin": new ReturnOfModdingPluginInstaller(), + "gdweave": new GDWeaveInstaller(), + "gdweave-plugin": new GDWeavePluginInstaller(), } export type PackageInstallerId = keyof typeof _PackageInstallers; diff --git a/src/model/game/GameManager.ts b/src/model/game/GameManager.ts index 82fa2a025..6b037327b 100644 --- a/src/model/game/GameManager.ts +++ b/src/model/game/GameManager.ts @@ -812,6 +812,12 @@ export default class GameManager { "https://thunderstore.io/c/subterranauts/api/v1/package-listing-index/", EXCLUSIONS, [new StorePlatformMetadata(StorePlatform.STEAM, "3075800")], "Subterranauts.png", GameSelectionDisplayMode.VISIBLE, GameInstanceType.GAME, PackageLoader.BEPINEX, [""]), + + new Game("WEBFISHING", "WEBFISHING", "WEBFISHING", + "WEBFISHING", ["webfishing.exe"], "", + "https://thunderstore.io/c/webfishing/api/v1/package-listing-index/", EXCLUSIONS, + [new StorePlatformMetadata(StorePlatform.STEAM, "3146520")], "WEBFISHING.jpg", + GameSelectionDisplayMode.VISIBLE, GameInstanceType.GAME, PackageLoader.GDWEAVE, [""]), ]; static get activeGame(): Game { diff --git a/src/model/installing/PackageLoader.ts b/src/model/installing/PackageLoader.ts index 0d90c3b75..f984f3d5f 100644 --- a/src/model/installing/PackageLoader.ts +++ b/src/model/installing/PackageLoader.ts @@ -9,6 +9,7 @@ export enum PackageLoader { SHIMLOADER, LOVELY, RETURN_OF_MODDING, + GDWEAVE, } export function GetInstallerIdForLoader(loader: PackageLoader): PackageInstallerId | null { @@ -22,6 +23,7 @@ export function GetInstallerIdForLoader(loader: PackageLoader): PackageInstaller case PackageLoader.SHIMLOADER: return "shimloader"; case PackageLoader.LOVELY: return "lovely"; case PackageLoader.RETURN_OF_MODDING: return "returnofmodding"; + case PackageLoader.GDWEAVE: return "gdweave"; case PackageLoader.ANCIENT_DUNGEON_VR: return null; } } @@ -31,6 +33,7 @@ export function GetInstallerIdForPlugin(loader: PackageLoader): PackageInstaller case PackageLoader.SHIMLOADER: return "shimloader-plugin"; case PackageLoader.LOVELY: return "lovely-plugin"; case PackageLoader.RETURN_OF_MODDING: return "returnofmodding-plugin"; + case PackageLoader.GDWEAVE: return "gdweave-plugin"; } return null; diff --git a/src/providers/generic/game/platform_interceptor/PlatformInterceptorImpl.ts b/src/providers/generic/game/platform_interceptor/PlatformInterceptorImpl.ts index f85900f39..5ecfc5483 100644 --- a/src/providers/generic/game/platform_interceptor/PlatformInterceptorImpl.ts +++ b/src/providers/generic/game/platform_interceptor/PlatformInterceptorImpl.ts @@ -66,6 +66,7 @@ function buildRunners(runners: PlatformRunnersType): LoaderRunnersType { [PackageLoader.SHIMLOADER]: runners, [PackageLoader.LOVELY]: runners, [PackageLoader.RETURN_OF_MODDING]: runners, + [PackageLoader.GDWEAVE]: runners, } } diff --git a/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts b/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts index b05dd4c47..669258c65 100644 --- a/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts +++ b/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts @@ -19,6 +19,7 @@ import { import { buildMelonLoaderRules } from "../default_installation_rules/game_rules/InstallRules_MelonLoader"; +import { buildGDWeaveRules } from './game_rules/InstallRules_GDWeave'; export default class InstallationRuleApplicator { @@ -152,6 +153,7 @@ export default class InstallationRuleApplicator { buildBepInExRules("TCGCardShopSimulator"), buildBepInExRules("OldMarketSimulator"), buildBepInExRules("Subterranauts"), + buildGDWeaveRules("WEBFISHING"), ] } } diff --git a/src/r2mm/installing/default_installation_rules/game_rules/InstallRules_GDWeave.ts b/src/r2mm/installing/default_installation_rules/game_rules/InstallRules_GDWeave.ts new file mode 100644 index 000000000..b97c1f063 --- /dev/null +++ b/src/r2mm/installing/default_installation_rules/game_rules/InstallRules_GDWeave.ts @@ -0,0 +1,32 @@ +import type { CoreRuleType } from '../../InstallationRules'; +import * as path from 'path'; +import { GAME_NAME } from '../../profile_installers/ModLoaderVariantRecord'; +import { RuleSubtype } from "../../InstallationRules"; + +export function buildGDWeaveRules(gameName: GAME_NAME, extraRules?: RuleSubtype[]): CoreRuleType { + return { + gameName: gameName, + rules: [ + { + route: path.join("GDWeave", "mods"), + isDefaultLocation: true, + defaultFileExtensions: [".dll"], + trackingMethod: "SUBDIR", + subRoutes: [] + }, + { + route: path.join("GDWeave", "core"), + defaultFileExtensions: [], + trackingMethod: "SUBDIR", + subRoutes: [] + }, + { + route: path.join("GDWeave", "config"), + defaultFileExtensions: [], + trackingMethod: "NONE", + subRoutes: [] + }, + ...(extraRules ? extraRules : []), + ], + } +} diff --git a/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts b/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts index 31e4bd606..e6aad7751 100644 --- a/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts +++ b/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts @@ -70,6 +70,7 @@ export const MODLOADER_PACKAGES = [ new ModLoaderPackageMapping("Thunderstore-lovely", "", PackageLoader.LOVELY), new ModLoaderPackageMapping("ReturnOfModding-ReturnOfModding", "ReturnOfModdingPack", PackageLoader.RETURN_OF_MODDING), new ModLoaderPackageMapping("Hell2Modding-Hell2Modding", "ReturnOfModdingPack", PackageLoader.RETURN_OF_MODDING), + new ModLoaderPackageMapping("NotNet-GDWeave", "GDWeave", PackageLoader.GDWEAVE), ]; @@ -203,6 +204,7 @@ const VARIANTS = { TCGCardShopSimulator: MODLOADER_PACKAGES, OldMarketSimulator: MODLOADER_PACKAGES, Subterranauts: MODLOADER_PACKAGES, + WEBFISHING: MODLOADER_PACKAGES, }; // Exported separately from the definition in order to preserve the key names in the type definition. // Otherwise this would become [key: string] and we couldn't use the game names for type hinting elsewhere. diff --git a/src/r2mm/launching/instructions/DynamicGameInstruction.ts b/src/r2mm/launching/instructions/DynamicGameInstruction.ts index 93d79f8f5..25d35a871 100644 --- a/src/r2mm/launching/instructions/DynamicGameInstruction.ts +++ b/src/r2mm/launching/instructions/DynamicGameInstruction.ts @@ -4,4 +4,5 @@ export enum DynamicGameInstruction { BEPINEX_CORLIBS = "@bepInExCorlibs", PROFILE_NAME = "@profileName", NORTHSTAR_DIRECTORY = "@northstarDirectory", + GDWEAVE_FOLDER = "@gdweaveFolder" } diff --git a/src/r2mm/launching/instructions/GameInstructionParser.ts b/src/r2mm/launching/instructions/GameInstructionParser.ts index fc72ba2b3..60962eadf 100644 --- a/src/r2mm/launching/instructions/GameInstructionParser.ts +++ b/src/r2mm/launching/instructions/GameInstructionParser.ts @@ -15,7 +15,8 @@ export default class GameInstructionParser { [DynamicGameInstruction.PROFILE_DIRECTORY, GameInstructionParser.profileDirectoryResolver], [DynamicGameInstruction.BEPINEX_CORLIBS, GameInstructionParser.bepInExCorelibsPathResolver], [DynamicGameInstruction.PROFILE_NAME, GameInstructionParser.profileNameResolver], - [DynamicGameInstruction.NORTHSTAR_DIRECTORY, GameInstructionParser.northstarDirectoryResolver] + [DynamicGameInstruction.NORTHSTAR_DIRECTORY, GameInstructionParser.northstarDirectoryResolver], + [DynamicGameInstruction.GDWEAVE_FOLDER, GameInstructionParser.gdweaveFolderResolver] ]); public static async parse(launchString: string, game: Game, profile: Profile): Promise { @@ -75,4 +76,7 @@ export default class GameInstructionParser { return profile.joinToProfilePath("R2Northstar"); } + private static async gdweaveFolderResolver(game: Game, profile: Profile): Promise { + return profile.joinToProfilePath("GDWeave"); + } } diff --git a/src/r2mm/launching/instructions/GameInstructions.ts b/src/r2mm/launching/instructions/GameInstructions.ts index 43b7ae233..db3561b1d 100644 --- a/src/r2mm/launching/instructions/GameInstructions.ts +++ b/src/r2mm/launching/instructions/GameInstructions.ts @@ -10,6 +10,7 @@ import { AncientVRGameInstructions } from "../../launching/instructions/instruct import ShimloaderGameInstructions from './instructions/loader/ShimloaderGameInstructions'; import LovelyGameInstructions from './instructions/loader/LovelyGameInstructions'; import ReturnOfModdingGameInstructions from './instructions/loader/ReturnOfModdingGameInstructions'; +import GDWeaveGameInstructions from './instructions/loader/GDWeaveGameInstructions'; export interface GameInstruction { moddedParameters: string, @@ -28,6 +29,7 @@ export default class GameInstructions { [PackageLoader.SHIMLOADER, new ShimloaderGameInstructions()], [PackageLoader.LOVELY, new LovelyGameInstructions()], [PackageLoader.RETURN_OF_MODDING, new ReturnOfModdingGameInstructions()], + [PackageLoader.GDWEAVE, new GDWeaveGameInstructions()] ]); public static async getInstructionsForGame(game: Game, profile: Profile): Promise { diff --git a/src/r2mm/launching/instructions/instructions/loader/GDWeaveGameInstructions.ts b/src/r2mm/launching/instructions/instructions/loader/GDWeaveGameInstructions.ts new file mode 100644 index 000000000..e201047b3 --- /dev/null +++ b/src/r2mm/launching/instructions/instructions/loader/GDWeaveGameInstructions.ts @@ -0,0 +1,14 @@ +import GameInstructionGenerator from '../GameInstructionGenerator'; +import { GameInstruction } from '../../GameInstructions'; +import Game from '../../../../../model/game/Game'; +import Profile from '../../../../../model/Profile'; +import { DynamicGameInstruction } from '../../DynamicGameInstruction'; + +export default class GDWeaveGameInstructions extends GameInstructionGenerator { + public async generate(game: Game, profile: Profile): Promise { + return { + moddedParameters: `--gdweave-folder-override=${DynamicGameInstruction.GDWEAVE_FOLDER}`, + vanillaParameters: "--gdweave-disable" + }; + } +} diff --git a/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts b/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts index 08e273a0d..dd7cba097 100644 --- a/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts +++ b/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts @@ -11,6 +11,7 @@ import LoggerProvider, { LogSeverity } from '../../../../providers/ror2/logging/ import { exec } from 'child_process'; import GameInstructions from '../../instructions/GameInstructions'; import GameInstructionParser from '../../instructions/GameInstructionParser'; +import { PackageLoader } from '../../../../model/installing/PackageLoader'; export default class SteamGameRunner_Linux extends GameRunnerProvider { @@ -27,7 +28,9 @@ export default class SteamGameRunner_Linux extends GameRunnerProvider { } if (isProton) { - const promise = await this.ensureWineWillLoadBepInEx(game); + // BepInEx uses winhttp, GDWeave uses winmm. More can be added later. + const proxyDll = game.packageLoader == PackageLoader.GDWEAVE ? "winmm" : "winhttp"; + const promise = await this.ensureWineWillLoadBepInEx(game, proxyDll); if (promise instanceof R2Error) { return promise; } @@ -80,7 +83,7 @@ export default class SteamGameRunner_Linux extends GameRunnerProvider { } - private async ensureWineWillLoadBepInEx(game: Game): Promise{ + private async ensureWineWillLoadBepInEx(game: Game, proxyDll: string): Promise{ const fs = FsProvider.instance; const compatDataDir = await (GameDirectoryResolverProvider.instance as LinuxGameDirectoryResolver).getCompatDataDirectory(game); if(compatDataDir instanceof R2Error) @@ -90,7 +93,7 @@ export default class SteamGameRunner_Linux extends GameRunnerProvider { const ensuredUserRegData = this.regAddInSection( userRegData, "[Software\\\\Wine\\\\DllOverrides]", - "winhttp", + proxyDll, "native,builtin" ); From dbe6d0f5a460e531ede20ab4762bbafa7e384632 Mon Sep 17 00:00:00 2001 From: NotNite Date: Sat, 2 Nov 2024 08:11:57 -0400 Subject: [PATCH 02/41] Add GDWeave support for LogOutput --- src/pages/Manager.vue | 5 ++++- src/r2mm/data/LogOutput.ts | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/pages/Manager.vue b/src/pages/Manager.vue index 8f4366499..bdab6d611 100644 --- a/src/pages/Manager.vue +++ b/src/pages/Manager.vue @@ -490,9 +490,12 @@ import ModalCard from '../components/ModalCard.vue'; case PackageLoader.MELON_LOADER: logOutputPath = path.join(this.profile.getProfilePath(), "MelonLoader", "Latest.log"); break; - case PackageLoader.RETURN_OF_MODDING: + case PackageLoader.RETURN_OF_MODDING: logOutputPath = path.join(this.profile.getProfilePath(), "ReturnOfModding", "LogOutput.log"); break; + case PackageLoader.GDWEAVE: + logOutputPath = path.join(this.profile.getProfilePath(), "GDWeave", "GDWeave.log"); + break; } const text = (await fs.readFile(logOutputPath)).toString(); if (text.length >= 1992) { diff --git a/src/r2mm/data/LogOutput.ts b/src/r2mm/data/LogOutput.ts index 475d28b31..6f831b323 100644 --- a/src/r2mm/data/LogOutput.ts +++ b/src/r2mm/data/LogOutput.ts @@ -46,6 +46,10 @@ export default class LogOutput { fs.exists(Profile.getActiveProfile().joinToProfilePath('MelonLoader', 'Latest.log')) .then(value => this._exists = value); break; + case PackageLoader.GDWEAVE: + fs.exists(Profile.getActiveProfile().joinToProfilePath('GDWeave', 'GDWeave.log')) + .then(value => this._exists = value); + break; } } From b0c57e8f8fd4fac34d6b0b844da23b6db39a1339 Mon Sep 17 00:00:00 2001 From: NotNite Date: Sun, 3 Nov 2024 14:24:18 -0500 Subject: [PATCH 03/41] ModLinker: Exclude GDWeave --- src/r2mm/manager/ModLinker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/r2mm/manager/ModLinker.ts b/src/r2mm/manager/ModLinker.ts index 2f276e21d..cd0b45aca 100644 --- a/src/r2mm/manager/ModLinker.ts +++ b/src/r2mm/manager/ModLinker.ts @@ -128,7 +128,7 @@ export default class ModLinker { "bepinex", "bepinex_server", "mods", "melonloader", "plugins", "userdata", "_state", "userlibs", "qmods", "shimloader", - "returnofmodding" + "returnofmodding", "gdweave" ]; if (!exclusionsList.includes(file.toLowerCase())) { From af4847befefd4ef6eb0e3eb29c4fbd029beda07e Mon Sep 17 00:00:00 2001 From: NotNite Date: Sun, 3 Nov 2024 14:31:17 -0500 Subject: [PATCH 04/41] ProfileModList: Exclude GDWeave folder from exports Excluding everything, configs included, may be unwanted. --- src/r2mm/mods/ProfileModList.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/r2mm/mods/ProfileModList.ts b/src/r2mm/mods/ProfileModList.ts index 9e9a6ee51..4b13acf2f 100644 --- a/src/r2mm/mods/ProfileModList.ts +++ b/src/r2mm/mods/ProfileModList.ts @@ -191,6 +191,7 @@ export default class ProfileModList { }, "plugins"); }, "BepInEx"); tree.removeDirectories("MelonLoader"); + tree.removeDirectories("GDWeave"); // Add all tree contents to buffer. for (const file of tree.getRecursiveFiles()) { const fileLower = file.toLowerCase(); From a4cb816d212597dd521c01e7d7014b34c3fb9f24 Mon Sep 17 00:00:00 2001 From: NotNite Date: Sun, 3 Nov 2024 14:39:12 -0500 Subject: [PATCH 05/41] ProfileModList: Include config files for GDWeave --- src/r2mm/mods/ProfileModList.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/r2mm/mods/ProfileModList.ts b/src/r2mm/mods/ProfileModList.ts index 4b13acf2f..517797017 100644 --- a/src/r2mm/mods/ProfileModList.ts +++ b/src/r2mm/mods/ProfileModList.ts @@ -191,7 +191,11 @@ export default class ProfileModList { }, "plugins"); }, "BepInEx"); tree.removeDirectories("MelonLoader"); - tree.removeDirectories("GDWeave"); + tree.navigateAndPerform(gdWeaveDir => { + gdWeaveDir.removeDirectories("core"); + gdWeaveDir.removeDirectories("mods"); + gdWeaveDir.removeFiles("GDWeave.log"); + }, "GDWeave"); // Add all tree contents to buffer. for (const file of tree.getRecursiveFiles()) { const fileLower = file.toLowerCase(); From 798aed79e8abb4c72acfe4ca7a2dede896333d28 Mon Sep 17 00:00:00 2001 From: Vili Manninen Date: Mon, 4 Nov 2024 14:23:30 +0200 Subject: [PATCH 06/41] Add game: SULFUR --- src/assets/images/game_selection/SULFUR.png | Bin 0 -> 20820 bytes src/model/game/GameManager.ts | 6 ++++++ .../InstallationRuleApplicator.ts | 1 + .../ModLoaderVariantRecord.ts | 1 + 4 files changed, 8 insertions(+) create mode 100644 src/assets/images/game_selection/SULFUR.png diff --git a/src/assets/images/game_selection/SULFUR.png b/src/assets/images/game_selection/SULFUR.png new file mode 100644 index 0000000000000000000000000000000000000000..fb97a40ff068847eff126eeb7f2a7ac716940fbf GIT binary patch literal 20820 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 literal 0 HcmV?d00001 diff --git a/src/model/game/GameManager.ts b/src/model/game/GameManager.ts index 82fa2a025..bc343ee0c 100644 --- a/src/model/game/GameManager.ts +++ b/src/model/game/GameManager.ts @@ -812,6 +812,12 @@ export default class GameManager { "https://thunderstore.io/c/subterranauts/api/v1/package-listing-index/", EXCLUSIONS, [new StorePlatformMetadata(StorePlatform.STEAM, "3075800")], "Subterranauts.png", GameSelectionDisplayMode.VISIBLE, GameInstanceType.GAME, PackageLoader.BEPINEX, [""]), + + new Game("SULFUR", "SULFUR", "SULFUR", + "Sulfur", ["Sulfur.exe"], "Sulfur_Data", + "https://thunderstore.io/c/sulfur/api/v1/package-listing-index/", EXCLUSIONS, + [new StorePlatformMetadata(StorePlatform.STEAM, "2124120")], "SULFUR.png", + GameSelectionDisplayMode.VISIBLE, GameInstanceType.GAME, PackageLoader.BEPINEX, [""]), ]; static get activeGame(): Game { diff --git a/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts b/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts index b05dd4c47..4e1bbdf78 100644 --- a/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts +++ b/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts @@ -152,6 +152,7 @@ export default class InstallationRuleApplicator { buildBepInExRules("TCGCardShopSimulator"), buildBepInExRules("OldMarketSimulator"), buildBepInExRules("Subterranauts"), + buildBepInExRules("SULFUR"), ] } } diff --git a/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts b/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts index 31e4bd606..b08ccd86c 100644 --- a/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts +++ b/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts @@ -203,6 +203,7 @@ const VARIANTS = { TCGCardShopSimulator: MODLOADER_PACKAGES, OldMarketSimulator: MODLOADER_PACKAGES, Subterranauts: MODLOADER_PACKAGES, + SULFUR: MODLOADER_PACKAGES, }; // Exported separately from the definition in order to preserve the key names in the type definition. // Otherwise this would become [key: string] and we couldn't use the game names for type hinting elsewhere. From baf5f6d8a611028553f50a19ccffeed2ffa86c0d Mon Sep 17 00:00:00 2001 From: NotNite Date: Mon, 4 Nov 2024 09:15:52 -0500 Subject: [PATCH 07/41] Rewrite GDWeave installer to use uninstall instead of state --- src/installers/GDWeaveInstaller.ts | 162 ++++++++++++------ .../InstallationRuleApplicator.ts | 2 - .../game_rules/InstallRules_GDWeave.ts | 32 ---- .../ModLoaderVariantRecord.ts | 2 +- 4 files changed, 110 insertions(+), 88 deletions(-) delete mode 100644 src/r2mm/installing/default_installation_rules/game_rules/InstallRules_GDWeave.ts diff --git a/src/installers/GDWeaveInstaller.ts b/src/installers/GDWeaveInstaller.ts index 9f5928309..161b262df 100644 --- a/src/installers/GDWeaveInstaller.ts +++ b/src/installers/GDWeaveInstaller.ts @@ -1,46 +1,90 @@ -import { InstallArgs, PackageInstaller } from "./PackageInstaller"; -import path from "path"; -import FsProvider from "../providers/generic/file/FsProvider"; -import { addToStateFile } from "./InstallRuleInstaller"; -import FileUtils from "../utils/FileUtils"; +import { InstallArgs, PackageInstaller } from './PackageInstaller'; +import path from 'path'; +import FsProvider from '../providers/generic/file/FsProvider'; +import FileUtils from '../utils/FileUtils'; +import { MODLOADER_PACKAGES } from '../r2mm/installing/profile_installers/ModLoaderVariantRecord'; +import { PackageLoader } from '../model/installing/PackageLoader'; +import FileWriteError from '../model/errors/FileWriteError'; -const basePackageFiles = ["manifest.json", "readme.md", "icon.png"]; +const basePackageFiles = ['manifest.json', 'readme.md', 'icon.png']; -// Adapted from the BepInEx & Lovely installers export class GDWeaveInstaller implements PackageInstaller { async install(args: InstallArgs) { - const fs = FsProvider.instance; - const fileRelocations = new Map(); - - const winmmSrc = path.join(args.packagePath, "winmm.dll"); - const winmmDest = args.profile.joinToProfilePath("winmm.dll"); - await fs.copyFile(winmmSrc, winmmDest); - fileRelocations.set(winmmSrc, "winmm.dll"); - - for (const item of (await FsProvider.instance.readdir(args.packagePath))) { - if (basePackageFiles.includes(item.toLowerCase())) continue; - - const srcPath = path.join(args.packagePath, item); - const destPath = args.profile.joinToProfilePath(item); - if ((await FsProvider.instance.stat(srcPath)).isFile()) { - await FsProvider.instance.copyFile(srcPath, destPath); - } else { - await FsProvider.instance.copyFolder(srcPath, destPath); - } + const { mod, packagePath, profile } = args; + + const mapping = MODLOADER_PACKAGES.find( + (entry) => + entry.packageName.toLowerCase() == + mod.getName().toLowerCase() && + entry.loaderType == PackageLoader.GDWEAVE + ); + + if (!mapping) { + throw new Error(`Missing modloader for ${mod.getName()}`); + } + + const root = path.join(packagePath, mapping.rootFolder); + const allContents = await FsProvider.instance.readdir(root); + const toCopy = allContents.filter((x) => !basePackageFiles.includes(x)); + + for (const fileOrFolder of toCopy) { + await FileUtils.copyFileOrFolder( + path.join(root, fileOrFolder), + profile.joinToProfilePath(fileOrFolder) + ); } + } + + async uninstall(args: InstallArgs): Promise { + const { profile } = args; + + try { + // ReturnOfModding deletes all files in the root and ignores directories. + // We can't do that because GDWeave/core exists, but blanket deleting GDWeave would delete all mods in the process. + // This would probably be handled better by a state file, but /shrug. - await addToStateFile(args.mod, fileRelocations, args.profile); + const toDelete = [ + profile.joinToProfilePath('winmm.dll'), + profile.joinToProfilePath('GDWeave/core'), + ]; + for (const fileOrFolder of toDelete) { + if (!(await FsProvider.instance.exists(fileOrFolder))) { + continue; + } + + if ((await FsProvider.instance.lstat(fileOrFolder)).isFile()) { + await FsProvider.instance.unlink(fileOrFolder); + } else { + await FileUtils.recursiveRemoveDirectoryIfExists( + fileOrFolder + ); + } + } + } catch (e) { + const name = 'Failed to delete GDWeave files from profile root'; + const solution = 'Is the game still running?'; + throw FileWriteError.fromThrownValue(e, name, solution); + } } } -async function searchForManifest(fs: FsProvider, dir: string): Promise { - if (await fs.exists(path.join(dir, "manifest.json"))) { +async function searchForManifest( + dir: string, + topLevel: boolean = true +): Promise { + // Ignore `manifest.json` at the top level - that's Thunderstore's + if ( + !topLevel && + (await FsProvider.instance.exists(path.join(dir, 'manifest.json'))) + ) { return dir; } - for (const item of await fs.readdir(dir)) { - if ((await fs.stat(path.join(dir, item))).isDirectory()) { - const result = await searchForManifest(fs, path.join(dir, item)); + for (const item of await FsProvider.instance.readdir(dir)) { + if ( + (await FsProvider.instance.stat(path.join(dir, item))).isDirectory() + ) { + const result = await searchForManifest(path.join(dir, item), false); if (result) return result; } } @@ -50,33 +94,45 @@ async function searchForManifest(fs: FsProvider, dir: string): Promise { + const { mod, profile } = args; + const root = profile.joinToProfilePath( + 'GDWeave', + 'mods', + mod.getName() + ); + + try { + await FileUtils.recursiveRemoveDirectoryIfExists(root); + } catch (e) { + const name = 'Failed to delete mod from profile root'; + const solution = 'Is the game still running?'; + throw FileWriteError.fromThrownValue(e, name, solution); } } } diff --git a/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts b/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts index 669258c65..b05dd4c47 100644 --- a/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts +++ b/src/r2mm/installing/default_installation_rules/InstallationRuleApplicator.ts @@ -19,7 +19,6 @@ import { import { buildMelonLoaderRules } from "../default_installation_rules/game_rules/InstallRules_MelonLoader"; -import { buildGDWeaveRules } from './game_rules/InstallRules_GDWeave'; export default class InstallationRuleApplicator { @@ -153,7 +152,6 @@ export default class InstallationRuleApplicator { buildBepInExRules("TCGCardShopSimulator"), buildBepInExRules("OldMarketSimulator"), buildBepInExRules("Subterranauts"), - buildGDWeaveRules("WEBFISHING"), ] } } diff --git a/src/r2mm/installing/default_installation_rules/game_rules/InstallRules_GDWeave.ts b/src/r2mm/installing/default_installation_rules/game_rules/InstallRules_GDWeave.ts deleted file mode 100644 index b97c1f063..000000000 --- a/src/r2mm/installing/default_installation_rules/game_rules/InstallRules_GDWeave.ts +++ /dev/null @@ -1,32 +0,0 @@ -import type { CoreRuleType } from '../../InstallationRules'; -import * as path from 'path'; -import { GAME_NAME } from '../../profile_installers/ModLoaderVariantRecord'; -import { RuleSubtype } from "../../InstallationRules"; - -export function buildGDWeaveRules(gameName: GAME_NAME, extraRules?: RuleSubtype[]): CoreRuleType { - return { - gameName: gameName, - rules: [ - { - route: path.join("GDWeave", "mods"), - isDefaultLocation: true, - defaultFileExtensions: [".dll"], - trackingMethod: "SUBDIR", - subRoutes: [] - }, - { - route: path.join("GDWeave", "core"), - defaultFileExtensions: [], - trackingMethod: "SUBDIR", - subRoutes: [] - }, - { - route: path.join("GDWeave", "config"), - defaultFileExtensions: [], - trackingMethod: "NONE", - subRoutes: [] - }, - ...(extraRules ? extraRules : []), - ], - } -} diff --git a/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts b/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts index e6aad7751..c9492ac6a 100644 --- a/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts +++ b/src/r2mm/installing/profile_installers/ModLoaderVariantRecord.ts @@ -70,7 +70,7 @@ export const MODLOADER_PACKAGES = [ new ModLoaderPackageMapping("Thunderstore-lovely", "", PackageLoader.LOVELY), new ModLoaderPackageMapping("ReturnOfModding-ReturnOfModding", "ReturnOfModdingPack", PackageLoader.RETURN_OF_MODDING), new ModLoaderPackageMapping("Hell2Modding-Hell2Modding", "ReturnOfModdingPack", PackageLoader.RETURN_OF_MODDING), - new ModLoaderPackageMapping("NotNet-GDWeave", "GDWeave", PackageLoader.GDWEAVE), + new ModLoaderPackageMapping("NotNet-GDWeave", "", PackageLoader.GDWEAVE), ]; From 26510e4f5268b7a29357b1cdc404b4bed288397b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Mon, 4 Nov 2024 17:07:56 +0200 Subject: [PATCH 08/41] Fix original error getting covered by another error during cleanup If zip extraction fails due to the path being too long, the cleanup operation is likely to fail too, but resulting in the error message that hides the actual problem, making debugging difficult. --- src/r2mm/installing/ZipExtract.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/r2mm/installing/ZipExtract.ts b/src/r2mm/installing/ZipExtract.ts index e595e2d00..cfb735ec4 100644 --- a/src/r2mm/installing/ZipExtract.ts +++ b/src/r2mm/installing/ZipExtract.ts @@ -36,16 +36,20 @@ export default class ZipExtract { } } } catch (e) { + // Cleanup might also fail e.g. for too long file paths on TSMM. + // Show the original error instead of the one caused by the cleanup, + // as the former is probably more informative for debugging. + if (err) { + callback(false, FileWriteError.fromThrownValue(err)); + return; + } + callback(result, new FileWriteError( 'Failed to extract zip', (e as Error).message, 'Try to re-download the mod. If the issue persists, ask for help in the Thunderstore modding discord.' )); } - // TODO: Is this needed? - // finally { - // callback(result); - // } } }); } From af34405837f820a1012d25b6969aa11971c48fc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Mon, 4 Nov 2024 17:21:41 +0200 Subject: [PATCH 09/41] Add suggestion to error message caused by long file paths --- src/components/views/DownloadModModal.vue | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/components/views/DownloadModModal.vue b/src/components/views/DownloadModModal.vue index a7390c19b..c4be2850f 100644 --- a/src/components/views/DownloadModModal.vue +++ b/src/components/views/DownloadModModal.vue @@ -174,7 +174,7 @@ let assignId = 0; const existing = DownloadModModal.allVersions[assignIndex] existing[1].failed = true; DownloadModModal.allVersions[assignIndex] = [currentAssignId, existing[1]]; - DownloadModModal.addCdnSolutionToError(err); + DownloadModModal.addSolutionsToError(err); return reject(err); } } else if (status === StatusEnum.PENDING) { @@ -306,7 +306,7 @@ let assignId = 0; const existing = DownloadModModal.allVersions[assignIndex] existing[1].failed = true; this.$set(DownloadModModal.allVersions, assignIndex, [currentAssignId, existing[1]]); - DownloadModModal.addCdnSolutionToError(err); + DownloadModModal.addSolutionsToError(err); this.$store.commit('error/handleError', err); return; } @@ -348,7 +348,7 @@ let assignId = 0; const existing = DownloadModModal.allVersions[assignIndex] existing[1].failed = true; this.$set(DownloadModModal.allVersions, assignIndex, [currentAssignId, existing[1]]); - DownloadModModal.addCdnSolutionToError(err); + DownloadModModal.addSolutionsToError(err); this.$store.commit('error/handleError', err); return; } @@ -432,13 +432,22 @@ let assignId = 0; }); } - static addCdnSolutionToError(err: R2Error): void { + static addSolutionsToError(err: R2Error): void { + // Sanity check typing. + if (!(err instanceof R2Error)) { + return; + } + if ( err.name.includes("Failed to download mod") || err.name.includes("System.Net.WebException") ) { err.solution = "Try toggling the preferred Thunderstore CDN in the settings"; } + + if (err.message.includes("System.IO.PathTooLongException")) { + err.solution = 'Using "Change data folder" option in the settings to select a shorter path might solve the issue'; + } } } From 2fc8f88db5713015c5e861ca4fb6dbe13595b305 Mon Sep 17 00:00:00 2001 From: NotNite Date: Mon, 4 Nov 2024 10:47:59 -0500 Subject: [PATCH 10/41] GDWeaveInstaller: Fix base package files check --- src/installers/GDWeaveInstaller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/installers/GDWeaveInstaller.ts b/src/installers/GDWeaveInstaller.ts index 161b262df..f8096b890 100644 --- a/src/installers/GDWeaveInstaller.ts +++ b/src/installers/GDWeaveInstaller.ts @@ -25,7 +25,7 @@ export class GDWeaveInstaller implements PackageInstaller { const root = path.join(packagePath, mapping.rootFolder); const allContents = await FsProvider.instance.readdir(root); - const toCopy = allContents.filter((x) => !basePackageFiles.includes(x)); + const toCopy = allContents.filter((x) => !basePackageFiles.includes(x.toLowerCase())); for (const fileOrFolder of toCopy) { await FileUtils.copyFileOrFolder( From 19a92afc5e30be38ed6334e54401fd699c148da9 Mon Sep 17 00:00:00 2001 From: NotNite Date: Tue, 5 Nov 2024 07:09:59 -0500 Subject: [PATCH 11/41] GDWeave requested fixes --- modExclusions.md | 2 ++ src/installers/GDWeaveInstaller.ts | 15 +++------------ src/pages/Manager.vue | 8 ++++---- .../runners/linux/SteamGameRunner_Linux.ts | 4 ++-- 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/modExclusions.md b/modExclusions.md index 2b8302a5f..b91c94fbe 100644 --- a/modExclusions.md +++ b/modExclusions.md @@ -51,3 +51,5 @@ codengine-SOTFEdit DevLeon-SonsOfTheForestMap Kesomannen-GaleModManager + +Pyoid-Hook_Line_and_Sinker diff --git a/src/installers/GDWeaveInstaller.ts b/src/installers/GDWeaveInstaller.ts index f8096b890..a3f85809a 100644 --- a/src/installers/GDWeaveInstaller.ts +++ b/src/installers/GDWeaveInstaller.ts @@ -24,8 +24,7 @@ export class GDWeaveInstaller implements PackageInstaller { } const root = path.join(packagePath, mapping.rootFolder); - const allContents = await FsProvider.instance.readdir(root); - const toCopy = allContents.filter((x) => !basePackageFiles.includes(x.toLowerCase())); + const toCopy = ['winmm.dll', 'GDWeave']; for (const fileOrFolder of toCopy) { await FileUtils.copyFileOrFolder( @@ -45,7 +44,7 @@ export class GDWeaveInstaller implements PackageInstaller { const toDelete = [ profile.joinToProfilePath('winmm.dll'), - profile.joinToProfilePath('GDWeave/core'), + profile.joinToProfilePath('GDWeave', 'core'), ]; for (const fileOrFolder of toDelete) { if (!(await FsProvider.instance.exists(fileOrFolder))) { @@ -108,15 +107,7 @@ export class GDWeavePluginInstaller implements PackageInstaller { 'mods', mod.getName() ); - await FileUtils.ensureDirectory(root); - - const toCopy = await FsProvider.instance.readdir(modFolder); - for (const fileOrFolder of toCopy) { - await FileUtils.copyFileOrFolder( - path.join(modFolder, fileOrFolder), - path.join(root, fileOrFolder) - ); - } + await FsProvider.instance.copyFolder(modFolder, root); } async uninstall(args: InstallArgs): Promise { diff --git a/src/pages/Manager.vue b/src/pages/Manager.vue index bdab6d611..57a616330 100644 --- a/src/pages/Manager.vue +++ b/src/pages/Manager.vue @@ -490,12 +490,12 @@ import ModalCard from '../components/ModalCard.vue'; case PackageLoader.MELON_LOADER: logOutputPath = path.join(this.profile.getProfilePath(), "MelonLoader", "Latest.log"); break; - case PackageLoader.RETURN_OF_MODDING: + case PackageLoader.RETURN_OF_MODDING: logOutputPath = path.join(this.profile.getProfilePath(), "ReturnOfModding", "LogOutput.log"); break; - case PackageLoader.GDWEAVE: - logOutputPath = path.join(this.profile.getProfilePath(), "GDWeave", "GDWeave.log"); - break; + case PackageLoader.GDWEAVE: + logOutputPath = path.join(this.profile.getProfilePath(), "GDWeave", "GDWeave.log"); + break; } const text = (await fs.readFile(logOutputPath)).toString(); if (text.length >= 1992) { diff --git a/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts b/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts index dd7cba097..81cba2839 100644 --- a/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts +++ b/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts @@ -30,7 +30,7 @@ export default class SteamGameRunner_Linux extends GameRunnerProvider { if (isProton) { // BepInEx uses winhttp, GDWeave uses winmm. More can be added later. const proxyDll = game.packageLoader == PackageLoader.GDWEAVE ? "winmm" : "winhttp"; - const promise = await this.ensureWineWillLoadBepInEx(game, proxyDll); + const promise = await this.ensureWineWillLoadDllOverride(game, proxyDll); if (promise instanceof R2Error) { return promise; } @@ -83,7 +83,7 @@ export default class SteamGameRunner_Linux extends GameRunnerProvider { } - private async ensureWineWillLoadBepInEx(game: Game, proxyDll: string): Promise{ + private async ensureWineWillLoadDllOverride(game: Game, proxyDll: string): Promise{ const fs = FsProvider.instance; const compatDataDir = await (GameDirectoryResolverProvider.instance as LinuxGameDirectoryResolver).getCompatDataDirectory(game); if(compatDataDir instanceof R2Error) From b2628eefa38715dd1fd3782d0b318f3981934ecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Tue, 5 Nov 2024 18:39:49 +0200 Subject: [PATCH 12/41] Add Hook, Line & Sinker to exclusions json. HLS is a mod manager itself and should thus be excluded from the r2 mod manager. It was already added to .md file (which is used by all the versions of the mod manager to check the latest changes), but not to the .json file (which is bundled with the build and used as a fallback if user is offline). --- modExclusions.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modExclusions.json b/modExclusions.json index a42acf96f..0ad839df6 100644 --- a/modExclusions.json +++ b/modExclusions.json @@ -23,6 +23,7 @@ "L4rs-QuickFSR", "MPModTeam-Boneworks_MP", "MADH95Mods-JSONRenameUtility", - "GamefaceGamers-Mod_Sync" + "GamefaceGamers-Mod_Sync", + "Pyoid-Hook_Line_and_Sinker" ] } From 8c0772af0d4563fd68c61e29944bafae8a61f9e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Tue, 5 Nov 2024 18:45:01 +0200 Subject: [PATCH 13/41] Change webfishing cover image to png --- .../images/game_selection/WEBFISHING.jpg | Bin 124449 -> 0 bytes .../images/game_selection/WEBFISHING.png | Bin 0 -> 58452 bytes src/model/game/GameManager.ts | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 src/assets/images/game_selection/WEBFISHING.jpg create mode 100644 src/assets/images/game_selection/WEBFISHING.png diff --git a/src/assets/images/game_selection/WEBFISHING.jpg b/src/assets/images/game_selection/WEBFISHING.jpg deleted file mode 100644 index f3c6583d32bb0f145aa3d2ac4c17a31c78bb5f6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124449 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

eM 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 diff --git a/src/assets/images/game_selection/WEBFISHING.png b/src/assets/images/game_selection/WEBFISHING.png new file mode 100644 index 0000000000000000000000000000000000000000..5c947a41119548d2345f937b9dc863bbe043d231 GIT binary patch literal 58452 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 Date: Tue, 5 Nov 2024 18:47:29 +0200 Subject: [PATCH 14/41] Reword a comment and remove unused variable As GDWeaveInstaller is a standalone implementation, referencing what ReturnOfModding does or doesn't do makes little sense, and is prone to get outdated. --- src/installers/GDWeaveInstaller.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/installers/GDWeaveInstaller.ts b/src/installers/GDWeaveInstaller.ts index a3f85809a..9d483d471 100644 --- a/src/installers/GDWeaveInstaller.ts +++ b/src/installers/GDWeaveInstaller.ts @@ -6,8 +6,6 @@ import { MODLOADER_PACKAGES } from '../r2mm/installing/profile_installers/ModLoa import { PackageLoader } from '../model/installing/PackageLoader'; import FileWriteError from '../model/errors/FileWriteError'; -const basePackageFiles = ['manifest.json', 'readme.md', 'icon.png']; - export class GDWeaveInstaller implements PackageInstaller { async install(args: InstallArgs) { const { mod, packagePath, profile } = args; @@ -38,10 +36,7 @@ export class GDWeaveInstaller implements PackageInstaller { const { profile } = args; try { - // ReturnOfModding deletes all files in the root and ignores directories. - // We can't do that because GDWeave/core exists, but blanket deleting GDWeave would delete all mods in the process. - // This would probably be handled better by a state file, but /shrug. - + // Remove GDWeave/core, but keep mods and config subfolder and the log file. const toDelete = [ profile.joinToProfilePath('winmm.dll'), profile.joinToProfilePath('GDWeave', 'core'), From 541c660a74dcb4c6d7300d8cc6172098c1b6604e Mon Sep 17 00:00:00 2001 From: Cade Ayres Date: Tue, 5 Nov 2024 20:53:52 +0000 Subject: [PATCH 15/41] Proof of concept Vue 2.7 composition API bridge --- package.json | 1 + src/components/v2/Hero.vue | 24 ++++++++++++++++++++++++ src/pages/GameSelectionScreen.vue | 2 +- yarn.lock | 2 +- 4 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 src/components/v2/Hero.vue diff --git a/package.json b/package.json index d5150a19f..25257af8c 100644 --- a/package.json +++ b/package.json @@ -109,6 +109,7 @@ "sinon": "^11.1.1", "ts-node": "^8.10.2", "typescript": "^4.5.5", + "vue": "2.7.16", "vue-jest": "^3.0.0", "wallaby-vue-compiler": "^1.0.3" }, diff --git a/src/components/v2/Hero.vue b/src/components/v2/Hero.vue new file mode 100644 index 000000000..2c9ab6199 --- /dev/null +++ b/src/components/v2/Hero.vue @@ -0,0 +1,24 @@ + + + diff --git a/src/pages/GameSelectionScreen.vue b/src/pages/GameSelectionScreen.vue index 2fb4bd95e..7263af503 100644 --- a/src/pages/GameSelectionScreen.vue +++ b/src/pages/GameSelectionScreen.vue @@ -164,7 +164,7 @@ import { Component, Vue } from 'vue-property-decorator'; import Game from '../model/game/Game'; import GameManager from '../model/game/GameManager'; -import Hero from '../components/Hero.vue'; +import Hero from '../components/v2/Hero.vue'; import * as ManagerUtils from '../utils/ManagerUtils'; import ManagerSettings from '../r2mm/manager/ManagerSettings'; import { StorePlatform } from '../model/game/StorePlatform'; diff --git a/yarn.lock b/yarn.lock index 7594bdbac..8999f52b8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13910,7 +13910,7 @@ vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0: resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== -vue@^2.7.1: +vue@2.7.16, vue@^2.7.1: version "2.7.16" resolved "https://registry.yarnpkg.com/vue/-/vue-2.7.16.tgz#98c60de9def99c0e3da8dae59b304ead43b967c9" integrity sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw== From 4bf308e0ad42c5dedc9dc1c4a478fd6afaae094e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Tue, 5 Nov 2024 19:12:49 +0200 Subject: [PATCH 16/41] Implement enabling/disabling mods via PackageInstaller implementations PackageInstallers can now define custom methods for disabling and enabling mods instead of depending on the legacy "one-size fits all" approach. The support is added only for regular packages. Mod loaders will not implement disabling/enabling, at least at this time, as it's seen a difficult task to define properly across the board. For the matter, currently disabling mod loader packages seems to do little, as the game still loads the mods if it's launched modded. Also provide helpers for disabling/enabling mods by appending the files with ".old" extension. This is in line with how ProfileInstallerProvider.applyModModeForSubdir handles things. --- src/installers/PackageInstaller.ts | 34 +++++++++ .../GenericProfileInstaller.ts | 74 ++++++++++++++++++- 2 files changed, 106 insertions(+), 2 deletions(-) diff --git a/src/installers/PackageInstaller.ts b/src/installers/PackageInstaller.ts index ccca7d3e8..96aae3ab5 100644 --- a/src/installers/PackageInstaller.ts +++ b/src/installers/PackageInstaller.ts @@ -1,5 +1,8 @@ +import R2Error from "../model/errors/R2Error"; +import FileTree from "../model/file/FileTree"; import { ImmutableProfile } from "../model/Profile"; import ManifestV2 from "../model/ManifestV2"; +import FsProvider from "../providers/generic/file/FsProvider"; export type InstallArgs = { mod: ManifestV2; @@ -10,4 +13,35 @@ export type InstallArgs = { export interface PackageInstaller { install(args: InstallArgs): Promise; uninstall?(args: InstallArgs): Promise; + enable?(args: InstallArgs): Promise; + disable?(args: InstallArgs): Promise; +} + +export async function disableModByRenamingFiles(folderName: string) { + const tree = await FileTree.buildFromLocation(folderName); + if (tree instanceof R2Error) { + throw tree; + } + + for (const filePath of tree.getRecursiveFiles()) { + if (!filePath.toLowerCase().endsWith(".old")) { + await FsProvider.instance.rename(filePath, `${filePath}.old`); + } + } +} + +export async function enableModByRenamingFiles(folderName: string) { + const tree = await FileTree.buildFromLocation(folderName); + if (tree instanceof R2Error) { + throw tree; + } + + for (const filePath of tree.getRecursiveFiles()) { + if (filePath.toLowerCase().endsWith(".old")) { + await FsProvider.instance.rename( + filePath, + filePath.substring(0, filePath.length - ('.old').length) + ); + } + } } diff --git a/src/r2mm/installing/profile_installers/GenericProfileInstaller.ts b/src/r2mm/installing/profile_installers/GenericProfileInstaller.ts index 518629288..03d2fc5d1 100644 --- a/src/r2mm/installing/profile_installers/GenericProfileInstaller.ts +++ b/src/r2mm/installing/profile_installers/GenericProfileInstaller.ts @@ -118,10 +118,32 @@ export default class GenericProfileInstaller extends ProfileInstallerProvider { } async disableMod(mod: ManifestV2, profile: ImmutableProfile): Promise { + // Support for installer specific disable methods are rolled out + // gradually and therefore might not be defined yet. Disabling + // mod loader packages are intentionally not supported. + try { + if (await this.disableModWithInstaller(mod, profile)) { + return; + } + } catch (e) { + return R2Error.fromThrownValue(e); + } + return this.applyModMode(mod, profile, ModMode.DISABLED); } async enableMod(mod: ManifestV2, profile: ImmutableProfile): Promise { + // Support for installer specific enable methods are rolled out + // gradually and therefore might not be defined yet. Enabling + // mod loader packages are intentionally not supported. + try { + if (await this.enableModWithInstaller(mod, profile)) { + return; + } + } catch (e) { + return R2Error.fromThrownValue(e); + } + return this.applyModMode(mod, profile, ModMode.ENABLED); } @@ -308,7 +330,7 @@ export default class GenericProfileInstaller extends ProfileInstallerProvider { * implements a custom uninstallation method. * @return true if mod loader was uninstalled */ - async uninstallModLoaderWithInstaller(mod: ManifestV2, profile: ImmutableProfile): Promise { + private async uninstallModLoaderWithInstaller(mod: ManifestV2, profile: ImmutableProfile): Promise { const modLoader = this.getModLoader(mod); const installerId = modLoader ? GetInstallerIdForLoader(modLoader.loaderType) : null; return this.uninstallWithInstaller(installerId, mod, profile); @@ -319,7 +341,7 @@ export default class GenericProfileInstaller extends ProfileInstallerProvider { * uninstallation method. * @return true if mod was uninstalled */ - async uninstallModWithInstaller(mod: ManifestV2, profile: ImmutableProfile): Promise { + private async uninstallModWithInstaller(mod: ManifestV2, profile: ImmutableProfile): Promise { const installerId = GetInstallerIdForPlugin(GameManager.activeGame.packageLoader); return this.uninstallWithInstaller(installerId, mod, profile); } @@ -339,4 +361,52 @@ export default class GenericProfileInstaller extends ProfileInstallerProvider { return false; } + + /** + * Enable mod if its registered installer implements a custom + * enable method. + * @return true if mod was enable + */ + private async enableModWithInstaller(mod: ManifestV2, profile: ImmutableProfile): Promise { + const modLoader = this.getModLoader(mod); + + if (modLoader) { + return false; // Don't process mod loader with plugin installer. + } + + const installerId = GetInstallerIdForPlugin(GameManager.activeGame.packageLoader); + const installer = installerId ? PackageInstallers[installerId] : undefined; + + if (installer && installer.enable) { + const args = this.getInstallArgs(mod, profile); + await installer.enable(args); + return true; + } + + return false; + } + + /** + * Disable mod if its registered installer implements a custom + * disable method. + * @return true if mod was disabled + */ + private async disableModWithInstaller(mod: ManifestV2, profile: ImmutableProfile): Promise { + const modLoader = this.getModLoader(mod); + + if (modLoader) { + return false; // Don't process mod loader with plugin installer. + } + + const installerId = GetInstallerIdForPlugin(GameManager.activeGame.packageLoader); + const installer = installerId ? PackageInstallers[installerId] : undefined; + + if (installer && installer.disable) { + const args = this.getInstallArgs(mod, profile); + await installer.disable(args); + return true; + } + + return false; + } } From 3ce06ed5802dbcc98190b31c6e180abf98e469e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Tue, 5 Nov 2024 19:26:12 +0200 Subject: [PATCH 17/41] Add mod enabling/disabling support for GDWeavePluginInstaller --- src/installers/GDWeaveInstaller.ts | 70 ++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 19 deletions(-) diff --git a/src/installers/GDWeaveInstaller.ts b/src/installers/GDWeaveInstaller.ts index 9d483d471..a7e645648 100644 --- a/src/installers/GDWeaveInstaller.ts +++ b/src/installers/GDWeaveInstaller.ts @@ -1,4 +1,9 @@ -import { InstallArgs, PackageInstaller } from './PackageInstaller'; +import { + disableModByRenamingFiles, + enableModByRenamingFiles, + InstallArgs, + PackageInstaller +} from './PackageInstaller'; import path from 'path'; import FsProvider from '../providers/generic/file/FsProvider'; import FileUtils from '../utils/FileUtils'; @@ -87,38 +92,65 @@ async function searchForManifest( } export class GDWeavePluginInstaller implements PackageInstaller { - async install(args: InstallArgs) { - const { mod, packagePath, profile } = args; + getModFolderInProfile(args: InstallArgs): string { + return args.profile.joinToProfilePath( + 'GDWeave', + 'mods', + args.mod.getName() + ); + } + async install(args: InstallArgs) { // Packaging is all over the place. Find a folder with a manifest.json // not at the top level (because the top level is Thunderstore's packaging) - const modFolder = await searchForManifest(packagePath); - if (!modFolder) { + const modFolderInCache = await searchForManifest(args.packagePath); + if (!modFolderInCache) { throw new Error('Could not find mod folder'); } - const root = profile.joinToProfilePath( - 'GDWeave', - 'mods', - mod.getName() - ); - await FsProvider.instance.copyFolder(modFolder, root); + const modFolderInProfile = this.getModFolderInProfile(args); + + try { + await FsProvider.instance.copyFolder(modFolderInCache, modFolderInProfile); + } catch (e) { + const name = 'Failed to copy mod to profile'; + throw FileWriteError.fromThrownValue(e, name); + } } async uninstall(args: InstallArgs): Promise { - const { mod, profile } = args; - const root = profile.joinToProfilePath( - 'GDWeave', - 'mods', - mod.getName() - ); - try { - await FileUtils.recursiveRemoveDirectoryIfExists(root); + await FileUtils.recursiveRemoveDirectoryIfExists( + this.getModFolderInProfile(args) + ); } catch (e) { const name = 'Failed to delete mod from profile root'; const solution = 'Is the game still running?'; throw FileWriteError.fromThrownValue(e, name, solution); } } + + async enable(args: InstallArgs): Promise { + try { + await enableModByRenamingFiles( + this.getModFolderInProfile(args) + ); + } catch (e) { + const name = 'Failed to enable mod'; + const solution = 'Is the game still running?'; + throw FileWriteError.fromThrownValue(e, name, solution); + } + } + + async disable(args: InstallArgs): Promise { + try { + await disableModByRenamingFiles( + this.getModFolderInProfile(args) + ); + } catch (e) { + const name = 'Failed to disable mod'; + const solution = 'Is the game still running?'; + throw FileWriteError.fromThrownValue(e, name, solution); + } + } } From d17c3630759e2a0630b011f8e2f3210d6dfbe098 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Wed, 6 Nov 2024 14:21:37 +0200 Subject: [PATCH 18/41] Fix GDWeave launch parameters to support paths with spaces in them --- .../instructions/instructions/loader/GDWeaveGameInstructions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/r2mm/launching/instructions/instructions/loader/GDWeaveGameInstructions.ts b/src/r2mm/launching/instructions/instructions/loader/GDWeaveGameInstructions.ts index e201047b3..911ed214a 100644 --- a/src/r2mm/launching/instructions/instructions/loader/GDWeaveGameInstructions.ts +++ b/src/r2mm/launching/instructions/instructions/loader/GDWeaveGameInstructions.ts @@ -7,7 +7,7 @@ import { DynamicGameInstruction } from '../../DynamicGameInstruction'; export default class GDWeaveGameInstructions extends GameInstructionGenerator { public async generate(game: Game, profile: Profile): Promise { return { - moddedParameters: `--gdweave-folder-override=${DynamicGameInstruction.GDWEAVE_FOLDER}`, + moddedParameters: `--gdweave-folder-override="${DynamicGameInstruction.GDWEAVE_FOLDER}"`, vanillaParameters: "--gdweave-disable" }; } From 42a42323f6e7ff18554ad2d7167e2fc5f6b2dddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Wed, 6 Nov 2024 14:23:31 +0200 Subject: [PATCH 19/41] Add GardenGals-Hatchery to excluded packages This is GDWeave related tool and should be ignored by mod managers. --- modExclusions.json | 3 ++- modExclusions.md | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/modExclusions.json b/modExclusions.json index 0ad839df6..0a4ca40a2 100644 --- a/modExclusions.json +++ b/modExclusions.json @@ -24,6 +24,7 @@ "MPModTeam-Boneworks_MP", "MADH95Mods-JSONRenameUtility", "GamefaceGamers-Mod_Sync", - "Pyoid-Hook_Line_and_Sinker" + "Pyoid-Hook_Line_and_Sinker", + "GardenGals-Hatchery" ] } diff --git a/modExclusions.md b/modExclusions.md index b91c94fbe..7d31408e6 100644 --- a/modExclusions.md +++ b/modExclusions.md @@ -53,3 +53,5 @@ DevLeon-SonsOfTheForestMap Kesomannen-GaleModManager Pyoid-Hook_Line_and_Sinker + +GardenGals-Hatchery From 71158d9777d483a8f7258108da342a7f789f86d2 Mon Sep 17 00:00:00 2001 From: Vili Manninen <104134747+VilppeRiskidev@users.noreply.github.com> Date: Wed, 6 Nov 2024 15:58:14 +0200 Subject: [PATCH 20/41] Add error handling for when the profile file yaml parsing fails (#1523) Use various error messages basd on what's missing from the profile import file --- .../profiles-modals/ImportProfileModal.vue | 9 +++++++- src/utils/ProfileUtils.ts | 21 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/components/profiles-modals/ImportProfileModal.vue b/src/components/profiles-modals/ImportProfileModal.vue index 7b97c03b2..594c7e752 100644 --- a/src/components/profiles-modals/ImportProfileModal.vue +++ b/src/components/profiles-modals/ImportProfileModal.vue @@ -121,7 +121,14 @@ export default class ImportProfileModal extends mixins(ProfilesMixin) { if (read !== null) { this.profileImportFilePath = files[0]; - this.profileImportContent = await ProfileUtils.parseYamlToExportFormat(read); + try { + this.profileImportContent = await ProfileUtils.parseYamlToExportFormat(read); + } catch (e: unknown) { + const err = R2Error.fromThrownValue(e); + this.$store.commit('error/handleError', err) + this.closeModal(); + return; + } if (this.profileToOnlineMods.length === 0) { this.activeStep = 'NO_PACKAGES_IN_IMPORT'; diff --git a/src/utils/ProfileUtils.ts b/src/utils/ProfileUtils.ts index e76d5e38a..0ff5b1921 100644 --- a/src/utils/ProfileUtils.ts +++ b/src/utils/ProfileUtils.ts @@ -125,6 +125,27 @@ export async function installModsToProfile( export async function parseYamlToExportFormat(yamlContent: string) { const parsedYaml = await yaml.parse(yamlContent); + if (!parsedYaml) { + throw new R2Error( + 'Failed to parse yaml contents.', + 'Yaml parsing failed when trying to import profile via file (The contents of export.r2x file are invalid).', + 'Ensure that the profile import file isn\'t corrupted.' + ) + } + if (typeof parsedYaml.profileName !== 'string') { + throw new R2Error( + 'Failed to read profile name.', + 'Reading the profile name after parsing the yaml failed (export.r2x is missing the profileName field).', + 'Ensure that the profile import file isn\'t corrupted.' + ) + } + if (!Array.isArray(parsedYaml.mods)) { + throw new R2Error( + 'Failed to read mod list.', + 'Reading mods list after parsing the yaml failed (Mod list of export.r2x is invalid).', + 'Ensure that the profile import file isn\'t corrupted.' + ) + } return new ExportFormat( parsedYaml.profileName, parsedYaml.mods.map((mod: any) => { From 49eb3e0c84e36cfc08bc42227612f8052649734a Mon Sep 17 00:00:00 2001 From: Cade Ayres Date: Wed, 6 Nov 2024 16:37:09 +0000 Subject: [PATCH 21/41] Removed interface export --- src/components/v2/Hero.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/v2/Hero.vue b/src/components/v2/Hero.vue index 2c9ab6199..ea82efcb7 100644 --- a/src/components/v2/Hero.vue +++ b/src/components/v2/Hero.vue @@ -14,7 +14,7 @@