
聊天模组
游戏内公告,完全自定义信息命令设置,定时广播,利用世界时钟为事件和倒计时提供事件广播 :)
ChatMod — 高级服务器消息与聊天
ChatMod 是一个服务端 Fabric 模组,让管理员可以完全控制服务器与玩家的沟通方式。自定义信息命令、自动广播、丰富的 MOTD、带有悬停和点击事件的交互式聊天、内联图集精灵图标、带声音的玩家标记、持久聊天颜色、预定义物品、定时广播——全部可通过 YAML 文件配置,无需重启。
📧 联系与支持
💬 主要支持渠道(首选)
所有一般性问题、功能请求和非紧急错误报告都应发布到我们 Discord 服务器 的相应频道中。 我们会积极关注,并尽快回复,以便整个社区都能受益。
🆘 紧急私信政策
仅在特定的紧急情况下,你才可以直接私信我:
- 允许的理由: 你的服务器崩溃,或遇到与本模组直接相关的严重、破坏游戏的错误。
- 要求: 你必须是服主。
- 时区: (CET/CEST)—— 布鲁塞尔时间
- 私信时间: 仅限布鲁塞尔时间上午 10:00 至晚上 10:00
不保证即时回复。私信是一种职业礼貌,而非权利。感谢你的理解!
⚠️ 版本说明 —— 图集精灵图标
图集精灵图标功能(
[#SpriteName]、[#item]、[##item]、自定义占位符图标、玩家头颅精灵)需要 Minecraft 1.21.9 或更高版本。 面向 1.21.5 至 1.21.8 的版本不包含这些功能。 所有其他功能在所有支持的版本上均可用。
格式化 —— 处处可用
ChatMod 中的每条消息——广播、MOTD、信息文件、聊天——都支持相同的丰富格式化语法。
| 语法 | 结果 |
|---|---|
&a、&b、&c … |
Minecraft 颜色代码 |
&#RRGGBB |
十六进制颜色代码 |
&l &o &n &m &k &r |
加粗、斜体、下划线、删除线、混淆、重置 |
Text{Hover text} |
带提示框的可悬停文本 |
Text{Hover}<action:run_command,/cmd> |
悬停 + 点击执行命令 |
Text{Hover}<action:suggest_command,/cmd> |
悬停 + 点击建议命令 |
Text{Hover}<action:open_url,https://…> |
悬停 + 点击打开 URL |
Text{Hover}<action:copy_to_clipboard,value> |
悬停 + 点击复制文本 |
行首 &+ |
在聊天中将该行居中 |
字符串中的 &= |
插入换行 |
%player% %online_players% %time% %date% … |
内置占位符 |
| PlaceholderAPI 占位符 | 安装 PlaceholderAPI 后支持 |
📢 广播
在 chatmod.yml 中设置自动循环消息。每个广播条目支持四种显示类型。
| 类型 | 出现位置 |
|---|---|
CHAT |
服务器聊天,所有玩家 |
ACTION_BAR |
快捷栏上方 |
TITLE |
屏幕中央,大号文字 |
BOSSBAR |
屏幕顶部 Boss 栏 |
动作栏
- 单行在
duration_seconds期间保持可见(自动重新发送,没有此功能时原版会在约 3 秒后清除)。 - 添加第二行可在动作栏旁在标题区域显示副标题文本。
- 添加更多行可按顺序循环显示,每行保持
duration_seconds。
标题 每组最多支持 4 行:
- 主标题
- 副标题
- 动作栏文本 (可选)
- 在第 3 行激活时替换副标题 (可选)
添加 lines1:、lines2: … 可在单个广播条目内循环显示多个标题画面,每个显示 duration_seconds。
Boss 栏
多行会作为独立的 Boss 栏依次显示,每个保持 duration_seconds。
广播控制
broadcast_enabled: true
broadcast_interval_seconds: 300
randomize_broadcast: false # true = 随机顺序而非顺序播放
按玩家数量调整间隔 —— 根据在线玩家自动调整广播间隔:
players_5_interval_seconds: 240
players_10_interval_seconds: 180
players_25_interval_seconds: 120
🌅 MOTD
玩家加入时以个性化消息问候他们。支持所有格式化、占位符、悬停和点击事件,以及图集精灵标记。
motd_enabled: true
motd_messages:
- lines:
- "&+&bWelcome, %player%!"
- "&7Playtime: &e%playtime% &7Last seen: &e%last_play_time%"
使用 /cm testmotd 可在不重新加入的情况下预览。
📄 自定义信息命令
从 YAML 文件创建无限的自定义文本命令——/rules、/help、/discord、/info,或你选择的任何名称。ChatMod 将它们注册为真实的服务器命令,并支持每个文件多页和命名章节。
创建一个:
/cm create rules
这会生成 config/chatmod_info/rules.yml,你可以自由编辑,然后 /cm reload。
管理你的信息命令:
| 命令 | 作用 |
|---|---|
/rules |
显示第 1 页(或名为 page1 的章节) |
/rules 2 |
按编号显示第 2 页 |
/rules section_name |
直接显示命名章节 |
/rules work |
切换命令的开启或关闭 |
/rules permission |
切换权限要求开启或关闭 |
/rules permission set chatmod.rules |
设置所需的权限节点 |
/rules alias add r |
添加 /r 作为别名 |
/rules alias remove r |
移除该别名 |
/cm list |
列出所有已注册的信息命令 |
页面之间可以使用点击操作相互链接,从而轻松构建完整的多章节帮助菜单。
📡 预定义与定时广播
在 predefined_broadcasts.yml 中定义可复用的命名广播,并通过命令发送或定时发送。
/cm bc event_soon — 立即发送给所有玩家
/cm bcshow event_soon — 先自己预览
/cm bclist — 查看所有可用广播
/cm time 20m often 5 bc event_soon — 在 20 分钟内分散发送 5 次
/cm time 30m bcnow CHAT Hello everyone! — 30 分钟后发送临时文本
每个预定义广播支持全部四种显示类型(CHAT、ACTION_BAR、TITLE、BOSSBAR)、权限门控和完整格式化。
对于无需预定义条目的临时一次性消息:
/cm bcnow CHAT &aServer event starting now!
/cm bcnow TITLE &6Event! | &eGet to spawn!
/cm bcnow <player> CHAT &eYou have been selected!
🎨 图集精灵图标 (仅 1.21.9+)
在任何消息中内联渲染任何 Minecraft 纹理图集精灵——聊天、MOTD、广播、信息文件。
| 语法 | 结果 |
|---|---|
[#diamond] |
钻石物品精灵 |
[#grass_block] |
草方块精灵 |
[#playerhead:Name] |
指定玩家的头颅精灵 |
[#item] |
你手持物品的精灵 |
[##item] |
仅精灵,无物品名称 |
[#item:3] |
预定义物品槽位 3 的精灵 |
精灵别名和原版纹理覆盖在 sprites.yml 中配置。你可以将任何标记重映射到自定义图集路径——例如,让 [#chest] 显示圣诞箱子纹理。
精灵在所有场景中均可用:聊天消息、MOTD、广播、信息文件、悬停提示,以及作为持久聊天颜色前缀。
👤 玩家身份标记
在任何支持 ChatMod 格式化的地方,将任何在线玩家引用为交互式内联元素。
| 语法 | 显示 |
|---|---|
[@Name] |
带悬停资料和点击操作的格式化玩家名称 |
[#@Name] |
玩家头颅精灵 + 格式化名称 |
[##@Name] |
仅玩家头颅精灵 |
[@%player%] |
动态 —— 解析为查看消息的玩家 |
placeholders.yml 中的悬停资料允许你按权限组定义不同的提示框。管理员可以看到 UUID、延迟、世界和余额;普通玩家看到称号和余额。资料根据被命名玩家的权限选择,并支持包括精灵在内的完整 ChatMod 格式化。
🏷️ 玩家标记与提及
在聊天中输入 @PlayerName 或 PlayerName@ 来标记某人。他们会听到独特的提示音,并看到自己的名字被高亮。使用 @everyone 或 everyone@ 通知整个服务器(不同的声音,单独的权限)。
标记格式在 placeholders.yml 中的 player_tag_format 和 everyone_tag_format 下配置。
💬 聊天功能
颜色与格式化控制 —— 两个独立的权限:
chatmod.chat.color—— 允许在聊天中使用&0–&f和&#RRGGBB十六进制颜色chatmod.chat.format—— 允许在聊天中使用&l、&o、&n、&m、&k、&r
两者可独立授予、授予其一或都不授予。
持久聊天颜色 —— 玩家为其所有聊天消息设置永久颜色:
/cm chatcolor aqua
/cm chatcolor #FF5500
/cm chatcolor b ← 旧版代码简写
管理员也可以使用 chatmod.chatcolor.others 权限为其他玩家设置。
精灵前缀 —— 将图集精灵设置为你的聊天颜色前缀 (1.21.9+):
/cm chatcolor [#dirt]
/cm chatcolor [#diamond]
/cm chatcolor player ← 使用你自己的玩家头颅
内联物品显示 —— 玩家可以使用 [item]、[#item](带图标)或 [##item](仅图标)在聊天中显示手持物品。每个都有自己的权限节点。
内联精灵图标 —— 在聊天中任何位置输入 [#SpriteName] 即可嵌入精灵图标。受 chatmod.chaticon 门控。
自定义占位符 —— 在聊天中输入的快捷方式,可展开为带悬停和点击事件的格式化交互式文本。在 placeholders.yml 中定义。
📦 预定义物品与 GUI
每页存储最多 54 个物品(无限页数)作为共享引用,通过 [item:N]、[#item:N] 或 [##item:N] 在聊天中显示。
通过可视化箱子 GUI 管理物品:
/cm items ← 打开第 1 页
/cm items 2 ← 打开第 2 页
物品存储时带有完整 NBT 数据,因此自定义名称、描述、附魔和所有其他属性都会完全保留。
🔧 自定义占位符
在 placeholders.yml 中定义你自己的快捷方式,玩家在聊天中输入后,ChatMod 会将其展开为格式化的交互式输出。
custom_placeholders:
spawn:
typed: '[spawn]'
chatmod: '&bSpawn&r'
hover: '&bClick to teleport to spawn.'
icon: grass_block
runcommand: /spawn
每个占位符支持显示文本、悬停提示、点击操作(执行命令 / 建议命令 / 打开 URL),以及可选的精灵图标。可以要求权限节点才能使用。
⚙️ 配置
所有配置都在 config/chatmod/ 下的 YAML 文件中。无需重启——任何编辑后使用 /cm reload。
| 文件 | 包含内容 |
|---|---|
chatmod.yml |
MOTD、循环广播、间隔、随机化 |
predefined_broadcasts.yml |
命名的可复用广播条目 |
placeholders.yml |
物品格式、标记格式、悬停资料、自定义占位符 |
messages.yml |
所有面向玩家的系统消息 |
sprites.yml |
精灵别名和原版纹理覆盖 |
config/chatmod_info/*.yml |
每个自定义信息命令一个文件 |
安装 PlaceholderAPI 后,PlaceholderAPI 占位符(例如 %luckperms:prefix%)会在所有场景中解析。当消息不包含任何占位符时,ChatMod 会跳过 API 调用,因此普通消息没有性能开销。
命令
| 命令 | 描述 | 权限 |
|---|---|---|
/cm reload |
无需重启重新加载所有配置 | chatmod.reload |
/cm create <name> |
创建新的信息命令 | chatmod.create |
/cm list |
列出所有信息命令 | chatmod.list |
/cm testmotd |
预览 MOTD | chatmod.testmotd |
/cm testbroadcast |
触发下一个循环广播 | chatmod.testbroadcast |
/cm bc <name> |
发送预定义广播 | chatmod.bc.sendnamed |
/cm bcnow <type> <text> |
发送临时广播 | chatmod.bc.now |
/cm bcnow <player> <type> <text> |
向单个玩家发送广播 | chatmod.bc.now |
/cm bclist |
列出预定义广播 | chatmod.bc.list |
/cm bcshow <name> |
预览预定义广播 | chatmod.bc.show |
/cm time <duration> [often <n>] bc <name> |
定时发送预定义广播 | chatmod.bc.sendnamed |
/cm time <duration> [often <n>] bcnow <text> |
定时发送临时广播 | chatmod.bc.now |
/cm chatcolor <value> |
设置你的持久聊天颜色 | chatmod.chatcolor.self |
/cm chatcolor <value> <player> |
设置其他玩家的聊天颜色 | chatmod.chatcolor.others |
/cm items [page] |
打开预定义物品 GUI | chatmod.items |
/tag <player> [message] |
标记玩家并可附带消息 | chatmod.tag.command |
权限
点击展开所有权限节点
聊天
| 节点 | 授予 |
|---|---|
chatmod.chat.color |
聊天中的颜色代码(&0–&f、十六进制) |
chatmod.chat.format |
聊天中的格式化代码(&l、&o、&n、&m、&k、&r) |
chatmod.chatitem |
聊天中的 [item] 手持物品名称 |
chatmod.chatitem.number |
[item:N] 预定义物品名称 |
chatmod.chatitem.icon |
[#item] 精灵 + 名称 |
chatmod.chatitem.icon_only |
[##item] 仅精灵 |
chatmod.chaticon |
聊天中的 [#SpriteName] 精灵图标 |
chatmod.player.tag |
使用 @Name 标记玩家 |
chatmod.player.tag.everyone |
标记 @everyone |
聊天颜色
| 节点 | 授予 |
|---|---|
chatmod.chatcolor.self |
设置自己的聊天颜色 |
chatmod.chatcolor.others |
设置其他玩家的聊天颜色 |
chatmod.chatcolors |
所有命名和十六进制颜色(通配符) |
chatmod.chatcolor.<name> |
特定颜色(例如 chatmod.chatcolor.aqua) |
chatmod.chatcolor.RRGGBB |
特定十六进制颜色(例如 chatmod.chatcolor.ff5500) |
chatmod.chatcolor.sprites |
任何精灵作为聊天颜色前缀 |
chatmod.chatcolor.sprite.<name> |
特定精灵前缀(例如 chatmod.chatcolor.sprite.dirt) |
chatmod.chatcolor.sprite.player |
自己的玩家头颅作为聊天颜色前缀 |
广播
| 节点 | 授予 |
|---|---|
chatmod.bc.now |
发送和定时发送临时广播 |
chatmod.bc.sendnamed |
发送和定时发送预定义广播 |
chatmod.bc.list |
列出预定义广播 |
chatmod.bc.show |
预览预定义广播 |
chatmod.broadcast.<name> |
使用特定的权限门控广播 |
管理员
| 节点 | 授予 |
|---|---|
chatmod.reload |
重新加载所有配置 |
chatmod.testmotd |
测试 MOTD |
chatmod.testbroadcast |
触发循环广播 |
chatmod.create |
创建信息文件 |
chatmod.list |
列出信息命令 |
chatmod.items |
打开预定义物品 GUI(只读) |
chatmod.items.edit |
通过 GUI 编辑预定义物品 |
chatmod.items.format |
编辑聊天名称前缀/后缀格式 |
chatmod.name.modify |
管理信息文件设置(work、alias、permission) |
chatmod.tag.command |
使用 /tag 命令 |
chatmod.modinfo |
访问 /cm 帮助页面 |
信息命令
| 节点 | 授予 |
|---|---|
chatmod.info.<name> |
访问特定的权限门控信息命令 |
内部(请勿手动授予)
| 节点 | 授予 |
|---|---|
chatmod.internal.page |
浏览 /cm 帮助页面 |
chatmod.internal.display |
通过点击操作显示信息文件内容 |
整合包政策
- ✅ 你可以将 ChatMod 包含在任何整合包中。
- ❌ 整合包不得出售。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。