聊天与公告
公会频道与同盟频道
| 写法 | 效果 |
|---|---|
#大家晚上打王 | 聊天开头是 chat.quick-prefix(默认 #)时,这一句只发到公会频道 |
/cg c <消息> | 发一句到公会频道(/cg chat、/cg gc 也可以) |
/cg c | 切换到公会频道:之后打的每一句都发到公会;再输入一次切回一般聊天 |
/cg ac <消息> | 发一句到同盟频道:自己与所有同盟公会的成员都看得到(/cg allychat 也可以) |
/cg ac | 切换到同盟频道 |
主页的「公会频道」按钮:左键切换公会频道、右键切换同盟频道;目前的频道显示在 {chat} 与 %cloudguild_chat_mode%。
- 公会与同盟频道跨服:发出的消息写进数据库的事件表,其他子服在下一次同步(默认 1 秒内)送给自己子服上的成员。
- 离开公会时自动切回一般聊天。
- 在聊天栏回答云公会的输入提示(例如输入申请留言、存款金额)时,那一句不会被当成公会聊天。
- 公会频道的消息不会出现在公屏:两种聊天事件都会被取消,CMI、EssentialsChat 这类从旧聊天事件重新发送消息的插件也不会外流。
格式
chat:
guild-format: '&a[公會] {rank} &f{player}&7: &f{message}'
ally-format: '&d[同盟] &7{guild} &f{player}&7: &f{message}'
spy-format: '&8[監聽 {guild}] {player}: {message}'
quick-prefix: '#'
allow-color: false
| 键 | 说明 |
|---|---|
guild-format | 公会频道的格式。变量:{rank} 发言者的职位名称、{player} 玩家名、{guild} 公会名称、{message} 消息 |
ally-format | 同盟频道的格式,变量同上 |
spy-format | 管理员监听看到的格式,变量同上;控制台也会用这个格式记录每一句公会 / 同盟聊天 |
quick-prefix | 快速发言的开头符号;留空 '' = 关闭 |
allow-color | true 时玩家可以在公会聊天里用 & 颜色代码;玩家写的 MiniMessage 标签永远不会生效(见 玩家文字的安全处理) |
其他插件可以用 GuildChatEvent 修改或取消公会聊天(例如接违禁词插件)。
管理员监听
/cg spy
/cg admin spy
开启后看得到所有公会的公会频道与同盟频道(自己本来就收得到的不会重复)。/cg spy 需要 cloudguild.chat.spy,/cg admin spy 需要 cloudguild.admin。
监听是每个子服各自的开关,重新登录或重启后需要再开一次。
公告栏
/cg notice
/cg notice post <标题>|<内容>
/cg notice 打开公告栏菜单。发布需要 notice 职位权限:
/cg notice post 今晚打王|20:00 主城集合|記得帶藥水
第一个 | 前面是标题,后面是内容,内容里的 | 会换行。也可以在公告栏菜单点「发布公告」,依提示先输入标题、再输入内容。
| 键 | 默认 | 说明 |
|---|---|---|
notice.max | 20 | 每个公会保留几则公告,超过时删掉最旧的 |
notice.cost | 0 | 发布一则公告花费的公会资金(资金不够就无法发布,会写入银行记录) |
notice.title-max-length | 16 | 标题最多几个字 |
notice.content-max-length | 200 | 内容最多几个字 |
- 发布后公会所有在线成员(任何子服)收到「xxx 發布了公告:标题 [查看]」。标题与内容可以用
&颜色,<>\会换成全角字符(见下方)。 - 未读提醒:每位成员各自记录读过哪些公告。上线时有未读公告会提示「公會有 N 則未讀公告」;主页的公告栏按钮换成
unread状态;%cloudguild_unread_notices%、%cloudguild_has_unread%也会更新。 - 在公告栏菜单左键点未读的公告标为已读,「全部标为已读」一次读完;有
notice权限的成员右键可以删除(会二次确认)。 - 发布者自己的公告自动算已读。
/cg notice delete <编号>也能删除,但编号不会显示在菜单上,一般用菜单右键删除比较方便。
玩家文字的安全处理
玩家自己输入、之后会放进消息模板的文字——申请留言、公告标题与内容、公会介绍、allow-color: true 时的公会聊天——都会先经过处理:
<→<、>→>、\→\(全角字符),§直接去掉。
所以玩家无法在这些文字里写出 MiniMessage 标签:不能伪造点击执行指令(<click:run_command:…>)、悬停、插入文字,也不能用 \< 之类的跳脱写法绕过。& 颜色代码不受影响(公会聊天要 allow-color: true 才会生效)。
allow-color: false(默认)时,公会聊天的内容一律当成纯文字显示。