俗话说:万物皆发包。服务器与客户端的通信,本质上就是发包。Geyser起到的作用,便是修改包的内容,使其符合基岩版客户端和java版服务端接受的格式,而不是一个真正意义上的双通服务器,因此并不对服务器的稳定性产生大的影响。
Geyser既可以在自己的java版服务器上配置,也可以作为单独的转发服务器代理任何其他java版服务器。MC需要最新发布版本,这里使用的是1.15.2java版服务器及1.14.60基岩版客户端,服务端操作系统是Windows Server 2008。
在自己的服务器上配置
1、首先需要java8环境
2、在 https://ci.nukkitx.com/job/GeyserMC/job/Geyser/job/master/ 下载Geyser核心:选择最新的编译通过版本(绿勾)。如果是Bukkit端服务器,或者以Bukkit为基础的Spigot、PaperSpigot端等,下载Geyser-Bukkit.jar;如果是Sponge端,下载Geyser-Sponge.jar。
3、将下载的文件复制到插件文件夹(plugins)中,重新启动一次服务器,等到插件文件夹中生成一个Geyser-Bukkit文件夹(或Geyser-Sponge)后关闭服务器。
4、打开该文件夹中的config.yml进行配置,方法如下:(没有列出的不修改)
- bedrock:
- address: 0.0.0.0 //服务器的地址,一般不修改,保持默认0.0.0.0,而登录使用的域名和java服务器的域名是相同的
- port: 19132 //基岩端需要输入的端口,与java端不相同,需要去防火墙和服务器安全组(如果是云服务器)开放该端口
- motd1: MC //显示在基岩端“好友”里的motd
- motd2: Java server via Bedrock //显示在基岩端“服务器”里的motd
- remote:
- address: 127.0.0.1 //监听IP,一般不修改,默认是本机
- port: 25525 //java服务器所在的端口
- auth-type: offline //按需要设置是否为在线模式,设置为online的话,从基岩版加入该服务器后,会要求输入java版正版账号密码
- max-players: 100 //从基岩端加入玩家的上限
- default-locale: zh_cn //注意!这里默认是en_us,需要改为zh_cn,否则开服会一直卡在下载mc核心中
5、保存配置文件,重新开服,再用基岩版就可以通过域名和端口登录了
Geyser插件先收到连接的请求,然后模拟一个用户连接本机上的服务器,并且注册基岩版皮肤。
转发其他java服务器
1、也需要自己拥有云服务器,或者有公网ip的电脑,同时需要java8环境
2、在 https://ci.nukkitx.com/job/GeyserMC/job/Geyser/job/master/ 下载Geyser核心:选择最新的编译通过版本(绿勾)。然后下载Geyser.jar。
3、将核心单独放在一个文件夹内,在同文件夹创建一个run.bat(windows系统),并且写入如下内容并保存:
@echo off java -Xms1024M -jar Geyser.jar
4、运行run.bat,直到文件夹内生成一个config.yml后,关闭运行的命令提示符,打开config.yml进行配置,方法如下:
- bedrock:
- address: 0.0.0.0 //转发服务器的地址,一般不修改,保持默认0.0.0.0,而登录使用的域名和Geyser服务器的域名是相同的
- port: 19132 //基岩端需要输入的端口,与java端不相同,需要去防火墙和服务器安全组(如果是云服务器)开放该端口
- motd1: MC //显示在基岩端“好友”里的motd
- motd2: Java server via Bedrock //显示在基岩端“服务器”里的motd
- remote:
- address: 127.0.0.1 //监听IP,修改为转发的java服务器的IP
- port: 25525 //java服务器所在的端口
- auth-type: offline //按需要设置是否为在线模式,设置为online的话,从基岩版加入该服务器后,会要求输入java版正版账号密码
- max-players: 100 //从基岩端加入玩家的上限
- default-locale: zh_cn //注意!这里默认是en_us,需要改为zh_cn,否则开服会一直卡在下载mc核心中
5、保存配置文件,重新运行启动脚本,再用基岩版就可以通过域名和端口登录了
关于登录的账号
- 如果java服务器和Geyser的配置文件设置为离线登录,则登录使用的用户名是基岩版的用户名(Xbox昵称),等同于用java版客户端使用这个ID离线登录服务器。
- 如果Geyser的配置文件设置为正版登录,不论java服务器是否设置正版登录,登录使用的用户名都是这个正版账号所对应的ID,基岩版的用户名对其无影响,等同于用java版客户端使用账号和密码正版登录服务器。
现有版本遇到的bug
基岩版登录仍有一些bug,不过相比于早期一些帖子中所描述的,已经修复了很多致命bug,可以有限制的正常游玩了。
- 2020-05-12 java服务器:1.15.2PaperSpigot
基岩客户端:1.14.6005.0Win10 Geyser:#140- 金色生命值和氧气值不显示
- 鞘翅无法用火箭加速
- 下界基岩以上的方块无法显示
- 附魔台UI无法打开
- 偶尔会卡不完整方块
- 无法坐上船和矿车等
- 睡觉不会显示动画(能跳过黑夜)
- 个别粒子显示错误,显示为其他粒子