部署
费了老鼻子劲才搞懂如何部署,对新人实在是太不友好了。所以总结一下。
这里选用 PaperMC + Veloity,使用 docker compose 部署。
结构
首先搞清楚服务器部署原理,有两个东西。
- Minecraft 服务端
- Minecraft 服务代理
服务核心常见的主要有三种。
- Vanilla
官方的最原始的纯净服务端。 - 插件端
插件端就是插件只需要安装在服务器李。客户端是不需要任何修改的。比如安装一键砍树,一些简单的功能扩展这种。
下面是几个常见的服务端:- Bukkit
给官服加入插件机制,已停止开发,主要继承者是 Spigot。 - Spigot
给 Bukkit 服务端加入大量优化,速度相当快,大众常用的一个服务端。 - Paper
基于 Spigot 添加了一些比较深度的优化,是最快、大众常用的服务端。
- Bukkit
- Mod 端
Mod 端是需要同时在客户端和服务端安装Mod的,这些都是设计重大更改的,比如工业模组这种。同时由于大量的逻辑功能修改,相对于插件端,很多Mod(注意不是指Mod服务端,而是指Mod)他们会重点专注于某些版本上。插件端相对来说,插件会很快更新到新版本。- Forge
老牌,稳定。 - Fabric
因为不满于Forge更新慢。 退出的模块化,开源服务端。
- Forge
服务代理是当你有多个服务端的时候,才需要的东西,通过一个代理,别人可以只记住代理的入口,然后就可以先进入大厅世界,在大厅里选择不同的服务端进入。或者在进入大厅世界,由自己或者管理员输入命令传送到不同的服务端。
这里选择Velocity,因为他和Paper服务端是最适配的。
准备
compose.yaml:
version: '3.8'
services:
lobby:
image: phyremaster/papermc:latest
container_name: mc-lobby
restart: unless-stopped
ports:
# java
- "25566:25565"
volumes:
- ../docker-data/servers/lobby:/papermc
environment:
TZ: 自己改
MC_VERSION: "1.20.2"
EULA: true
survival:
image: phyremaster/papermc:latest
container_name: mc-survival
restart: unless-stopped
ports:
# java
- "25567:25565"
# bluemap
- "8100:8100"
volumes:
- ../docker-data/servers/survival:/papermc
environment: