Jump to content

Vortex issue with Valheim, AGAIN


VulcanTourist

Recommended Posts

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???

 

screenshot_00005.png

Edited by VulcanTourist
Link to comment
Share on other sites

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...