This package allows you to manage the download and update Minecraft mods.
- CurseForge
- Modrinth
First, you need to instantiate an instance of NexusMods :
const nexusMods = new NexusMods("Your Minecraft directory path ("./.minecraft")");
NexusMods lets you easily manage all your mods in a json file. Who can look like that :
{
"mods": {
"curseforge": [
{
"displayName": "Mekanism",
"projectId": "268560",
"fileId": "4776410"
},
{
"displayName": "Ender IO",
"projectId": "64578",
"fileId": "5460093"
}
],
"modrinth": [
{
"displayName": "Applied Energistics 2",
"versionId": "kF3whRqC"
}
]
}
}
then just call loadModsFromJson to load the mods in NexusMods :
await nexusMods.loadModsFromJson(jsonModList);
You can also load the json file using an url :
await nexusMods.loadModsFromJsonUrl(jsonUrlModList);
You can load a mod directly into the code using the Curseforge api:
// Example to get Ender IO mod.
const curseforgeAPI = new CurseforgeAPI();
const projectId = '64578';
const fileId = '5460093';
const modFile = await curseforgeAPI.getModFile(projectId, fileId);
nexusMods.addModFile(modFile);
You can load a mod directly into the code using the Modrinth api:
// Example to get Ender IO mod.
const modrinthAPI = new ModrinthAPI();
const versionId = 'kF3whRqC';
const modFile = await modrinthAPI.getModFile(versionId);
nexusMods.addModFile(modFile);
Once you have loaded the mods into a NexusMods instance, you can download/update them simply with :
const checkHash = true; // Compare files by hash. On false, it's like a forced download.
const deleteUnregisteredMods = true; // Delete unregistered mods from the mod folder.
await nexusMods.updateMods(checkHash, deleteUnregisteredMods);
Coming soon
Tests are managed by Jest
You can run the tests using :
npm test
This project is licensed under the MIT licence. You can consult the complete text of the licence in the file LICENSE.