admin 发表于 2024-7-9 11:42:51

27行代码完美接入forge安装!

最近在开发我的世界启动器mal的时候需要完成forge安装,于是查阅资料完成了这个小模块。


引用

const forge = require("forge.js"); //替换为实际路径

获得forge列表
let forgeList; // 初始化forge列表
forge.getForgeListByMCVersion("1.12.2") //替换为版本号,不要加分号
.then((e)=>forgeList=e) //成功处理
.catch() //错误处理

下载forge
forge.downloadForgeFile("1.12.2", "14.23.0.2486", function(status,msg){console.log(status,msg)}); //替换为实际的mc版本号和forge版本号
如果status是false就是参数不正确或者第三方跑路,若status为true则msg里面是forge文件的位置

安装forge
用node.js执行命令(测试时直接用cmd)这里应该是要在versions下的游戏文件夹里执行
java -jar forge文件名称.jar nogui -installServer然后forge就被成功安装了!


static/image/hrline/line3.png


源码:

const axios = require("axios");
const forge = {};

forge.getForgeListByMCVersion = async(mcVersion)=>{
    try{
      const forgeList = await axios.get(`https://bmclapi2.bangbang93.com/forge/minecraft/${mcVersion}`);
      return forgeList.data;
    }catch{
      return false;
    }
}

forge.downloadForgeFile = (mcVersion, forgeVersion, callback)=>{
    const {exec} = require("child_process");
    const filename = `${mcVersion}-${forgeVersion}-mal.jar`;
    const wgetCommand = `wget "https://bmclapi2.bangbang93.com/forge/download?mcversion=${mcVersion}&version=${forgeVersion}&category=installer&format=jar" -O ${filename}`;
    console.log(wgetCommand);
    exec(wgetCommand, (err, stdout, stderr)=>{
      if (err){
            callback(false, [stdout, stderr]);
      }else{
            callback(true, filename);
      }
    })
}

module.exports = forge;

文件夹内还要放wget.exe哦!
页: [1]
查看完整版本: 27行代码完美接入forge安装!