
每日消息 - MOTD
一个健壮、轻量级的Hytale服务器插件,旨在通过可自定义的标题和副标题欢迎玩家加入。该插件采用"代码优先"配置系统,能够自动生成并管理其自身的目录。
查看大图今日消息 (MOTD) 插件
一个强大、轻量级的 Hytale 服务器插件,旨在玩家加入时,使用 Hytale 集成的横幅或自定义方式发送服务器公告,通过可自定义的标题和副标题向玩家致意。
📣公告
MOTD 支持使用完全可自定义的事件标题进行服务器范围的公告,并且完全支持服务器控制台。
用法:
- 单行: "
/motd announcement Server Restarting in 5 min" - 这只会显示主标题,副标题默认为"服务器范围公告"。 - 双行: "
/motd announcement Server Restarting in 5 min | Get to somewhere safe" - 使用 "|" 符号,系统会将消息分成两部分,分别设置主标题和副标题。(第一部分是主标题,第二部分是副标题)
⚙️配置:
"announcement": {
"isMajor": true, - 更改事件标题的显示样式
"duration": 5.0, - 更改消息显示的**总**时长(秒)
"fadeInDuration": 1.5, - 更改淡入效果的持续时间(秒)(包含在总时长内)
"fadeOutDuration": 1.5, - 更改淡出效果的持续时间(秒)(包含在总时长内)
"permGroup": "%commandPermissions%", - 默认与命令权限相同,但可根据服务器需求进行配置
"enabled": true - 启用或禁用公告命令
}
👋玩家加入
默认情况下,MOTD 会向玩家显示一条欢迎消息。此欢迎消息完全可自定义,并且可以通过启用 randomizeTitle 来实现随机化。
随机标题:
- 在配置中启用 randomizedTitle。
- 打开并编辑 randomEventTitles.json 文件,添加你想要随机化的消息。
- 使用
/motd reload或重启服务器。
注意 如果你只想随机化一个标题,只需在 json 的对应部分放置一条消息即可。
⚙️配置:
"welcomeBanner": {
"primaryTitle": "Welcome %player% to MOTD", - 当 randomizeTitle 为 false 时,将显示此主标题
"secondaryTitle": "Full Customizable", - 当 randomizeTitle 为 false 时,将显示此副标题
"isMajor": true, - 更改事件标题的显示样式
"duration": 5.0, - 更改消息显示的**总**时长(秒)
"fadeInDuration": 1.5, - 更改淡入效果的持续时间(秒)(包含在总时长内)
"fadeOutDuration": 1.5, - 更改淡出效果的持续时间(秒)(包含在总时长内)
"randomizeTitle": true, - 更改主副标题数据的来源:默认配置(如上所列)或 randomEventTitle.json
"permGroup": "%commandPermissions%", - 默认与命令权限相同,但可根据服务器需求进行配置
"enabled": true - 启用或禁用公告命令
}
🔄更新可用系统
默认情况下,MOTD 会通知拥有 "hytale:admin" 权限的玩家。可以更改设置以包含其他角色。
注意: 管理员始终会收到通知,因为他们拥有所有权限。

