截图
介绍
介绍由机器翻译自 Modrinth 原页面,仅供参考。

Styled Chat
这是一个简单的模组,允许服主更改其聊天界面的外观!
它添加了对 Minecraft 支持的现代聊天格式的支持,
但许多聊天模组/插件会忽略这种格式。
它也与任何使用Placeholder API的模组兼容。
它还支持通过权限为每位玩家更改样式(支持 LuckPerms 和 PlayerRoles)
此模组仅在 Fabric 模组加载器及兼容环境下运行!
如果你有任何问题,可以在我的Discord上提问


命令(及权限):
/styledchat– 主命令(styledchat.main,默认可用)/styledchat reload– 重新加载配置和样式(需要styledchat.reload)/styledchat set <player> <type> <value>– 更改玩家的个人样式为(需要styledchat.set)/styledchat get <player> <type>– 发送玩家的样式(需要styledchat.get)/styledchat clear <player> <type>– 清除玩家的样式(需要styledchat.clear)
配置:
你可以在 ./config/styled-chat.json 找到配置文件。
格式使用简化文本格式。
它支持使用来自Placeholder API的占位符。
此外,每种消息类型都有几个自己的局部变量。
{
"CONFIG_VERSION_DONT_TOUCH_THIS": 3,
"_comment": "修改任何内容前,请先查看 https://github.com/Patbox/StyledChat#configuration",
"text_formatting": {
// 启用聊天中的链接解析
"parse_links": true,
// 启用 Markdown
"markdown": true,
// 启用聊天中旧版(&x)代码的支持(仅玩家输入时生效)
"legacy_formatting": false,
// 启用其他模组提供的格式化功能(如果模组实现不正确,可能会影响 StyledChat 的格式化)
"formatting_from_other_mods": false
},
"chat_preview": {
// 在聊天预览中发送完整消息(包括消息周围的所有格式)
"send_full_message": false,
// 格式化必须使用聊天预览,否则禁用格式化
"require_for_formatting": false
},
"auto_completion": {
// 启用标签自动补全(例如 <red>、<rainbow>)
"tags": false,
// 启用标签别名自动补全(例如 <c>、<rb>)
"tag_aliases": false,
// 启用表情符号自动补全(例如 :pos:、:item:)
"emoticons": false
},
// 默认样式设置
"default": {
// 显示名称(本地变量:${default}、${name})
"display_name": "${default}",
// 消息样式
"message_formats": {
// 聊天消息样式(本地变量:${player}、${message})
"chat": "<${player}> ${message}",
// 加入游戏消息(本地变量:${player})
"joined_the_game": "<yellow><lang:multiplayer.player.joined:'${player}'></yellow>",
// 更改名称后加入游戏的消息(本地变量:${player}、${old_name})
"joined_after_name_change": "<yellow><lang:multiplayer.player.joined.renamed:'${player}':'${old_name}'></yellow>",
// 玩家首次加入游戏的消息(本地变量:${player})
"joined_for_first_time": "<yellow><lang:multiplayer.player.joined:'${player}'></yellow>",
// 玩家离开服务器的消息(本地变量:${player})
"left_game": "<yellow><lang:multiplayer.player.left:'${player}'></yellow>",
// 玩家死亡消息(本地变量:${player}、${default_message})
"base_death": "${default_message}",
// 完成进度任务(本地变量:${player}、${advancement})
"advancement_task": "<lang:chat.type.advancement.task:'${player}':'${advancement}'>",
// 完成进度挑战(本地变量:${player}、${advancement})
"advancement_challenge": "<lang:chat.type.advancement.challenge:'${player}':'${advancement}'>",
// 完成进度目标(本地变量:${player}、${advancement})
"advancement_goal": "<lang:chat.type.advancement.goal:'${player}':'${advancement}'>",
// 队伍消息,仅发送者可见(本地变量:${team}、${displayName}、${message})
"sent_team_chat": "<lang:'chat.type.team.sent':'<hover\\:\\'<lang\\:chat.type.team.hover>\\'><suggest_command\\:\\'/teammsg \\'>${team}':'${displayName}':'${message}'>",
// 队伍消息,其他队伍成员可见(本地变量:${team}、${displayName}、${message})
"received_team_chat": "<lang:'chat.type.team.text':'<hover\\:\\'<lang\\:chat.type.team.hover>\\'><suggest_command\\:\\'/teammsg \\'>${team}':'${displayName}':'${message}'>",
// 私信,仅发送者可见(本地变量:${receiver}、${sender}、${message})
"sent_private_message": "<gray><italic><lang:commands.message.display.outgoing:'${receiver}':'${message}'>",
// 私信,其他人可见(本地变量:${receiver}、${sender}、${message})
"received_private_message": "<gray><italic><lang:commands.message.display.incoming:'${sender}':'${message}'>",
// /say 命令的输出(本地变量:${player}、${message})
"say_command": "[${player}] ${message}",
// /me 命令的输出(本地变量:${player}、${message})
"me_command": "<lang:'chat.type.emote':'${player}':'${message}'>",
// 玩家宠物死亡时发送的死亡消息(本地变量:${default_message}、${pet})
"pet_death": "${default_message}"
},
// 链接样式(本地变量:${link}、${url})
"link_style": "<underline><c:#7878ff>${link}",
// 剧透内容样式(本地变量:${spoiler})
"spoiler_style": "<gray>${spoiler}",
// 剧透样式使用的符号
"spoiler_symbol": "▌",
// 玩家可使用的格式
"formatting": {
// “格式标签”:true/false
"dark_red": true,
"green": true,
"underline": true,
"dark_green": true,
"black": true,
"yellow": true,
"bold": true,
"italic": true,
"dark_blue": true,
"dark_purple": true,
"gold": true,
"red": true,
"aqua": true,
"gray": true,
"light_purple": true,
"blue": true,
"white": true,
"dark_aqua": true,
"dark_gray": true,
"spoiler": true,
"strikethrough": true
},
// 玩家可使用的表情符号列表(在聊天中输入 :name:)。支持占位符
"emoticons": {
// “名称”: “值”
"potion": "🧪",
"item": "[%player:equipment_slot mainhand%]",
"trident": "🔱",
"rod": "🎣",
"shrug": "¯\\_(ツ)_/¯",
"bow": "🏹",
"bell": "🔔",
"heart": "❤",
"bucket": "🪣",
"sword": "🗡",
"shears": "✂",
"pos": "%player:pos_x% %player:pos_y% %player:pos_z%",
"fire": "🔥",
"table": "(╯°□°)╯︵ ┻━┻",
// 自 2.2.1+1.20.1 起,也可以使用以下语法从文件导入。
"$emojibase:builtin:joypixels": "${emoji}",
// 值与其他条目相同,只是 ${emoji} 会被读取到的表情符号替换(例如,你可以应用字体)
// 格式为 $TYPE:SOURCE:PATH
// TYPE 为 “emojibase”(Emojibase.dev 简写)、“cldr”(Unicode cldr-json 注释)
// 或 “default”(与本文件相同的样式,不包括导入项)
// SOURCE 指定存储类型,PATH 指定文件路径
// “builtin” 从模组附带的 json 文件加载(“joypixels” 或 “emojibase”)
// “from_file” 从相对于配置目录的文件加载(例如,“emoji.json”指向“[SERVER]/config/emoji.json”)
}
},
// 包含条件的样式列表,按从上到下的顺序应用
"styles": [
{
// 应用于玩家的样式条件
"require": {
"type": "...",
// 相关说明请见:https://github.com/Patbox/PredicateAPI/blob/master/BUILTIN.md
},
/* 其余部分与“default”字段相同,但所有字段均为可选 */
}
]
}
聊天格式化
如果玩家拥有所需权限(styledchat.format.[tag_name],其中 [tagname] 是 Text Parser 标签),就可以在聊天中使用 Simplified Text 标签。
此外,你可以在配置文件中启用 Markdown 和旧版(&X)格式化
配置示例
{
"CONFIG_VERSION_DONT_TOUCH_THIS": 3,
"_comment": "更改任何内容前,请参阅 https://github.com/Patbox/StyledChat#configuration",
"text_formatting": {
"legacy_formatting": true,
"parse_links": true,
"markdown": true,
"formatting_from_other_mods": true
},
"chat_preview": {
"send_full_message": false,
"require_for_formatting": false
},
"auto_completion": {
"tags": false,
"tag_aliases": false,
"emoticons": true
},
"default": {
"display_name": "${vanillaDisplayName}",
"message_formats": {
"chat": "${player} <dark_gray>»</dark_gray> ${message}",
"joined_the_game": "<gray>✚</gray> <color:#85ff8f><lang:multiplayer.player.joined:'${player}'>",
"joined_after_name_change": "<gray>✚</gray> <color:#85ff8f><lang:multiplayer.player.joined.renamed:'${player}':'${old_name}'>",
"joined_for_first_time": "<yellow><lang:multiplayer.player.joined:'${player}'></yellow>",
"left_game": "<gray>☁</gray> <color:#ff8585><lang:multiplayer.player.left:'${player}'>",
"base_death": "<gray>☠</gray> <color:#d1d1d1>${default_message}",
"advancement_task": "<lang:chat.type.advancement.task:'${player}':'${advancement}'>",
"advancement_challenge": "<lang:chat.type.advancement.challenge:'${player}':'${advancement}'>",
"advancement_goal": "<lang:chat.type.advancement.goal:'${player}':'${advancement}'>",
"sent_team_chat": "<lang:'chat.type.team.sent':'<hover\\:\\'<lang\\:chat.type.team.hover>\\'><suggest_command\\:\\'/teammsg \\'>${team}':'${displayName}':'${message}'>",
"received_team_chat": "<lang:'chat.type.team.text':'<hover\\:\\'<lang\\:chat.type.team.hover>\\'><suggest_command\\:\\'/teammsg \\'>${team}':'${displayName}':'${message}'>",
"sent_private_message": "<gray>[<green>PM</green> → ${receiver}] <dark_gray>»<reset> ${message}",
"received_private_message": "<gray>[<green>PM</green> ← ${sender}] <dark_gray>»<reset> ${message}",
"say_command": "<red>[${player}] ${message}",
"me_command": "<green>* ${player} ${message}",
"pet_death": "糟了!${default_message}"
},
"link_style": "<underline><blue>${link}",
"spoiler_style": "<dark_gray>${spoiler}",
"spoiler_symbol": "▌",
"formatting": {
"dark_red": true,
"underline": true,
"yellow": true,
"italic": true,
"dark_blue": true,
"dark_purple": true,
"gold": true,
"red": true,
"aqua": true,
"gray": true,
"light_purple": true,
"white": true,
"pos": true,
"dark_gray": true,
"spoiler": true,
"strikethrough": true,
"st": true,
"b": true,
"item": true,
"green": true,
"dark_green": true,
"black": true,
"i": true,
"bold": true,
"blue": true,
"dark_aqua": true
},
"emoticons": {
"potion": "🧪",
"trident": "🔱",
"rod": "🎣",
"shrug": "¯\\_(ツ)_/¯",
"bow": "🏹",
"bell": "<yellow>🔔",
"heart": "<red>❤",
"bucket": "🪣",
"sword": "🗡",
"shears": "✂",
"fire": "🔥",
"table": "<rb>(╯°□°)╯︵ ┻━┻"
}
},
"styles": [
{
"require": {
"type": "permission",
"permission": "group.admin",
"operator": 4
},
"display_name": "<dark_gray>[<red>管理员</red>]</dark_gray> <c:#ffe8a3>${vanillaDisplayName}</c>",
"message_formats": {
"chat": "${player} <dark_gray>»</dark_gray> <orange>${message}",
"base_death": ""
},
"formatting": {},
"emoticons": {}
},
{
"require": {
"type": "permission",
"permission": "group.default"
},
"display_name": "<dark_gray>[<aqua>玩家</aqua>]</dark_gray> <dark_aqua>${vanillaDisplayName}</dark_aqua>",
"message_formats": {},
"formatting": {},
"emoticons": {}
},
{
"require": {
"type": "permission",
"permission": "group.vip",
"operator": 3
},
"message_formats": {},
"formatting": {},
"emoticons": {
"potato": "<rb>土豆"
}
}
]
}
常见问题
Styled Chat 支持哪些 Minecraft 版本?
Styled Chat 支持 Minecraft Java 版 1.17–26.3,共 34 个版本,可用的加载器:Fabric / Quilt。下载时注意选择和你游戏版本一致的文件。
Styled Chat 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Quilt,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。
Patbox 的其他作品
查看全部 →Text Placeholder API
by Patbox
用于 Minecraft 模组的占位符与文本处理前置库。
9492万
1 个月前
Modrinth · CurseForge
Universal Graves
by Patbox
可自定义的 Fabric 死亡墓碑模组!
1268万
1 个月前
Modrinth · CurseForge
Polymer
by Patbox
用于创建更好的服务端内容的前置库!
836.3万
今天
Modrinth · CurseForge
Better Nether Map
by Syrikal, Jummit 等
让地图在下界和其他洞穴维度中运行得更好。
528.4万
7 个月前
Modrinth
评论
登录后评论和评分