跳转至

Settings\Chat.yml 中文注释版🔗

本页为 CMI 插件聊天(Chat)系统配置说明,对应配置文件 Settings/Chat.yml


聊天格式修改(ModifyChatFormat)🔗

Enabledfalse

将尝试修改聊天以按定义格式显示 如果此项禁用并且你有第三方插件处理聊天消息,如果你注意到聊天格式有任何问题,考虑也禁用 ClickHoverMessages 部分

PriorityLOWEST

公共消息格式监听器的优先级 更改优先级只会在服务器完全重启后生效。可能选项:LOWEST LOW NORMAL HIGH HIGHEST 默认:NORMAL

ClickHoverMessagestrue

设置为 true 时,普通和私密消息(排除干净消息)在悬停时将有附加信息(支持 PlaceHolderAPI),并且可以点击以快速回复 要更改发送消息上看到的默认悬停内容,请前往你的语言文件的 Chat 部分

DiscordSRV 支持(DiscordSRV)🔗

Enabledfalse

启用 DiscordSRV 插件支持

GlobalChannelglobal

定义 discordsrv 中全局聊天频道的名称

Label'&2[&7D&2]'

可以在聊天格式中用作 {discord} 的指示符,用于指示消息来自 discord 而非游戏内

UnlinkedLabel'&4[&cD&4]'

RangedMessagestrue

启用后且你启用了范围消息,我们将把它们全部发送到 DiscordSRV 禁用时,只有喊话和拥有 cmi.chat.rangebypass 权限节点的玩家发送的消息会在 discord 中可见

常规聊天设置🔗

DynMapChattrue

启用 DynMap 网页聊天支持

ReplyToLastMessengerfalse

设置为 false 时,每次使用 /r 你将回复你之前直接发送消息的人,或者如果没有之前对话则回复给你发消息的人 设置为 true 时,使用 /r 的玩家将回复最后发送私信的人。这在同时收到多个玩家私信时使用 /r 可能导致混乱

LastMessengerTimeOut120

如果 ReplyToLastMessenger 设置为 false,则将考虑 timeOut 来决定你应该回复谁 如果你在过去 120 秒(默认)内进行过对话,那么即使收到第三方的消息,你仍将回复原来的玩家 如果对话时间超过 120 秒,那么你将回复最近给你发消息的人

PrivateMessagesGroupsfalse

设置为 true 时,玩家将需要 cmi.command.msg.[groupname].send 权限,其中 [groupName] 是接收者的主权限组

TranslateLinktrue

设置为 false 时,聊天中的网页链接将不会被缩短为默认的 [LINK] 格式

LinkRegex(^| )((http|https|ftp|ftps)\:\/\/)?[a-zA-Z0-9\-]+\.[a-zA-Z]{2,3}(\/\S*)?([^\s|^\)]+)

定义将聊天中的 url 替换为短词时的正则表达式 示例:

(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9]\.[^\s]{2,})
((http|https|ftp|ftps)\:\/\/)?[a-zA-Z0-9\-]+\.[a-zA-Z]{2,3}(\/\S*)?
((http|https|ftp|ftps)\:\/\/)?[a-zA-Z0-9\-]+\.[a-zA-Z]{2,3}(\/\S*)?([^\s]+)

悬停物品(HoverItems)🔗

Enabledtrue

设置为 true 时,聊天中的特定变量将被转换为玩家手持的物品。变量列表如下

ItemRegex(正则列表)

定义将聊天中的物品行替换为玩家手中物品信息的正则表达式。仅在启用 CMI 悬停聊天格式时有效

ItemRegex:
- (\[item\])
- (([&§]\S)+)?\[(([&§]\S)+)?i(([&§]\S)+)?t(([&§]\S)+)?e(([&§]\S)+)?m(([&§]\S)+)?\]

Bungee 跨服(Bungee)🔗

Messagesfalse

注意!这将要求你拥有 CMI Bungee 插件,可以在 zrips.net 找到 或直接下载 https://www.zrips.net/cmi/ 是否想启用跨 bungeecord 的私信 需要为此启用 Bungee cord 支持才能生效

PublicMessagestrue

是否想启用跨 bungeecord 的公共消息 玩家需要拥有 cmi.bungee.publicmessages.[servername] 权限节点才能向目标服务器发送消息

PublicMessagesSingleIgnorefalse

启用时,发送给单个玩家的公共消息将被忽略,不会跨网络发送 这仅适用于在线玩家多于一个且聊天范围设置为全局时

StaffMessagestrue

是否想启用跨 bungeecord 的工作人员消息

