本篇教程由作者设定使用 CC BY-NC 协议。

科洛的服务器支持介绍

本文基于旧版本

科洛的服务器支持目前可分为四部分:

科洛的服务核心 (KoroWorld_ServerCore)

一个单独的Java应用,性质上类似Minecraft核心或者Velocity核心。

用于在不同Minecraft服务器核心之间传递和同步信息(需要配套mod支持)。


科洛的服务器支持核心(koroworld-core)

Fabric Mod,安装在Minecraft服务端。

前置Mod:Fabric API

修改了Minecraft的消息系统,用于自定义消息格式,支持模板变量。


科洛的消息同步(koroworld-message)

Fabric Mod,安装在Minecraft服务端。

前置Mod:Fabric API,koroworld-Core。

运行需要部署KoroWorld_ServerCore。

用于在不同服务器之间同步聊天信息。


科洛的物品同步(koroworld-message)

Fabric Mod,安装在Minecraft服务端。

前置Mod:Fabric API,koroworld-Core。

运行需要部署KoroWorld_ServerCore。

用于在不同服务器之间同步物品栏,支持mod物品和带有特殊NBT的物品。

运行原理

利用科洛的服务器核心支持跨服同步物品/消息-第1张图片


配置科洛的服务核心 (KoroWorld_ServerCore)

从mcmod或者作者是GitHub下载服务核心


利用科洛的服务器核心支持跨服同步物品/消息-第2张图片


编写启动脚本并运行,Java版本应为17(和启动Minecraft服务端/Velocity核心方式相同)。

java --server -Xms512m -Xmx512m  -jar KoroWorld_ServerCore-1.0.2.jar


利用科洛的服务器核心支持跨服同步物品/消息-第3张图片

配置科洛的服务器支持核心(koroworld-core)

如上文,下载并安装科洛的服务器支持核心(koroworld-core)

启动Minecraft服务端,打开客户端加入游戏。

默认的聊天栏格式:

利用科洛的服务器核心支持跨服同步物品/消息-第4张图片

下面来学习自定义聊天格式。

打开服务器根目录中的koroworld/config/core.setting 文件(如没有则自己新建)

将下面的文件拷贝进去

SystemName =  
ServerName =
TimeTemplate =
ChatTemplate =
OPChatTemplate = 
SystemTemplate =
ConnectBanner =
ConnectBannerForPlayer =
DisconnectBanner =

作者给出的介绍:

在本mod中,系统消息格式与聊天消息格式都由模板定义,且内容中也可以使用模板变量。

模板变量的格式为:{变量名}

例如默认玩家上线广播模板:{player}来了喵~

解析后为:KenRouKoro来了喵~ (假定是KenRouKoro玩家上线)

变量说明:

{player} 消息主体玩家名

{time}当前时间,格式受时间模板控制

{date}当前日期,格式受日期模板控制

{system}系统名称

{server}服务器名称

{br} 换行

{now-player}接受信息的玩家名,仅限于在群发信息中使用

{number-of-player}当前在线玩家数

消息系统支持Minecraft颜色代码。

利用科洛的服务器核心支持跨服同步物品/消息-第5张图片

例如,设置服务器名为A,玩家聊天格式为[{server}] <{player}> {text}

ServerName =A
ChatTemplate =[{server}] <{player}> {text}

保存,使用corereload重载配置。

效果如下利用科洛的服务器核心支持跨服同步物品/消息-第6张图片

此外,mod还支持颜色编码,例如

ChatTemplate =§b[{server}]§e<{player}> §f{text}

利用科洛的服务器核心支持跨服同步物品/消息-第7张图片

玩家进服通知,下线通知均可按此模板配置。


配置科洛的消息同步(koroworld-message)

这里以服务器A,B为例

如上文,下载并安装科洛的消息同步(koroworld-message)(仅服务端)

打开 科洛的服务核心 (KoroWorld_ServerCore)

然后打开服务器A和服务器B的core.setting文件,设置两个不同的 ServerName。

打开A,B服务器根目录中的koroworld/config/message.setting 文件(如没有则自己新建)

将下面的文件拷贝进去

WSServer =ws://127.0.0.1:18620
MessageGroup =group1


WSServer为 科洛的服务核心 (KoroWorld_ServerCore)的地址,默认为ws://127.0.0.1:18620

MessageGroup 为消息分组,分组相同的服务器之间消息互通。

打开A,B服务器,如果配置正确,科洛的服务核心 (KoroWorld_ServerCore)应该有如下输出:


利用科洛的服务器核心支持跨服同步物品/消息-第8张图片

进入服务器A,发送测试消息,发现服务器B也接受到了消息,配置完成。

服务器A:

利用科洛的服务器核心支持跨服同步物品/消息-第9张图片

服务器B:

利用科洛的服务器核心支持跨服同步物品/消息-第10张图片


配置科洛的物品同步(koroworld-item)(仅服务端,但是如果使用ServerCase则客户端也需要安装)

这里以服务器A,B为例(A,B应已经使用Velocity连接)

如上文,下载并安装科洛的物品同步(koroworld-item)

打开 科洛的服务核心 (KoroWorld_ServerCore)

然后打开服务器A和服务器B的core.setting文件,设置两个不同的 ServerName。

打开A,B服务器根目录中的koroworld/config/item.setting 文件(如没有则自己新建)

将下面的文件拷贝进去

ServerCaseEnable =false
ItemSynchronizationEnable =true
ItemGroup =group1
HttpServer =http://127.0.0.1:18620


ServerCaseEnable 是的一个机器方块,用于不同服务器之间玩家的自动化产线连接,默认关闭。

ItemSynchronizationEnable 是背包同步开关,默认打开。

ItemGroup 为物品同步分组,分组相同的服务器之间自动同步背包。

HttpServer 为科洛的服务核心 (KoroWorld_ServerCore)的地址,默认为 http://127.0.0.1:18620


打开A,B服务器,测试物品同步。

服务器A:

利用科洛的服务器核心支持跨服同步物品/消息-第11张图片

然后使用Velocity自带指令将玩家发送到服务器B

服务器B:

利用科洛的服务器核心支持跨服同步物品/消息-第12张图片

物品同步成功,配置完毕。