Freesia 插件
Freesia 是一款服务端代理插件,它能让插件服务器支持 Yes Steve Model。
Freesia 主要由三个部分构成:Velocity
、Worker
以及安装了 Backend
的插件子服。其中,Velocity
负责转发并处理 YSM 的数据包,Worker
负责模型同步与数据生成,子服则供玩家进行游戏。
你可以在此处获取 Freesia 的最新版本。
Velocity
Section titled “Velocity”在 Velocity 端,有两个关键组件:master_control_service
和 msession
。
master_control_service
:用于实现 Velocity 与 Worker 节点之间的通信,从而控制 Worker 节点的行为。msession
:负责将玩家的 YSM 数据包转发至安装了 YSM 模组的 Worker 节点,以进行缓存同步。
配置文件示例
Section titled “配置文件示例”[functions]# 是否踢出未安装 YSM 模组的玩家kick_if_ysm_not_installed = false# 握手超时时间(单位:毫秒)ysm_detection_timeout_for_kicking = 30000
[messages]# 语言选项,支持 "zh_CN" 和 "en_US"language = "zh_CN"
[worker]# 主控制节点地址worker_master_ip = "localhost"worker_master_port = 19200# Worker 服务器地址(需与 server.properties 中的 server-port 和 server-ip 对应)# 切勿将 Worker 和主控制节点的端口暴露至公网,否则会带来安全风险worker_msession_port = 19199worker_msession_ip = "localhost"
Worker
Section titled “Worker”Worker 是一个安装了 YSM 和 Freesia - Worker 模组的 Fabric 1.21 服务器,它主要用于处理 YSM 逻辑(如缓存同步)、实体状态更新以及 NBT 数据生成。
为了减少资源占用,Worker 端已禁用了绝大多数游戏功能,仅处理 YSM 数据包和登录阶段的数据包,以此模拟类似 MultiPaper 的多 Slave 场景。
Worker 不会执行大部分游戏逻辑,也不会进行世界存档,不过依然存在 Tick 逻辑。由于 YSM 逻辑的存在,Worker 端可能会成为性能瓶颈,但 Freesia 采用了异步处理方式,所以影响相对较小。
Worker 端 Freesia 配置文件示例:
Section titled “Worker 端 Freesia 配置文件示例:”[worker]# 需与 Freesia - Velocity 配置保持一致worker_master_ip = "localhost"worker_master_port = 19200# 控制节点的重连间隔(单位:秒)controller_reconnect_interval = 1# 玩家数据缓存的过期时间(单位:秒)player_data_cache_invalidate_interval_seconds = 30
Worker 服务器 server.properties
配置:
Section titled “Worker 服务器 server.properties 配置:”# 需与 Freesia - Velocity 配置保持一致server-ip=127.0.0.1server-port=19199
子服的主要职责是处理来自 Velocity 端的玩家 Tracker 检查请求,并通知 Velocity 更新玩家 Tracker。因此,子服必须安装 Freesia - Backend
。
若你对使用方法仍不太理解,可以从下方获取一个模板文件。你可以执行其中的 install - freesia.bat
(Windows)或 install - freesia.sh
(Linux)来下载相关文件,下载完成后,运行对应文件夹中的 start.bat
或 start.sh
即可开启服务端。