VulcanTourist Posted September 4 Share Posted September 4 (edited) Vortex and/or its Valheim extension are now copying manifest.json and icon.png files for mods, in addition to the changelog.md and readme.md files that were previously copied, creating HUNDREDS of irrelevant file conflicts that have to be manually ignored one by one. WTF??? Edited September 4 by VulcanTourist Link to comment Share on other sites More sharing options...
ChemBoy1 Posted September 4 Share Posted September 4 You should report this as a bug on the Valheim extension page. That extension hasn't been updated in almost a year, though. https://www.nexusmods.com/site/mods/210?tab=bugs This is the relevant installer test and install functions. I didn't see anything that jumped out at me immediately. The extension is supposed to be ignoring files like manifest.json and icon.png when installing mods. All these files should be ignored: exports.IGNORABLE_FILES = [ 'LICENSE', 'manifest.json', 'BepInEx.cfg', '0Harmony.dll', 'doorstop_config.ini', 'icon.png', 'README.md', '0Harmony.xml', '0Harmony20.dll', 'BepInEx.dll', 'BepInEx.Harmony.dll', 'BepInEx.Harmony.xml', 'BepInEx.Preloader.dll', 'BepInEx.Preloader.xml', 'BepInEx.xml', 'HarmonyXInterop.dll', 'Mono.Cecil.dll', 'Mono.Cecil.Mdb.dll', 'Mono.Cecil.Pdb.dll', 'Mono.Cecil.Rocks.dll', 'MonoMod.RuntimeDetour.dll', 'MonoMod.RuntimeDetour.xml', 'MonoMod.Utils.dll', 'MonoMod.Utils.xml', ]; exports.DOORSTOPPER_HOOK = 'winhttp.dll'; const INVALID_FILES = [common_1.DOORSTOPPER_HOOK].concat(common_1.IGNORABLE_FILES).map(file => file.toLowerCase()); function testCoreRemover(files, gameId) { if (gameId !== common_1.GAME_ID) { return bluebird_1.default.resolve({ supported: false, requiredFiles: [] }); } let supported = false; for (const file of files) { const segments = file.split(path_1.default.sep).map(seg => seg.toLowerCase()); if ( (segments.find(seg => isInvalidSegment(seg, INVALID_DIRS)) !== undefined) && (isInvalidSegment(segments[segments.length - 1], INVALID_FILES)) ) { supported = true; break; } } return bluebird_1.default.resolve({ supported, requiredFiles: [] }); } exports.testCoreRemover = testCoreRemover; function installCoreRemover(files, destinationPath, gameId) { let minSegIdx = 0; for (const file of files) { const segments = file.split(path_1.default.sep) .filter(seg => !!seg) .map(seg => seg.toLowerCase()); if (segments.includes('plugins')) { minSegIdx = segments.indexOf('plugins'); break; } if (segments.includes('patchers')) { minSegIdx = segments.indexOf('patchers'); break; } } const instructions = files.reduce((accum, iter) => { const segments = iter.split(path_1.default.sep).filter(seg => !!seg); if (!segments.find(seg => isInvalidSegment(seg.toLowerCase(), INVALID_DIRS)) && (!isInvalidSegment(segments[segments.length - 1].toLowerCase(), INVALID_FILES)) && !!path_1.default.extname(segments[segments.length - 1])) { const destination = (segments.length > minSegIdx + 1) ? segments.slice(minSegIdx).join(path_1.default.sep) : undefined; if (destination !== undefined) { const instr = { type: 'copy', source: iter, destination, }; accum.push(instr); } } return accum; }, []); return bluebird_1.default.resolve({ instructions }); } exports.installCoreRemover = installCoreRemover; Link to comment Share on other sites More sharing options...
VulcanTourist Posted September 4 Author Share Posted September 4 Clearly the "Ignorable_Files" are no longer being ignored... except by me. I started to click through all the contests to choose random winners, but there were literally hundreds so I reset all of them and just ignored it all and played. Previously it was still failing to ignore changelog and readme files, and I had spent the time to choose winners for those. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now