46 lines
1.6 KiB
JavaScript
46 lines
1.6 KiB
JavaScript
const fs = require('fs');
|
|
const AdmZip = require('adm-zip');
|
|
const toml = require('toml');
|
|
|
|
let re = [];
|
|
let ls = fs.readdirSync("mods/");
|
|
ls = ls.filter((a) => a.endsWith(".jar"));
|
|
|
|
ls.forEach((v) => {
|
|
try {
|
|
let zip = new AdmZip("mods/" + v);
|
|
try {
|
|
const modsTomlData = zip.getEntry("META-INF/mods.toml").getData().toString();
|
|
const modsToml = toml.parse(modsTomlData).mods;
|
|
modsToml.forEach((mod) => {
|
|
re.push({ modid: mod.modId, modfile: v });
|
|
});
|
|
} catch (e) {
|
|
const fabricModJsonData = zip.getEntry("fabric.mod.json").getData().toString();
|
|
const fabricModJson = JSON.parse(fabricModJsonData);
|
|
re.push({ modid: fabricModJson.id, modfile: v });
|
|
}
|
|
} catch (e) {
|
|
console.log(e);
|
|
}
|
|
});
|
|
|
|
for (let i of re) {
|
|
//DeMoon后端服务 StarNet.X所有
|
|
fetch(`http://154.201.72.75:3008/${i.modid}`).then(async (r) => {
|
|
try {
|
|
let body = await r.json();
|
|
if (body.client === 'true') {
|
|
if (i.modfile) {
|
|
fs.renameSync('mods/' + i.modfile, 'clientmod/' + i.modfile);
|
|
} else {
|
|
throw new Error(`modfile is undefined for mod id ${i.modid}`);
|
|
}
|
|
}
|
|
} catch (error) {
|
|
console.error(`Error fetching mod info for ${i.modid}: ${error}`);
|
|
}
|
|
}).catch((error) => {
|
|
console.error(`Error fetching mod info for ${i.modid}: ${error}`);
|
|
});
|
|
} |