Minecraft开服避坑指南【基岩/Java】

本文参考:

中文Minecraft Wiki - 最详细的我的世界百科 (fandom.com)

服务端分类

越来越多的小白希望自己开服,结果却拿着原版端到处问怎么加插件,怎么加mod

Java服务端大致可以分为

  • 原版端
  • 插件端
  • Mod端
  • 混合端
  • 代理端

顾名思义,原版端仅支持基本的Minecraft游戏,不能加任何插件(如经济系统,TPA【玩家互传】系统等)和Mod(如机械动力,永恒枪械等)

而插件端在原版端的基础上增加了插件功能,一般的端支持的插件均为bukkit兼容

Mod端主要有两大类,分别是Forge端与Fabric端,而此类端仅支持Mod

基岩的服务端大致可以分为

  • 原版端(Bedrock Server)
  • 插件端(原名LiteLoader Bedrock Server,更名后为LevilLamina Bedrock Server)

需要注意的是,基岩版并不支持Mod,Forge、Fabric等加载器也仅为Java版服务;基岩版使用一种叫做addon(附加包)的东西,其已内置在官方服务端中,并且支持实时下发资源,即客户端无需预先安装任何addon,进入服务器时可直接从服务端实时下载addon,当服务端的addon发生变动时,客户端也会收到服务端的推送
此特性由服务端配置文件控制,默认仅下发,不强制客户端接受

此外,addon分为资源包(resource_packs文件夹下,类似于Java的材质包、光影包)以及行为包(behavior_packs文件夹下,类似于Java的数据包,其中的部分内容可在游戏内用/function命令调用)

客户端与服务端

某些小白开服时对此方面知识极其匮乏,却不愿使用搜索引擎

而是在服务器上下载了一个HMCL、PCL2等启动器来启动游戏,并使用“对局域网开放”功能进行“开服”

更有小白认为“对局域网开放”+内网穿透=开服,甚至问出了:“为什么我退出游戏后服务器就关了”

一般情况下,使用启动器启动的均为客户端


PCL2启动器

但如果启动器带有服务端部署功能(如ATL)则另说

而服务端一般没有UI界面(或有简单的UI界面),取而代之的是命令行操作


Windows Server下的Mohist端

简单来说,你能玩的东西叫客户端,你只能看到一堆命令的东西叫服务端

服务端可执行程序

对于Java版来说,服务端的后缀大多为.jar,这并不能称为可执行文件,而是应该称为Java归档(Java Archive File),你必须安装对应(或兼容)的JDK(Java Development ToolKit 即Java开发工具包)或者安装JRE(Java Runtime Envirnment 即Java运行环境)

如果仅需下载Java8,可以前往 Download Java for Windows

如果你要下载更高版本的Java,可以前往 Java Downloads | Oracle 中国

对于基岩版,大多数的服务端均为.exe后缀或没有后缀,exe后缀可以在Windows或Wine环境下运行,但对于lel插件端,必须在Windows环境或Wine8.*环境下运行;对于没有后缀名的,官方描述仅能在Linux Ubuntu下运行(有大神制作了CentOS下的运行环境包,但本人未测试,不做结论;此外,“Windows下的Linux子系统”也未经测试)

双击服务端后没有反应

对于Windows系统,你可能双击了一个Linux的二进制可执行文件,也可能在没有安装Java运行环境的情况下双击了一个jar文件

如果你安装了Java运行环境并且已经重启,且确认Java已经安装正确,那么你双击了一个jar文件后,服务端应该已经在启动,一般情况下,服务端会释放一些被压缩的文件到运行目录(一般即为服务端jar文件所在的目录),等待片刻即可看到服务端的简易UI界面(一般的服务端都有,官方服务器自带一个简易UI)

服务端闪退(Windows)

无论是直接双击启动服务端,还是使用cmd或bat启动服务端,遇到服务端闪退后,若是首次启动,应该首先检查服务端jar文件所在目录下的eula.txt中的内容

你需要像这样,将eula=后的内容改为true(默认为false)

服务端闪退(Linux)

也许你也没有将eula=后的内容改为true,请参考【服务端闪退(Windows)】

如果你确认你已经更改,且现象很符合【明明已经盯着服务端启动成功,但过一会(或立刻)进入游戏时服务端就已经闪退离线】
这并不是服务端闪退,而是你断开了SSH导致当前运行的进程被终止,此情况请尝试使用screen命令,首先安装它:

apt-get install screen -y # 对于Ubuntu,centos请将apt-get换为yum

如果你使用低价高防服务器,可能会遇到封境外流量导致安装失败,请使用此命令换源后安装

bash <(curl -sSL https://linuxmirrors.cn/main.sh)

安装完成后,创建一个新的screen

screen -R mc

命令参数解释:-R 首先查找是否有一个同名的screen,如果有同名screen就连接进入这个screen,如果没有,那么创建一个新的screen。但注意必须为大写R,小写r的意义是连接一个screen

正因为此特性,你可以无脑使用此命令进行连接,进入screen后再执行开服命令,如果要退出screen而不是关闭服务器,那么请使用Ctrl A D组合键,而不是输入exit或使用Ctrl c组合键

使用了正确的开服指令却无法正常启动

你可能下载了一个安装器而不是服务端本体

以Forge为例,首先需要安装服务端,你在Forge官网下载的是安装器而不是服务器

你需要首先执行类似这样的命令来安装服务端

java -jar forge-version-installer.jar --installServer

稍等过后即可获得一个全新的启动脚本,请使用Forge安装器生成的启动脚本启动服务器

从Mod客户端创建一个具有相同Mod列表的服务端

如果你自己寻找了很多Mod,突然有一天想用这些Mod开一个服务器,那么直接复制客户端的Mod到服务端上即可,Mod均存在游戏/服务端目录下的一个叫做mods的文件夹中

如果你按照上方的方法做了,并且在启动服务端时遇到了报错,常见的是原因有:

  • 错误的Mod加载器
  • 安装了有“仅客户端”标签的Mod

对于错误的Mod加载器,请先研究明白客户端中使用的是Forge还是Fabric,服务端上要使用相同的加载器才能直接复制Mod

对于第二点,请尝试在mcmod.cn里搜索mod,并观察其双端兼容性

快速排除方法

如果你有上百个Mod,不可能一个一个去搜它,那么请尝试首先筛选出哪些mod与“渲染优化”“光影”“按键绑定”有关,优先尝试停用这些mod

源码排除方法(仅Forge)

由于我只接触过Forge开发,所以不会分析Fabric Mod源码推测兼容性

如果某个Mod找不到有标注双端兼容性,恰好它开源了,那么你可以将源码下载下来,尝试找到mod源码文件中的这个文件夹

forge-mod\src\main\resources\META-INF\mods.toml

找到side,后面的内容即为双端兼容性

如上图,这里为both,即客户端需装且服务端需装

你可以在此找到Forge的开发文档: Forge 中文文档 (starxy.github.io)

使用混合端时某些Mod/插件不工作

遇到此情况,请尝试更换一个混合端或换为纯Mod/纯插件端,某些Mod在插件中有替代品,某些插件也在Mod中有替代品

例如在混合端有多世界需求时,应当将多世界Mod更换为多世界插件(Multiverse-Core)

客户端的存档怎么放到服务端

地图相关操作请看: MC小白开服-地图相关-风屿岛 (biliwind.com)

对于高版本: 2023-5月最新单人存档导入服务器方法-风屿岛 (biliwind.com)

1 个赞

艹,正版!