消息格式(GeneralFormat)🔗

GeneralFormat'{prefix}&f{displayName}&7: &r{message}'

用于简单聊天消息。可选变量:{displayName} {world} {prefix} {suffix} {group} {shout} {shoutcolor} {message} {nicknameprefix}。支持 PlaceHolderAPI 变量,如 %player_server% %cmi_user_chatcolor% 注意!不要为 {message} 变量使用渐变颜色,如果你想对其应用渐变,请使用 GeneralMessageFormat 部分

GeneralMessageFormat'{message}'

将定义消息格式本身,这允许在消息中使用渐变 它必须包含 {message},否则我们将忽略此设置 对于 1.16+ 服务器,你可以使用颜色渐变,如 '{#b3a28f>}{message}{#d7b8e6<}' 你可以在渐变中有超过 2 种颜色。要定义它,请重复 {message} 变量。例如 '{#b3a28f>}{message}{#5c6999<>}{message}{#d7b8e6<}' 使用 %cmi_user_chatcolor% 添加玩家选择的聊天颜色

范围聊天(Ranged)🔗

General-1

定义普通消息传播的范围 设置为 -1 以禁用范围限制

Shout200

定义喊话消息传播的范围 喊话消息应以 ! 开头,且玩家应拥有 cmi.chat.shout 权限 应启用 GeneralRange 设置为 0 以跨所有世界喊话,-1 以禁用

ShoutColor''

用作喊话聊天消息基础的颜色代码

ShoutCost0

定义每条喊话消息的费用

Ranged.Dynamic🔗

Usefalse

是否启用动态消息范围限制

Limits(范围列表)

消息范围限制列表 玩家数量后跟范围 玩家数量定义从多少开始我们应该使用此范围

Limits:
- 1-0
- 10-1000
- 20-500
- 30-400
- 40-300
- 50-200

聊天室(ChatRoom)🔗

ChatRoomShout'!'

用于指示消息应发送到公共聊天而非当前玩家聊天室的标头 设置为空字段如果你想禁用此功能

ChatRoomLife3600

你想在删除聊天室之前保持其存活的秒数 这仅适用于最后一个用户离开后的空房间

点击建议(ClickSuggestions)🔗

pubmsg'/msg [playerNickName] '

定义当你点击公共、私密及类似消息时建议的命令。[playerName] [playerDisplayName][playerNickName] 可用于包含玩家名称

privmsg'/msg [playerNickName] '

staffmsg'/msg [playerNickName] '

helpop'/msg [playerNickName] '

chatroom'/msg [playerNickName] '

discord'/msg [playerNickName] '

点击命令(ClickCommands)🔗

pubmsg''

定义玩家点击玩家名称时执行的命令(每种类型一个命令) 当此项定义时,ClickSuggestions 将更改为 shift+左键点击以执行建议的命令 命令以玩家身份执行,如果你想从控制台执行,请在命令开头添加 asConsole! 变量

privmsg''

staffmsg''

helpop''

chatroom''

discord''

组格式(GroupFormat)🔗

'1''{prefix}&f{displayName}&f: &r{message}'

使用数字增量将组彼此分开。如果玩家有多个组,则使用编号较高的行 根据需要添加任意数量的行 cmi.chatgroup.[id] 权限节点以使用 权限示例:cmi.chatgroup.2 注意!不要为 {message} 变量使用渐变颜色,如果你想对其应用渐变,请使用 GroupMessageFormat 部分

'2''{prefix}&f{displayName}&7: &r{message}'

'3''{prefix}&f{displayName}&8: &r{message}'

组消息格式(GroupMessageFormat)🔗

'1''{message}'

使用数字增量将组彼此分开。如果玩家有多个组,则使用编号较高的行 根据需要添加任意数量的行 cmi.chatmessagegroup.[id] 权限节点以使用 权限示例:cmi.chatmessagegroup.2

'2''{message}'

'3''{message}'

颜色(Colors)🔗

PublicMessage🔗

Enabledtrue

如果设置为 true,则所有公共消息将被过滤颜色代码,并允许使用相应的权限节点为其着色 cmi.colors.publicmessage.[colorName] 颜色:black(&0) darkblue(&1) darkgreen(&2) darkaqua(&3) darkred(&4) darkpurple(&5) gold(&6) gray(&7) darkgray(&8) blue(&9) green(&a) aqua(&b) red(&c) lightpurple(&d) yellow(&e) white(&f) magic(&k) bold(&l) strikethrough(&m) underline(&n) italic(&o) reset(&r)

PriorityNORMAL

公共消息颜色监听器的优先级 更改优先级只会在服务器完全重启后生效。可能选项:LOWEST LOW NORMAL HIGH HIGHEST 默认:NORMAL

PrivateMessagetrue

启用私密消息颜色过滤

metrue

如果设置为 true,则 /me 消息将被过滤颜色代码,并允许使用相应的权限节点为其着色 cmi.colors.me.[colorName]

CleanUp🔗

publicmessagetrue

如果设置为 true,则当玩家没有该颜色的相应权限节点时,颜色代码将从文本中移除而不是保留

privatemessagetrue

metrue

signsfalse

bookstrue

itemnametrue

itemloretrue

WhiteList(字符串列表)

检查聊天中玩家不能使用的颜色代码时要忽略的字符串列表 这将绕过玩家的颜色代码限制,并允许使用特定的聊天格式 仅适用于公共和私密消息

WhiteList:
- '&c❤&7'

NickNametrue

如果设置为 true,则玩家更改昵称时昵称将被过滤颜色代码 cmi.colors.nickname.[colorName]

Picker(颜色列表)

决定 /cmi chatcolor 命令的内容。玩家可以选择的内容将由 cmi.colors.publicmessage.[colorCode] 决定,并用于 %cmi_user_chatcolor% 占位符

Picker:
- '&f'
- '&2'
- '&3'
- '&7'
- '&8'
- '&a'
- '&b'
- '&c'
- '&e'
- '&6'
- '{#00e625}'
- '{#brown}'

忽略公共消息(IgnorePublicMessage)🔗

IgnorePublicMessagetrue

如果设置为 true,则在你忽略列表中的玩家的公共消息将不会显示

标记(Tag)🔗

Enabledtrue

启用或不启用标记系统。这将在公共聊天中名称前面有 @ 时告知玩家其名称被提及

HardCoreModefalse

设置为 true 时,公共消息中的任何玩家提及将被着色,玩家将照常收到通知 这比通常的 @ 标记对服务器负担重得多,所以如果你知道自己在做什么才启用

Color'&c'

决定聊天中名称/昵称前面有 @ 的被标记用户名的颜色。发送者应拥有 cmi.tag.color

CommandsOnTag(命令列表)

玩家被标记时要执行的命令 像 [playerName] 这样的变量将被替换为被标记的玩家名称 你可以使用 [senderName] 包含发起标记的玩家名称

CommandsOnTag:
- asConsole! cmi sound BLOCK_NOTE_BLOCK_HARP:3:1 [playerName] -s

OnlyWhenAfkfalse

仅在玩家挂机时执行标记命令

RemoveEtafalse

设置为 true 时,@ 符号将被移除

聊天气泡(ChatBubble)🔗

PublicMessagestrue

是否想为公共消息启用聊天气泡 每个玩家都可以用 /options 命令亲自禁用此功能

PriorityMONITOR

聊天气泡监听器的优先级 更改优先级只会在服务器完全重启后生效 可能选项:LOWEST LOW NORMAL HIGH HIGHEST MONITOR 默认:MONITOR

Offset2.5

我们应该显示聊天气泡多高

ShowFor5

聊天气泡可见的基础时间(秒)

MaxShowFor10

气泡将被显示的最长时间

ExtraTime0.02

消息中每个字母要添加的额外秒数 这将允许短消息有更短的时间,并随更长消息增加

PlateScale1

聊天气泡的缩放,默认 1

LineWidth255

换行到新行前的行宽

Background🔗

Color'{#black}'

默认颜色代码,如果文本本身被着色,则可以被覆盖 留空以使用默认的透明颜色 颜色代码示例:{#black}

Opacity0.5

0 到 1 之间的值,其中 0 表示没有背景颜色,1 是完全不透明

Shadowtrue

是否想添加文本阴影

Groups🔗

如果玩家有权访问多个权限节点,则编号较高的组将被优先考虑 颜色以十六进制格式定义,可选择 RGBA 格式的 alpha 通道

Groups:
  '0':
    BackgroundColor: '#000000DC'
    Shadow: true
    LineWidth: 255
    Scale: 0.5
  '1':
    BackgroundColor: '#AEC6FFDC'
    Shadow: true
    LineWidth: 255
    Scale: 0.5
  '2':
    BackgroundColor: '#BAFFC9DC'
    Shadow: true
    LineWidth: 255
    Scale: 0.5
  '3':
    BackgroundColor: '#FFFFBADC'
    Shadow: true
    LineWidth: 255
    Scale: 0.5