@arffornia/nexus_mods
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Nexus mods

This package allows you to manage the download and update Minecraft mods.

Included APIs

  • CurseForge
  • Modrinth

Usage :

First, you need to instantiate an instance of NexusMods :

const nexusMods = new NexusMods("Your Minecraft directory path ("./.minecraft")");

Load from Json file :

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);

Load from Curseforge API file :

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);

Load from Modrinth API file :

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);

Download / Update mods :

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);

Progress details callback :

Coming soon

Tests

Tests are managed by Jest

You can run the tests using :

npm test

License

This project is licensed under the MIT licence. You can consult the complete text of the licence in the file LICENSE.

Readme

Keywords

none

Package Sidebar

Install

npm i @arffornia/nexus_mods

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

30.2 kB

Total Files

17

Last publish

Collaborators

  • the_gost_sniper