本文演示如何搭建JAVA版Minecraft服务器,并介绍如何添加插件和升级地图存档
安装Java
本文使用Linux系统演示,对于windows或mac系统,安装过程近似。服务器端(包含存档)可以跨系统使用,打包压缩后即可转移。
安装的java版本与游戏版本有关,对于1.6.4及以下的服务端,需要安装java8或更高版本;1.17以上的服务端建议下载最新版java
可以从 下载地址 下载不同系统和架构的Java安装包
对于CentOS系统,可以使用命令直接安装 yum install java-1.8.0-openjdk
也可也从 下载地址 下载rpm文件
wget https://download.oracle.com/java/20/latest/jdk-20_linux-x64_bin.rpm
并安装rpm -ivh jdk-20_linux-x64_bin.rpm
此外还可以通过 alternatives --config java
快速切换java版本
对于Ubuntu版本,使用apt-get install default-jdk
输入 java -version
,输出如下的信息时表示java安装成功
服务器核心介绍
本地的游戏一般称为客户端,运行在服务器上并提供服务的成为服务端,也叫服务器核心,它是一个jar包,通过java运行该jar包时就可以搭建一个服务端
服务器除了原版特性外,还可以提供很多自定义功能,只需要服务端安装的是插件,需要客户端和服务端都安装的是模组
下面介绍常见的服务器核心
- 官方服务器核心:mojang官方出的服务端
- 下载地址:http://mcversions.net
- 稳定性好但是无法加装插件
- Spigot:可以装插件的核心
- 下载地址:http://spigotmc.org
- 使用最多的核心,支持bukkit插件,但是不够稳定
- PaperSpigot:Spigot的性能优化版
- 下载地址:http://papermc.io
- 兼容Spigot的插件,禁用了很多原版的特性,默认不能刷地毯/刷铁轨/刷TNT/无头活塞/破基岩/造刷沙机,可以打开部分特性
- 性能更好,适合低配置服务器使用
- Purpur:PaperSpigot的优化版
- 下载地址:http://purpurmc.org
- 保留paper优化同时拥有更多配置,可以通过配置文件打开PaperSpigot禁用的特性
- CatServer:高性能与高兼容性的Forge+Bukkit+Spigot服务端
- 适合创建模组服务器
综上,创建插件服务器,建议使用PaperSpigot或Purpur
服务器切换核心时,若核心是兼容的,则直接替换掉核心的那个jar包即可
开放端口
windows开服可以跳过这一步
MC服务器默认端口是 25565,firewall-cmd --add-port=25565/tcp --permanent
防火墙开放25565端口systemctl restart firewalld
重启防火墙
服务器控制台还要再次开放该端口
运行服务器
从上面的下载地址中下载服务器核心
使用下面的命令运行一次服务端java -Xms2048M -Xmx2048M -jar minecraft_server.jar nogui
-Xms2048M 和 -Xmx2048M 分别设置服务端使用的最小运行内存和最大内存,nogui表示不使用图形用户界面。
这里最大内存和最小内存建议设置为一样的,避免内存浪费
第一次执行会报错并产生一个名为 eula.txt 的新文件。
我们需要同意该文件中的协议,执行 echo 'eula=true' > eula.txt
此时,我们再次运行服务端,就会成功了。
对于windows用户,打开文件输入rula=true保存即可
后台可以输入所有指令,输入stop终止服务
终端关闭后服务器也无法继续运行,可以下载screen软件让服务器保持后台运行
配置服务器
在服务器目录输入 vim server.properties
打开配置文件,可以在此进行服务器的一些基础配置
- gamemode指游戏模式,0代表生存,1为创造
- difficulty代表难度,0-3分别是和平到困难
- pvp=false 关闭玩家伤害
- online-mode=false 关闭正版验证
- view-distance=8 视野,非常影响性能
- server-port=25565 服务器端口
更多配置可以参考这里
服务启动后,在后台可使用 op 玩家ID
设置管理员
在游戏交互界面(按下T键),就可以输入指令
/gamerule keepInventory true
设置死亡不掉落/gamemode
设置游戏模式/time set day
设置时间为白天/gamerule playersSleepingPercentage 0
一人睡觉即可跳过夜晚
安装插件
安装插件可以让你的服务器更加有趣,只需要下载插件的jar包然后放到plugins文件夹下重启即可
插件可以去 MCBBS ,SpigotMC 等网站下载,插件需要支持当前的服务器核心和游戏版本
这里介绍一些常用的插件
- AuthMe 登录,未开启正版验证服务器需安装
- HoloMobHealth 显示怪物血条
- OreTeleport 防矿透
- ClearEntity 清理掉落物
- LockettePro 箱子锁
- ProtocolLib 前置插件
- CMILib 前置插件
- LuckPerms 权限管理(常用)
- Residence 领地
- EssentialsX 多功能插件,与CMI中必装一个(常用)
- EssentialsXChat 聊天
- EssentialsXSpawn 传送
- Minepacks 背包
- SkinsRestorer 皮肤插件,未开启正版验证服务器需安装(常用)
- minimotd 服务器标语
- Vault 经济前置(常用)
- Multiverse-Core 多世界(常用)
- Multiverse-Inventories 多世界背包分离
- worldedit 创世神
- WorldEditSUI 创世神选取可视化
- GSit 椅子可坐
地图存档升级
这里仅介绍如何升级地图,地图降低则容易出问题
一共有两步,一是用户数据的迁移,而是地图数据的迁移,在这之前,一定要备份存档!
第一步,对于spigot核心的地图文件,至少包括world、world_nether、world_the_end三个文件夹,分别代表主世界,下届(地狱),末地的存档。
多人模式玩家数据则保存在每个存档的playerdata文件夹下,记录了玩家手中的物品和末影箱中的物品,我们需要将playerdata文件夹打包备份
第二步,使用 MCA Selector 打开旧版本地图存档,然后选中不需要的区块删掉,之后用新版本客户端打开该存档(可以创建新世界然后将地图覆盖),并选择优化地图。这样未删除的区块会保留,新区块就能生成新版本的地形。
最后将优化好的world、world_nether、world_the_end三个文件夹放到新版核心路径下,并将第一步保存的playerdata文件夹放回去,启动服务器即可。
叨叨几句... NOTHING