聊天模组

聊天模组

游戏内公告,完全自定义信息命令设置,定时广播,利用世界时钟为事件和倒计时提供事件广播 :)

装饰

ChatMod Logo

ChatMod — 高级服务器消息与聊天

Chat Mod Sprites 纹理包

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 行:

  1. 主标题
  2. 副标题
  3. 动作栏文本 (可选)
  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 包含在任何整合包中。
  • ❌ 整合包不得出售。