- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
RecRivenVI/PowerShell-MinecraftServerLauncher
(新人第一次分享自己设计的小工具,有点粗糙请见谅)
个人认为在面板中为服务器切换 Minecraft 版本和加载器/加载器版本相对麻烦,因此我设计了这样一组 PowerShell 脚本,目标是可以通过配置命令行参数,自由切换 Minecraft 版本,Forge(1.17+)/ NeoForge / Fabric 版本,以及Java 版本,同时支持在终端内输入 TRUE 以快速同意 EULA 协议
切换 Java 的部分设计的相对粗糙,如果您没有使用 Liberica JDK,或者没有将 Liberica JDK 安装在默认路径,在使用前是一定需要修改脚本中的 Java 路径部分的,这点我会在未来尝试优化
示例调用:
启动一个 Minecraft 26.1.2 服务器,使用 NeoForge 26.1.2.22-beta 和 Java 25,并在服务器关闭后自动结束进程:
pwsh .\Start-ForgeServer.ps1 -Version 26.1.2 -Loader NeoForge -LoaderVersion 26.1.2.22-beta -JavaVersion 25 -ImmediatelyExit
当前,对于 Forge 和 NeoForge,通过检测 win_args.txt 是否存在指定的路径,来判断当前参数指定版本的安装情况,在启动前还会检查是否存在 user_jvm_args.txt,如果不存在将拒绝启动。这个检测逻辑目前是适用于 1.17+,对于更低的版本,我需要设计新的检测逻辑,这点我也会在未来尝试优化
对于 Fabric 端,通过解析 server.jar 中的 version.json 内容,来判断当前参数指定版本的安装情况,在启动前还会检查是否存在 fabric-server-launcher.jar 与 server.jar,如果不存在将拒绝启动
从 26.1-snapshot-1 开始,Fabric 端默认直接使用未混淆版本,原先检测 intermediary-xxx.jar 文件名的方式失效了,因此改用解析 server.jar 的方式来判断当前参数指定版本的安装情况
希望我的脚本能为有需求的服主提供一点帮助!
1 个帖子 - 1 位参与者