
服务器传送器
用于创建跨服务器传送玩家的简单插件
跨服务器传送插件
一款 Hytale 插件,利用游戏原生的传送器和传送门系统,实现无缝的跨服务器传送。
功能特性
跨服务器传送
- 使用游戏内传送器,在多个 Hytale 服务器之间传输玩家
- 兼容 Hytale 原生传送器方块和传送门系统
- 玩家在目标服务器上自动生成于指定位置
简洁命令界面
- 简短易记的命令
- 支持列出、创建和移除传送点与生成位置
持久化存储
- 跨服务器传送数据存储在
crossserver_warps.json文件中 - 服务器重启后数据不丢失
- 与 Hytale 的
warps.json分离存储,避免冲突
原生集成
- 使用 Hytale 内置的传送器方块
- 通过普通传送器界面配置目标位置
- 无需自定义方块或复杂设置
命令
跨服务器传送点
注册一个跨服务器传送点
/csw <传送点名称> <目标服务器> <传送器ID>
移除一个跨服务器传送点
/delcsw <传送点名称>
列出所有跨服务器传送点
/listcsw
传送器生成位置
设置当前坐标为生成位置
/settp <传送器ID>
移除一个生成位置
/deltp <传送器ID>
列出所有生成位置
/listtp
工作原理
步骤 1:注册跨服务器传送点
在源服务器上,创建一个将重定向玩家的传送点:
/csw hubWarp localhost:25565 spawn1
这将创建一个名为 hubWarp 的传送点,将玩家传输到 localhost:25565,并在传送器 ID 为 spawn1 的位置生成。
步骤 2:设置生成位置
在目标服务器上,站在你希望玩家出现的位置,然后运行:
/settp spawn1
步骤 3:配置传送器
在游戏中放置一个传送器方块,右键点击进行配置,然后从列表中选择 hubWarp 传送点。
步骤 4:使用传送器
当玩家走过配置好的传送器时,他们将:
- 被传输到目标服务器
- 在注册的传送器位置生成
技术细节
基于位置的传送点匹配
当前实现较为粗糙,因为无法在玩家穿过传送门时获取其目的地的传送点名称(正在解决此问题)
- 每个跨服务器传送点都会被分配唯一的坐标(例如 10000, 100, 10000)
- 系统拦截传送事件并匹配目的地坐标
- 如果在跨服务器注册表中找到匹配项,则触发传输
ECS 系统集成
CrossServerTeleportInterceptor- 拦截传送组件添加的 RefChangeSystem- 修改传送目的地以防止不必要的移动
- 调用
PlayerRef.referToServer()以启动跨服务器传输
数据存储
插件将跨服务器传送数据存储在 universe/crossserver_warps.json 文件中:
{
"warps": {
"hubwarp": {
"targetServer": "localhost:25565",
"teleporterId": "spawn1"
}
}
}
将 jar 文件复制到你的 Hytale 服务器的
mods/文件夹中重启服务器
使用上述命令配置跨服务器传送点
使用场景
服务器网络 连接多个游戏服务器(大厅到小游戏到生存模式)
基于实例的内容 将玩家传输到专用于地下城/突袭的服务器
负载均衡 将玩家分布到多个服务器上
区域性服务器 连接不同地理位置的服务器
安全考量
重要提示: 本插件目前正在开发中,没有内置安全功能。大部分功能正在开发中。
- 任何服务器都可以将玩家发送到任何其他服务器
- 服务器之间没有身份验证
- 推荐数据未加密或验证
- 命令没有基于权限的控制
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。