diff --git a/electron/src/mods/loader.ts b/electron/src/mods/loader.ts index 79917906..1906e3cb 100644 --- a/electron/src/mods/loader.ts +++ b/electron/src/mods/loader.ts @@ -45,6 +45,12 @@ export class ModLoader { continue; } + // TODO: Only check this after applying disabled state + if (this.isModPresent(metadata.id)) { + console.warn(`Ignoring duplicate mod ${location.source}::${location.file}`); + continue; + } + mods.push({ ...location, disabled: false, @@ -69,6 +75,10 @@ export class ModLoader { return [...this.mods]; } + isModPresent(id: string): boolean { + return this.mods.some(mod => mod.metadata.id === id); + } + getModById(id: string): Mod | undefined { return this.mods.find(mod => mod.metadata.id === id); }