让你的Minecraft服务器同时支持Java版和基岩版
前言
最近上班上得太痛苦了!!!闲的蛋疼
,所以想搞点儿乐子玩儿。想了想,好久没用我心爱的服务器了,我怕它冻感冒了,得让他尝尝Java的厉害。
喂!该起床了!!!
开始
首先,在搭建前需要有点儿名词概念:
Java版本:俗称PC版
基岩版:C++版、PE版、手机版(是的,基岩版是PC、移动端互通的)
插件:一些功能性的改变,需要插件平台
Mod:游戏玩儿法的改变,需要Mod平台
要让服务器支持插件或Mod,需要安装对应的启动核心,分为以下几种:
我们现在要搭建的是一个支持Java、基岩互通的插件服务器,所以我们的服务器是一个单插件版本服务器。
下载内容
- JDK-Java开发工具包:
1.21.3
需要JDK21
了 - 官方启动核心:演示版本
1.21.3
- Spigot插件启动核心构建工具,下载
BuildTools.jar
就行 - Geyser-Java基岩互通工具:下载
Geyser-Spigot.jar
安装Java
网上随便找一篇文章参考,或者直接下载.msi
安装包进行安装。
创建世界
创建一个新的空文件夹,如`my-server,放入下载好的官方启动核心,使用以下命令生成世界:
1
java -Xmx1024M -Xms1024M -jar minecraft_server.x.xx.x.jar nogui
记得改
x.xx.x.jar
,-Xmx1024M
表示最大内存1024MB
,-Xms1024M
表示最小内存1024MB
,根据自己情况更改。执行结束后报错,需要同意协议,编辑
eula.txt
文件:1
eula=true
编辑
server.properties
文件,参考服务端配置文件格式,我的配置如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67#Minecraft server properties
#Thu Nov 07 15:47:40 CST 2024
accepts-transfers=false
allow-flight=false
allow-nether=true
broadcast-console-to-ops=true
broadcast-rcon-to-ops=true
bug-report-link=
debug=false
difficulty=hard
enable-command-block=false
enable-jmx-monitoring=false
enable-query=false
enable-rcon=false
enable-status=true
enforce-secure-profile=true
enforce-whitelist=true
entity-broadcast-range-percentage=100
force-gamemode=false
function-permission-level=2
gamemode=survival
generate-structures=true
generator-settings={}
hardcore=false
hide-online-players=false
initial-disabled-packs=
initial-enabled-packs=vanilla
level-name=world
level-seed=
level-type=minecraft\:normal
log-ips=true
max-chained-neighbor-updates=1000000
max-players=8
max-tick-time=60000
max-world-size=29999984
motd=InsectMk's Server
network-compression-threshold=256
online-mode=false
op-permission-level=4
pause-when-empty-seconds=60
player-idle-timeout=0
prevent-proxy-connections=false
pvp=true
query.port=25565
rate-limit=0
rcon.password=
rcon.port=25575
region-file-compression=deflate
require-resource-pack=false
resource-pack=
resource-pack-id=
resource-pack-prompt=
resource-pack-sha1=
server-ip=
server-port=25565
simulation-distance=10
spawn-animals=true
spawn-monsters=true
spawn-npcs=true
spawn-protection=16
sync-chunk-writes=true
text-filtering-config=
text-filtering-version=0
use-native-transport=true
view-distance=10
white-list=false重新执行命令以生成世界:
1
java -Xmx1024M -Xms1024M -jar minecraft_server.x.xx.x.jar nogui
在终端输入
stop
可关闭服务。
构建插件核心
上面的步骤就已经开了一个官方服了,但是我们想要插件服,需要使用下载的Spigot插件启动核心构建工具
生成插件启动核心。
新建一个文件夹,如Spigot
,放入下载好的BuildTools.jar
文件,在该目录运行以下指令生成插件核心(PS:第一次构建需要下载各种依赖,会比较慢,耐心等待):
1 | # 指定版本 |
构建完成后在Spigot
目录下生成一个spigot-x.x.x.jar
文件,这就是我们的插件启动核心,注意保存。
注意:
构建很慢,因为需要访问外网,最难搞的就是下载maven,可以先下载maven,然后解压放在文件夹中,复制终端中的下载地址:
1
2Maven does not exist, downloading. Please wait.
Starting download of https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.zip自行到https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.zip下载Maven压缩包,可以复制链接到迅雷下载,下载完成后,解压放到
BuildTools.jar
的根目录中。Maven下载内容也很慢,需要配置国内的仓库地址,参考maven配置阿里云镜像源,编辑
apache-maven-x.x.x/conf/settings.xml
,在<mirrors>
节点下加入以下内容:1
2
3
4
5
6
7<!-- 阿里云镜像仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
组装服务器
现在准备工作已经全部完成了,现在只需要拼装服务器就行了。
回到
my-server
目录,放入构建插件核心步骤的spigot-x.xx.x.jar
文件,执行以下命令启动插件服:1
java -Xmx1024M -Xms1024M -jar spigot-x.xx.x.jar nogui
参数跟官方服启动核心是一样的,只不过更换了启动核心文件的名字。
启动完成后会在
my-server
文件夹下生成plugins
文件夹,这个文件夹就是放置我们服务器插件的地方,现在现在终端输入stop
停掉服务。在
plugins
放入下载的Geyser-Spigot.jar
互通插件,然后执行步骤1的指令重启服务器以生成插件配置互通插件代理的是基岩版服务,需要重新修改服务器配置,找到
my-server/plugins/Geyser-Spigot/config.yml
,修改对应内容,一样可以参考服务端配置文件格式,我只关闭了正版验证,修改内容如下:1
2remote:
auth-type: offline修改完成重启服务器就可以进入服务器游玩了!!!
插件推荐
到这里就已经搭建完成了,这里推荐一些我喜欢的插件,你也可以到modrinth、SpigotMC等插件下载网址自行下载。
- Creeper Recover:苦力怕爆炸修复(强烈推荐:你懂的)
- deathteleport:死亡传送(回到你死亡的地方-拿回属于你自己的东西!)
- SimpleWhitelist:白名单(阻挡坏人!)
- SkinsRestorer:皮肤插件(强烈推荐:关闭正版验证后就只有默认皮肤了,该插件可实现自定义皮肤)
- AdvancedTeleport:传送(让你的朋友们能随时随地碰面)