⚙️配置:
"updateAvailable": {
"permGroup": "hytale.admin", - 设置权限组,拥有该权限组的玩家在加入时会看到“更新可用”消息。("hytale:admins" 始终会看到通知,除非被禁用)
"enabled": true - 启用/禁用通知(不建议关闭)
}
🛠命令与权限
所有命令默认都需要 hytale.admin 权限节点(即操作员/管理员的标准权限),但这可以在配置中进行更改。
| 命令 | 描述 |
|---|---|
/motd |
显示帮助和使用菜单。 |
/motd reload |
立即重新加载 config.json 的更改。 |
/motd test |
在屏幕上预览 MOTD 标题。 |
| /motd player | 显示在线玩家,并说明如何向指定玩家显示事件标题 |
注意: /motd test 命令必须由玩家在游戏中执行。它使用 world.execute() 来安全地桥接 Hytale 命令线程和世界线程,以便访问组件。
⚙️配置
插件会生成一个 "config.json" 文件,你可以根据自己的喜好和服务器需求更改和配置设置。例如,事件标题在屏幕上显示的时长,以及淡入淡出的速度。同时支持在游戏内使用命令进行完整控制。
%player%可以插入到标题消息中,以获取玩家的名字。%commandPermissions%- 可用于引用命令权限所设置的权限。默认为 "hytale:admin"。
节假日欢迎消息示例: "Happy Spooky Season, %player%!" "Merry Christmas, %player%!"
当模组首次加载时,它会在 mods 文件夹中创建一个目录,config.json 将位于该目录内。你可以在服务器运行时编辑 config.json,然后使用 "/motd reload" 重新加载配置设置,使用 "/motd test" 生成欢迎消息。
注意: 对 config.json 文件所做的所有更改都需要执行 /motd reload 或重启服务器才能生效。
更新日志
v0.1.4 命令架构重构与权限系统修复
🛠️ 重构与现代化
- 直接 ECS 实体解析:命令现在通过 store.getComponent() 直接从世界的 EntityStore 上下文中原生提取实时的 Player 组件。
- DRY 架构实现:创建并实现了抽象的 MotdSubCommand 基类。子命令现在原生继承全局设置属性,大大减少了各个命令类中的样板代码。
🐛 Bug 修复
- 解决服务器启动崩溃问题:修复了一个关键的初始化失败(IllegalArgumentException: Invalid permission node),该问题是由于 Hytale 尝试生成包含插件显示名称中空格的权限字符串引起的。通过全局覆盖 canGeneratePermission() -> false 解决。
- 修复客户端自动补全泄露问题:将子命令可见性逻辑安全地封装在原生 hasPermission(CommandSender) 生命周期钩子内。敏感的管理性子命令(如 reload 和 config)现在对未授权玩家完全隐藏,不会出现在客户端预填充菜单中。
⚙️ 配置与权限
- 动态节点注册:在核心构造函数中重新引入了显式的 this.requirePermission() 注册,以确保引擎底层的 PermissionsModule 映射在启动时正确同步。
- 实时重载合规性:标准化了权限检查,使其在执行时动态读取 ModConfig.get().commandPermissions。这确保了通过
/motd reload调整的权限组更改能够在后端即时生效,无需完全重启服务器。
首次加入事件与配置自修复 v0.1.3
- 修复了玩家首次加入服务器时欢迎横幅未运行的错误。
- 增加了配置文件在结构发生变化时的自修复和更新能力。
- 更改了配置文件结构,以添加针对首次加入的自定义设置。
- 新增新玩家服务器公告功能(默认关闭)
备注: 目前尚未为这些新的配置区域创建游戏内命令,未来的更新将迁移并使用 UI。
版本 0.1.2 更新:“直接消息”补丁
- 定向事件标题:新增通过 /motd player 命令向特定玩家发送自定义事件标题的能力。
- 控制台支持:命令现在从服务器控制台执行时完全兼容。
- 高级语法解析:
- 增加了对 | 分隔符的支持,用于在单个命令中分隔主标题和副标题。
- 如果只提供了一个消息部分,则会集成一个默认的“Message To You”作为副标题。
无需更改配置,因为它从公告配置数据中获取配置。
版本 0.1.1 更新:“控制与自定义”补丁
此更新对管理消息和显示消息的方式进行了重大改进。从实时配置到动态随机标题,你的服务器公告变得更加灵活。
🛠️ 配置与核心更改
- 结构调整: 配置系统已完全重新设计,以面向未来并扩展选项。
- ⚠️ 需要操作: 在安装此更新之前,请删除旧的配置文件,以便系统正确生成新的结构。
- 实时编辑: 添加了聊天命令,允许你在不离开游戏的情况下实时修改配置设置。
- 权限: 添加了权限以增强你配置此模组的方式。
- 手动重载系统: 添加了
/motd reload命令。对配置文件的更改不会自动应用到游戏;需使用此命令将更新推送到服务器。 - 更新通知: 现在当插件有新版本可用时,你会收到通知,确保你不会错过任何功能或修复。
🎭 新功能
- 随机标题: 为你的服务器外观增添多样性!
- 新文件:
randomEventTitles.json。- 在此存储你的自定义短语。在配置中启用后,插件将从主标题和副标题中随机抽取内容,保持新鲜感。
- 服务器范围公告: 目前最大的新增功能!使用
/motd announcement命令进行高可见度的广播。 - 控制台支持: 非常适合自动化的服务器重启警告。
- 双行格式: 使用管道符号 (
|) 分隔主标题和副标题文本。 - 智能默认值: 如果未使用管道符号,副标题默认为 "Server Wide Announcement"。
📝 公告示例
- 单行:
/motd announcement Server Restarting in 5 min - 双行:
/motd announcement Server Restarting in 5 min | Get to somewhere safe
正在加载版本记录…

正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。