Minecraft(我的世界)中文论坛
标题: [[/]]Minecraft插件百科 —— [ChatControl Pro]多功能聊天管理插件Wiki翻译
作者: qsefthuopq 时间: 2019-1-29 17:41
标题: [[/]]Minecraft插件百科 —— [ChatControl Pro]多功能聊天管理插件Wiki翻译
本帖最后由 qsefthuopq 于 2019-5-25 19:40 编辑
插件名 ChatControl Pro
| 作者 kangarko
| 译者 qsefthuopq
| 购买地址 |
ChatControl是一款易于理解和配置的多功能聊天管理插件,可以更容易地管理你的服务器聊天消息内容。这款插件最初用于防止刷屏、打广告、脏话和防假人,但现在这款插件已经蜕变,其功能远超于一般的聊天管理插件。
作者: cnp1911 时间: 2019-2-3 21:32
MCBBS有你更精彩~
作者: qsefthuopq 时间: 2019-4-7 18:17
本帖最后由 qsefthuopq 于 2019-5-25 19:45 编辑
兼容性
在你查看该页面之前,确认你正确地安装了该插件所需的硬件和软件.
ChatControl Pro在开发时插件作者就考虑到了插件的稳定性和性能. 这款插件从2013年诞生至今已经经过了无数次的优化来尽可能地高效运行. 插件作者也会尽可能地考虑与其他插件的兼容性.
插件兼容性你可以安装以下兼容ChatControl的插件. ChatControl在开服时会自动检测兼容的插件并启用额外的特性.
- AuthMe 的 {country_name} 和 {country_code} 变量,用于聊天格式和加入/退出/踢出的消息.
- 用BungeeControlBridge兼容群组服.
- 用DiscordSRV关联Discord聊天内容.
- 用Essentials 或 EssentialsX 来检测暂时离开游戏的玩家和支持昵称变量{nick}.
- Factions MCore, FactionsUUID, FactionsOne 和 LegacyFactions 的派系变量 {faction}. 使用 PlaceholderAPI来获取更多相关变量. PS: 如果你在聊天格式或检测器上遇到了麻烦, 可在setting.yml内设置 Listener_Priority.Checker 为 LOWEST.
- Feudal的组队聊天频道.
- MVdWPlaceholderAPI 的第三方变量. 插件作者不保证这些变量能够正常使用.
- 在聊天格式内显示Multiverse-Core的彩色世界名.
- Nametags显示玩家前缀 (前缀变量 {nametags_prefix}) (后缀变量 {nametags_suffix}).
- 获取Nicky的昵称变量 {nick}
- PlaceholderAPI的第三方变量. 插件作者不保证这些变量能够正常使用.请使用{variable} 用法, 而不是这个插件的 %variable%用法!
- 用ProtocolLib实现发包规则和关闭Tab补全.
- SimpleClans 公会名变量 {clan}.
- Towny 国家 {nation} 和城镇 {town} 变量.
- 用Vault在聊天格式中显示玩家的前后缀并可用规则的运算符"then fine"来取钱.
WIKI编辑者的推荐插件
- Confiscate,我不是在打广告(实际上就是),但这是款可以管理ChatControl未管理到的区域并使你的服务器更加安全的插件.
- NoCheatPlus (不是前置,但推荐使用相关的反作弊插件), 可以防止更多类型的刷屏.
Bukkit服务端插件支持多种服务端,但在一些服务端内部分功能可能无法正常使用. 请查看以下内容来确认插件是否兼容你的服务端版本.
- Spigot (所有以下列出的版本). 已经过测试完全兼容.
- PaperSpigot (所有以下列出的版本). 已经过测试完全兼容.
- Craftbukkit (所有以下列出的版本).对于1.8以上的版本无法使用可交互聊天信息. 请使用 Spigot 或 PaperSpigot 或是关闭无法使用的功能 (缺失methods).
- Thermos 1.7.10. 无法正常使用! 不幸的是, Thermos会替代一些Minecraft服务器的基本功能和libraries,所以插件无法正常使用.
- (K)Cauldron 1.7.10. 也许无法正常使用. 需要安装SpecialSources 和 BungeeChatAPI. Cauldron替换了很多library且这些内容已过期.
- 其他衍生服务端 (在兼容的Minecraft版本内). ChatControl会占用最小的服务器性能且拥有一些安全机制来防止数据丢失. 插件应该可以使用, 但仍推荐你不时地查看服务器日志来确认是否有报错.
Java版本Java 8 以及更新的版本.
兼容版本你可以在以下版本运行 ChatControl Pro . 请注意 x 代表了子版本, 比如 1.11.0 和 1.11.2.
下表已过期 现已兼容至1.14.1
Minecraft版本 | 兼容性 |
1.12.x | 兼容. |
1.11.x | 兼容. |
1.10.x | 兼容. |
1.9.x | 兼容. 由于缺少API,书本规则无法使用. |
1.8.x | 兼容. |
1.7.10 | 也许需要BungeeChatAPI . |
1.6.4 | 需要BungeeChatAPI. |
1.5.2 | 需要BungeeChatAPI. |
1.4.7 | 需要BungeeChatAPI. |
1.3.2 | 兼容,但一些功能会缺失. |
1.2.5 | 免费版本兼容,由于太多数据库缺少所以付费版本不兼容. |
免费版和专业版的区别如果你打算购买专业版, 请先查看以下内容.

从免费版升级到专业版是可行的.但在此之前我推荐你先备份插件文件夹. - settings.yml 和 chat.yml 无法自动升级. 这些文件会被重命名为 old_settings.yml 和 old_chat.yml file. 你不会失去任何数据.
- 你需要手动修改变量, 旧变量用法 (%variable%) 已改为({variable}).详情如下.
用notepad++升级版本- 红色: 打开含有变量的文件. 按下 CTRL + F来打开 '寻找和替换'窗口.然后点击 '替换'.
- 橙色:修改设置.
- 黄色: 填入以下内容:
'查找目标'区域: (%(\w+))
'替换为' 区域: {$2}
- 绿色: 点击 '替换' 按钮并重复操作直至替换掉所有的旧变量
- 在每个文件内重复该操作 (settings.yml, handlers.yml, chat.yml,和variables/javascript.txt). 这是升级版本最安全的方法,大概需要花费你5分钟的时间.如果你使用了自定义语言文件你还需要在'localization/'内更新变量(汉化配置已修改).
监听器优先级一个常见的疑问就是不兼容其他聊天插件. 如Towny/EssentialsChat. 甚至是BanManager.查看以下内容来设置插件的兼容性.
基本内容安装安装十分简单.步骤如下
- 当你购买ChatControl Pro后,下载最新版本.
- 拖拽文件到 'plugins/' 内.
- 重启服务器.
以下图片图解第一次运行的情况. 你会受到新文件创建的提醒.

你需要特别注意开服时在控制台显示的信息. 这些信息包括了如何安装的相关信息并且会告诉你插件更新了什么内容. 屏蔽启动消息如果你认为开服时显示的信息太多了,你可以在 settings.yml内设置Silent_Startup 为 true 来关闭. 你仍然在更新配置时能够看到更新日志.
更新更新这个插件十分简单方便.只需拖拽新的插件文件到 plugins/内即可.但你需要先删除旧的插件文件.
插件完成更新后,所有的设置都会自动更新.不像其他大多数插件, ChatControl Pro会在控制台显示每次更新的内容.
特殊内容版本 7.5.0- 这个版本改变了大量内容并对配置进行了优化,所以这个版本无法自动更新.
- 文件 chat.yml 分成了 formatting.yml 和 channels.yml, 且会被重命名为old_chat.yml
配置ChatControl 使用 YAML文件的语法来保持配置简明易懂.
文件结构- logs/ - 记录脏话、广告、违反规则、规则变化和聊天信息等内容的文件夹.
- rules/ - 存储所有规则文件的地方: global (对任何事物),聊天、书本告示牌等规则...
- variables/ - 存储你设置的自定义变量的地方.
- variables/javascript.txt - 你可以在这里用Javascript创建属于你的自定义变量.
- formatting.yml - 可交互聊天格式设置.
- handlers.yml - 存储所有的处理器、行为分组.
- channels.yml - 聊天频道设置.
- messages.yml - 消息设置.
- settings.yml - 主配置,详情如下.
settings.yml这是主要的配置.你可以在这里修改所有的设置.并且这个文件会在你更新插件版本时自动更新(可能会覆盖注释但不会覆盖修改过的配置). 汉化配置请前往MCBBS搬运帖查看
- # !-------------------------------------------------------------------------------------------------!
- # 欢迎来到 ChatControl PRO 主配置
- # !-------------------------------------------------------------------------------------------------!
- # 翻译:qsefthuopq 中文变成乱码 从90%到0%开始翻译 —— 2019.1.27
- # 由于是二次翻译 部分直译注释会适当精简
- # 原WIKI链接已替换为中文WIKI链接 部分页面可能还暂未完成翻译
- # 完整的中文WIKI请查看:
- # - http://mineplugin.org/ChatControl_Pro/WIKI
- # 原WIKI
- # - https://github.com/kangarko/ChatControl-Pro/wiki
- #
- # !-------------------------------------------------------------------------------------------------!
- #
- # 1)支持颜色代码 '&' 字符. 详情查看
- # - http://minecraftwiki.net/wiki/Formatting_codes
- # [!] When you use them, omit the message with " " or ' '.
- #
- # 2) 隐藏请设置为'none'.
- #
- # 3) 对于UNICODE字符 (smileys, symbols, ..), 请以UTF-8编码保存文件详情查看
- # - https://github.com/kangarko/ChatControl-Pro/wiki/Use-Right-Encoding
- #
- # 4) 支持JSON. 详细用法请查看:
- # - http://mineplugin.org/ChatControl_Pro/WIKI/JSON
- #
- # 5) 不同版本的音效请查看:
- # - 1.9 +: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
- # - 1.8 -: https://goo.gl/ArzbZA
- #
- # PS: 以上信息可应用于插件的所有文件.
- #
- # !! 消息 (如 'Please wait 2 seconds [...]') 存储在语言文件内,详情查看:
- # - http://mineplugin.org/ChatControl_Pro/WIKI/%E6%9C%AC%E5%9C%B0%E5%8C%96
- #
- # !-------------------------------------------------------------------------------------------------!
- # -------------------------------------------------------------------------------------------------
- # 缓解假人刷屏
- # -------------------------------------------------------------------------------------------------
- Anti_Bot:
-
- Cooldown:
-
- # 重登冷却
- Rejoin: 4
-
- # 登录后多久才能聊天
- Chat_After_Login: 1
-
- # 登录后多久才能输入指令
- Command_After_Login: 1
-
- # 是否禁止未移动的玩家发送消息? 他们仍可以发送指令.
- Block_Chat_Until_Moved: true
-
- # 禁止使用的指令.
- # 设置为这样来关闭: Block_Commands_Until_Moved: '[]'
- Block_Commands_Until_Moved:
- - /afk
- - /me
-
- # 如果你安装了 AuthMe,是否只显示玩家退出游戏的消息?
- # [提示] 在 AuthMe的配置内启用 'delayJoinMessage' 即可关闭加入游戏的消息.
- Show_Quit_Message_Only_If_Logged: true
-
- # 玩家是否无法放置相同内容的告示牌.
- Block_Signs_With_Same_Text: true
-
- # 防止使用非法玩家名的玩家加入服务器. 支持正则表达式.
- Disallowed_Nicknames:
- - '(f+(\W|\d|_)*u+(\W|\d|_)*c+(\W|\d|_)*k+(\W|\d|_)*)'
- - bitch
- - asshole
- - admin
- - operator
- # -------------------------------------------------------------------------------------------------
- # 防止大量大写字母 对中文基本没用
- # -------------------------------------------------------------------------------------------------
- Anti_Caps:
- Enabled: true
- Enabled_In_Commands: false
-
- # 检测的指令. 需要启用 'Enabled_In_Commands'.
- # [提示] 对所有指令都启用检测只需设置为 - '/'
- Commands_To_Apply:
- - /msg
- - /tell
-
- # 当玩家触发过滤器时给予的警告分数?
- # [提醒] 只在启用警告分数系统时有效. 设置为这样关闭: 'Amount: 0'
- Points:
- Warn_Set: spam
-
- # 你可以在这里使用有效的数学表达式.结果取整 (没有小数).
- Amount: 4 * ({capsPercentage} / 2)
-
- # 是否允许玩家名大写? 如果出现了性能问题请关闭这项 (尤其是在大型服务器内).
- Ignore_Usernames: false
-
- Min_Message_Length: 5
- Min_Caps_Percentage: 50
- Min_Caps_In_A_Row: 5
- # 当大写率超过限制时是否只发送警告消息?
- # 必须≥ Min_Caps_Percentage.
- Warn_If_Caps_Above_Percent: 50
- #大写单词白名单
- Whitelist:
- - OMG
- - LOL
- - WTF
- - WOW
- - ROFL
- - GG
- # -------------------------------------------------------------------------------------------------
- # 防刷屏
- # -------------------------------------------------------------------------------------------------
- Anti_Spam:
- # 这部分应用于指令和消息.
- #
- # 相似度检测会检测玩家这条和上一条消息的相似度,
- # 并阻止玩家发送相同或相似的消息.
- Similarity_Check:
-
- # 如果你的服务器不是英语环境, 关闭这些项来优化性能.
- Ignore_Special_Characters: true
-
- Ignore_Duplicate_Characters: false
-
- # 是否对 相似度白名单、Whitelist_Time 和Parrot 的白名单应用正则表达式?
- Regex_In_Whitelists: false
-
- # 防指令刷屏.
- Commands:
-
- # 指令冷却.设置为0关闭
- Command_Delay: 2
-
- # 限制玩家在一段时间内发送的消息数.
- Limit:
- Period: 10 seconds
- # 默认玩家10秒内可以发送8条指令.
- Max_Commands: 8
-
- # 警告分数.
- # [提醒] 只在启用警告分数系统时有效. 设置为这样关闭: 'Amount: 0'
- Delay_Points:
- Warn_Set: fastmessages
-
- # {delay} 为两条消息间的间隔.
- Amount: 3 - {delay}
-
- # 相似度检测.
- # 设置为0或100关闭.由于指令冷却已经可以很好屏蔽指令刷屏了译者已关闭这个功能.
- Similar_Percentage_Block: 0
-
- # 警告分数.
- # [提醒] 只在启用警告分数系统时有效. 设置"Amount" 为0来关闭.
- Similarity_Points:
- Warn_Set: spam
- Amount: 4 * ({similarityPercentage} / 2)
-
- # 如果启用这项, 只有在以下白名单列出的指令会被检测.
- Whitelist_Works_Like_Blacklist: false
-
- # 可重复输入的指令.
- Whitelist_Similarity:
- - /tell
- - /pm
- - /t
- - /w
- - /r
- - /togglepm
- - /togglebroadcast
-
- # 无视冷却的指令.
- Whitelist_Delay:
- - /spawn
- - /hello
-
- # 视为聊天的指令.
- # 触发防刷屏、规则、记录器、警告分数、防大写等功能.
- Handle_As_Chat:
- - /me
- # 消息防刷屏.
- Chat:
-
- # 聊天冷却.
- Message_Delay: 1
- # 一段时间内可说话次数上限.
- Limit:
- Period: 10 seconds
- # 默认10秒内可说8句话.
- Max_Messages: 8
- # 禁止复读.
- Parrot:
- Enabled: true
-
- # 大于该段时间的消息才会被检测复读:
- # [提示] 20 ticks = 1 second
- Delay: 20 ticks
-
- # 复读相似度.默认为85.
- Minimum_Similarity: 60
-
- # 以下单词开头的句子会被忽略.
- Whitelist:
- - hello
- - hey
- # 警告分数.
- # [提醒] 只在启用警告分数系统时有效. 设置为这样关闭: 'Amount: 0'
- Delay_Points:
- Warn_Set: fastmessages
-
- # {delay} 为两条消息间的间隔
- Amount: 3 - {delay}
- # 阻止与上一条消息相似的消息发送.
- # 设置为0关闭.默认为80
- Similar_Percentage_Block: 40
-
- # 检测上几条消息. 可增加防刷屏效率,如:
- # <player> t
- # <player> lol
- # <player> t
- # <player> lol
- Similarity_Message_Check_Count: 2
-
- # 警告分数.
- # [提醒] 只在启用警告分数系统时有效. 设置"Amount" 为0来关闭.
- Similarity_Points:
- Warn_Set: spam
- Amount: 4 * ({similarityPercentage} / 2)
-
- # 以下消息开头的消息不会被检测.
- Whitelist_Similarity:
- - hello
- - hey
- - 你好
- - 嗨
- # 以下消息无视消息冷却.
- Whitelist_Delay:
- - test
-
- # -------------------------------------------------------------------------------------------------
- # 英语语法校正.
- # -------------------------------------------------------------------------------------------------
- Grammar:
-
- # 在句子后面加上句号.
- Insert_Dot:
- Enabled: true
- Min_Message_Length: 5
- # 大写句子开头.
- Capitalize:
- Enabled: true
- Min_Message_Length: 5
-
- # 降低第二个字母的错误大写 (如 TRee -> Tree)
- # 必须是大于2个字母的单词才有效.
- Lowercase_Second:
- Enabled: false
- # -------------------------------------------------------------------------------------------------
- # "/chc clear" 清屏.
- # -------------------------------------------------------------------------------------------------
- Clear:
- Broadcast: true
- Do_Not_Clear_For_Staff: true
- # 输出端控制台的空白行数.
- Console_Lines: 300
- # -------------------------------------------------------------------------------------------------
- # "/chc mute" 禁言设置.
- # -------------------------------------------------------------------------------------------------
- Mute:
- Broadcast: true
-
- # 如果你安装了Essentials , 以下行为会应用Essentials的禁言.
- Apply_Limits_For_Essentials_Mute: true
-
- # 在禁言时禁止以下行为:1.写书、2.放置告示牌.
- Prevent:
- Writing_Books: false
- Placing_Signs: true
-
- # 在禁言时隐藏以下消息.
- Silence:
- Join_Messages: true
- Quit_Messages: true
- Death_Messages: true
- Disabled_Commands:
- - /me
- - /tell
- - /msg
- - /r
- - /w
- # -------------------------------------------------------------------------------------------------
- # 萌新规则
- # -------------------------------------------------------------------------------------------------
- Newcomer:
-
- # 玩家需要在线多久才不再是萌新?
- # 设置为 0 minutes 关闭
- Threshold: 0 minutes
-
- # 启用该特性的世界?
- # 示例: [survival, nether, end]. 设置为 ["*"] 应用于所有世界.
- Worlds: ["*"]
-
- Restrict_Chat:
- # 是否禁止萌新聊天 ?
- Enabled: true
-
- # 消息白名单. 用 ", "分隔. 示例: [quit, end]
- Whitelist: []
-
- Restrict_Seeing_Chat:
- # 是否防止新手看到聊天消息?
- Enabled: true
-
- Restrict_Commands:
- # 是否防止新手输入指令?
- Enabled: true
-
- # 是否将白名单转换为黑名单?
- Blacklist: false
-
- # 允许使用的指令
- # 如果启用为黑名单, 则只阻挡以下指令.
- Whitelist:
- - /login
- - /l
- - /register
- - /reg
- - /helpop
- - /help
- - /?
- # -------------------------------------------------------------------------------------------------
- # "/chc announce" 广播设置.
- # 你可以在语言文件内自定义格式.
- #
- # 提示: 用 {receiver} 变量来代表受到消息的玩家名!
- # -------------------------------------------------------------------------------------------------
- Announcer:
- Bungee: true
- Ignore_Self: false
- Log_To_Console: true
-
- # 用法: <bukkitSoundName>, <音量>, <音高>
- # 对于1.8.8以下的服务器, 请使用音效 'SUCCESSFUL_HIT'
- Sound: ENTITY_ARROW_HIT_PLAYER, 1.0, 0.1
- # -------------------------------------------------------------------------------------------------
- # "/chc ach" 管理员聊天设置
- # -------------------------------------------------------------------------------------------------
- Admin_Chat:
- Bungee: true
- Log_To_Console: true
-
- # 是否记录到 logs/admin-chat.txt ?
- Write_To_File: true
-
- # DiscordSRV关联
- # 接受管理员聊天消息的Discord频道名.
- # 设置为 "none" 或留空关闭.
- Discord_Channel: "admin"
- # -------------------------------------------------------------------------------------------------
- # "/chc global" 跨服聊天设置.
- # -------------------------------------------------------------------------------------------------
- Bungee_Chat:
- # 是否在玩家加入游戏后自动启用跨服聊天. 可用'/chc g switch'切换
- Enabled_By_Default: false
- Log_To_Console: true
-
- # 是否记录到 logs/bungee-chat.txt ?
- Write_To_File: true
-
- # DiscordSRV关联
- # 接受管理员聊天消息的Discord频道名.
- # 设置为 "none" 或留空关闭.
- Discord_Channel: "global"
- # -------------------------------------------------------------------------------------------------
- # 私聊消息设置.
- # 目前支持指令: /tell 和 /reply
- # [提醒]如果关闭了私聊, 你仍然可以使用其他插件的私聊功能.
- # -------------------------------------------------------------------------------------------------
- Private_Messages:
- Enabled: false
- Bungee: false
-
- # 是否防止自言自语?
- Deny_Message_Self: false
-
- # 是否记录用于/reply回复的消息接收者 ?
- Register_Reply_To_Self: true
-
- # 是否把你自己设定为你发送信息的玩家的最后一个回复者?
- # 其他玩家可以用 /r 而不是 /tell 来回复.
- Register_Reply_To_Receiver: true
-
- # 是否无视隐身的玩家和伪装昵称玩家?
- Deep_Search: true
-
- # 以进度的方式发送消息 (需要 Minecraft 1.12)
- # 注意! 因为进度是在主线程内处理的所以这可能会在timings里显示.
- Toast:
- Enabled: true
- # 变量 {dynamic_spaces} 会填满第一行剩下的空格.
- Format: "&6[{sender} &8-> &6你]{dynamic_spaces}&7{message}"
-
- # 当玩家输入 前缀+玩家名 时自动把玩家置于对话模式中, 比如 "@kangarko"
- # 玩家可以输入"End"里的消息来退出对话模式.(默认exit)
- Auto_Start:
- Enabled: true
- Prefix: "@"
- End: "exit"
-
- # 第一个缩写为主指令, 请勿删除!
- Aliases:
- Tell: [tell, msg, t, whisper]
- Reply: [reply, r]
- TogglePM: [togglepm, ignorepm, nopm]
-
- # 你可以在formatting.yml内配置格式.
- Format_Sender: Private_Message_Sender
- Format_Receiver: Private_Message_Receiver
- # -------------------------------------------------------------------------------------------------
- # 忽略定时广播.
- # -------------------------------------------------------------------------------------------------
- Toggle_Broadcast:
- Enabled: false
- Aliases: [togglebroadcast, togglebc, toggletm, ignorebroadcast, ignorebc, ignoretm, nobroadcast, nobc, notc]
- # -------------------------------------------------------------------------------------------------
- # 屏蔽特定玩家的聊天和私聊消息.
- # -------------------------------------------------------------------------------------------------
- Ignore:
- Enabled: true
-
- # 请勿删除第一个缩写,这是主指令
- Aliases: [ignore, ign]
-
- # 是否隐藏屏蔽的玩家的私聊?
- Chat: true
-
- # 是否接收屏蔽的玩家的私聊?
- Private_Messages: true
- # -------------------------------------------------------------------------------------------------
- # /me 可以以与众不同的方式发送消息.
- # -------------------------------------------------------------------------------------------------
- Me:
- Enabled: true
-
- # 请勿删除第一个缩写,这是主指令
- Aliases: [me, shout, status]
-
- # Send to bungee?
- Bungee: true
- # -------------------------------------------------------------------------------------------------
- # 发包规则.
- # -------------------------------------------------------------------------------------------------
- Packets:
- # 是否启用所有特性?需要安装 ProtocolLib
- # 如发包规则、TAB补全
- Enabled: true
- # TAB补全. 这可能会泄露服务器信息.
- Tab_Complete:
-
- # 是否无法补全出隐身玩家的玩家名?
- Hide_Vanished_Players:
- Enabled: true
- # 最大补全数. 因为插件必须在每个补全的部分查找玩家
- # 这可能会占用一些资源. 不会检测太长的补全.
- Maximum_Length: 20
-
- # 是否启用防止TAB补全功能
- Enabled: false
-
- # 是否只控制指令补全?
- Only_In_Commands: true
-
- # 是否允许含有指定数量的参数补全消息?
- # 一个参数一般相当于一个空格 ' ' (如: /channel mute kangarko 包含2个空格 = 2 个参数)
- Require_Arguments: 1
-
- # 当消息长度超过这个限制后可使用补全.
- # 不推荐开启.
- # 设置为-1关闭.
- Require_Length: -1
- # -------------------------------------------------------------------------------------------------
- # ChatControl最有用的功能: 基于正则表达式并使用过滤器的规则
- # 查看 "rules/" 文件夹配置规则.
- # -------------------------------------------------------------------------------------------------
- Rules:
- # 是否输出 'Rule match [...]' 和消息的警告分数到控制台?
- # 你可以用 "dont verbose" 运算符来隐藏发送到控制台的消息.
- Verbose: true
- # 是否跨服播报警告?
- Bungee: true
- # 是否启用聊天规则?
- Chat: true
-
- # 是否启用指令规则?
- Commands: true
-
- # 是否启用发包规则? 发包规则可以捕获服务器甚至是其他插件的消息.
- # 需要 ProtocolLib.
- Packets: true
-
- # 是否启用告示牌规则?
- Signs:
- Check: true
- # 是否防止放置告示牌?
- Block: true
-
- # 是否以物品形式掉落告示牌?
- Drop: true
-
- # 是否在签名时检测书本?
- Books:
- Check: true
-
- # 如果启用, 非法书名会根据规则被替换 (如: 法克之书 -> ****之书)
- # 如果关闭, 玩家无法创建非法的书.
- Replace: true
-
- # 是否检测用铁砧给物品重命名?
- Anvil:
- Check: true
-
- # 如果启用, 非法物品名会根据规则被替换 (如: 法克之剑 -> ****之剑)
- # 如果关闭, 玩家无法创建非法名称的物品.
- Replace: true
-
- # 可以让玩家选择想看到的消息(由规则捕获).
- # 详情查看 http://mineplugin.org/ChatControl_Pro/WIKI
- Chat_Ignorer:
- Enabled: false
-
- # 你必须在这里创建分组才能屏蔽玩家.
- # 你可以给予玩家 'chatcontrol.ignoreset.<组名>' 来限制玩家.
- Sets:
-
- # 这是个使用了所有可用设置的示例配置 (目前只有一个).
- # 拥有 'chatcontrol.ignoreset.swearings' 权限的玩家可以开关这个屏蔽组.
- # 你不需要指定任何参数.
- swear:
- # 默认不启用屏蔽. 玩家需输入 "/chc ignore swearings" 才能启用屏蔽.
- # 默认数值: false
- Ignored_By_Default: false
-
- # -------------------------------------------------------------------------------------------------
- # 删除你不想要看见的控制台消息.
- # -------------------------------------------------------------------------------------------------
- Console_Filter:
- Enabled: false
-
- # 是否通过System.out.println对消息应用控制台过滤器?
- # 如果你的聊天消息没有出现在控制台则关闭这项.
- Filter_System_Out: false
-
- # 是否记录控制台消息到 logs/console.txt 内?
- Log: false
-
- # 从控制台删除的消息.
- # 无需输入整条消息, 部分即可.
- Filter_Console_Messages:
- - Reached end of stream for
- - Connection reset
- # 以下内容不兼容Multicraft而加上了注释.
- # 如果你不使用Multicraft你可以加上这些来减少控制台刷屏.
- # ↓在玩家进入时Essentials显示的玩家信息
- #- UUID of player
- #- lost connection
- # ↑玩家掉线消息
- # -------------------------------------------------------------------------------------------------
- # 音效提醒
- # -------------------------------------------------------------------------------------------------
- Sound_Notify:
- Enabled: true
- # 音效冷却.
- Cooldown: 10 seconds
-
- # 是否只提醒暂时离开游戏的玩家?需要Essentials.
- Require_Afk: false
- # 是否在玩家名开头有特定字符时发送提醒.
- # 如: '你好 @kangarko, 在吗?'
- # 设置为 'none' 为开启常时提醒.
- Require_Prefix: '@'
-
- # 格式: bukkit_sound_name, volume (float), pitch (float)
- # 如果你使用的服务端版本为MC 1.8.x及以下, 请将默认音效改为 'CHICKEN_EGG_POP'
- Sound: ENTITY_CHICKEN_EGG, 1F, 1.5F
-
- # 高亮玩家名. 设置为none关闭.
- # 你可以在分组内创建不同的颜色(详情查看下面的分组设置).
- Color: '&a'
-
- Enabled_In_Commands:
- - /msg
- - /tell
- - /t
- - /w
- - /r
- # -------------------------------------------------------------------------------------------------
- # 通过给予玩家特定的权限来进行分组.
- # -------------------------------------------------------------------------------------------------
- Groups:
- Enabled: false
- # 分组列表. 可自行修改.
- # 详情查看 http://mineplugin.org/ChatControl_Pro/WIKI/%E5%88%86%E7%BB%84
- List:
- vip:
- Message_Delay: 0
- Command_Delay: 0
-
- # -------------------------------------------------------------------------------------------------
- # 对违反规则的发送给予警告分数.
- # -------------------------------------------------------------------------------------------------
- Points:
- Enabled: false
-
- # 玩家是否只受到一条警告信息 (来自警告set) 而不是从规则和警告sets两次发送.
- # 只在警告set内使用了 "warn" 运算符时启用.
- Smart_Warnings: true
-
- # 玩家会在服务器重载或重启后失去警告分数(除非你使用
- # MySQL,同时也会被重置任务清除:
- Reset_Task:
-
- # 减去警告分数的间隔 (单位为秒). 设置为0则只在服务器重载或重启时清空.
- Repeat_Every_Seconds: 20
-
- # 从不同组合减去的分数. 如果你没有指定组合, 则不会减分.
- Remove:
- global: 5
- spam: 1
- # 你可以创建多个警告组合来惩罚不同的玩家.
- # 如果玩家的行为次数超过了指定的次数则只会执行最近次数的行为.
- Warn_Sets:
-
- # [提醒] 这是个特殊的组合. 如果你未指定组合名,在删除之前所有分数都将保留.
- # 示例: 你不需要输入 "then points global 5",只需输入 "then points 5" (在规则内)
- global:
- # 设置玩家达到指定分数时执行的指令.
- # 使用 "warn" 运算符来直接发送消息警告玩家,否则将以控制台身份发送指令.
- # 使用 "bungeeconsole" 运算符来直接发送指令到Bungeecords.
- 5:
- - "warn &7请勿违反&2规则,&7否则你将受到&4惩罚&7."
- #- "bungeeconsole tell {player} &c由于你屡次违反服务器规则所以你被封禁了."
- 15:
- - "warn &c**** &l嘿, &c{player} ****\n &7-> &c这是&6最后一次 &c警告!"
- - "mute {player} 5m 不要无视警告!"
- 30:
- - "kick {player} &c由于违反规则你被踢出了服务器"
- swear:
- 4:
- - "warn &c因为说脏话你受到了第一次警告."
- 6:
- - "warn &c请勿使用粗鄙之语, 否则服务器将采取措施!"
- 8:
- - "kick {player} &c粗鄙之语! (最终警告)"
- 20:
- - "tempban {player} 30m 由于粗鄙之语你被封禁了"
- spam:
- 6:
- - "warn &c请勿刷屏."
- 10:
- - "warn &c请勿刷屏,否则你会被封禁."
- 12:
- - "kick {player} &c刷屏 (最终警告)"
- 26:
- - "tempban {player} 10m 由于刷屏你被自动封禁了"
- fastmessages:
- 6:
- - "warn &c你说话太快了.先喝口水吧"
- 10:
- - "warn &c慢点说话,否则你会被封禁."
- 14:
- - "kick {player} &c说慢点 (最终警告)"
- 30:
- - "tempban {player} 10m 由于刷屏你被封禁了"
- # -------------------------------------------------------------------------------------------------
- # (placeholder)变量代表了实际的数据
- # 示例: {player} 代表玩家名.
- # -------------------------------------------------------------------------------------------------
- Variables:
- # 用JavaScript创建自定义变量来从任何其他的插件中获取数值.
- # 详情查看variables/javascript.txt.
- Custom_Enabled: false
-
- # 这可以让你使用插件的变量(或是来自PlaceholderAPI的变量.
- Replace_In_Custom: true
-
- # 是否在你的脚本中使用其他脚本变量?
- Replace_Own_In_Custom: false
-
- # 如果安装了Vault ,是否同时显示玩家所在组的前后缀.
- # 限制: 只在玩家有多个组时显示.
- Vault:
- Multi_Prefix: false
- Multi_Suffix: false
- # ---------------------------------------------------------------------------------------------------
- # 在你离线时记录聊天消息.
- # ---------------------------------------------------------------------------------------------------
- Writer:
- # 是否记录聊天消息到 logs/chat.txt?
- Enabled: true
- Ignore_Players:
- - ignoredAdmin
- # 视为聊天的指令而保存. 记录全部内容请设置为 Write_Commands: []
- Commands:
- - /me
- - /msg
- - /m
- - /tell
- - /t
- - /reply
- - /r
- - /mail
- # ---------------------------------------------------------------------------------------------------
- # 欢迎萌新的消息
- # ---------------------------------------------------------------------------------------------------
- Motd:
- Enabled: false
-
- # 登录多久后显示? 用于防止被其他消息覆盖.
- Delay_Ticks: 2
-
- # 指令缩写. 第一个为主指令,请勿删除
- Command_Aliases: [motd, welcome]
-
- # 播放的音效. 格式: <bukkitSoundName>, <音量>, <音高>
- Sound: ENTITY_FIREWORK_LAUNCH, 1F, 0.1F
-
- # 以下为发送给玩家的示例消息.
- # 开头加上 <center> 可自动居中消息.
- Message:
- - '&8*--------------------------------------------------*'
- - '&f你好 {player}, 欢迎您来到 &e{server_name}&f ,祝你游戏愉快 :)'
- -
- - '&6版本: &f{nms_version}'
- - '&6更新记录:'
- - ' &7- &f添加ChatControl Pro插件'
- -
- - '&6帮助 &7- &f/help &6设置 &7- &f/menu &6网站 &7- &f/web'
- - '&8*--------------------------------------------------*'
- # 发送给第一次进入服务器的萌新. 格式同上.
- # 设置为 []会发送上面的消息.
- Message_First_Time: []
-
- # 发送给低于指定门槛的玩家.
- # 详情查看萌新门槛部分.
- # 设置为 []会发送上面的消息.
- Message_Newcomer: []
- # ---------------------------------------------------------------------------------------------------
- # 侦查模式详细设置
- #
- # [提示] 给予管理员 chatcontrol.spy.autoenable 权限可以在登录后自动进入侦查模式.
- # ---------------------------------------------------------------------------------------------------
- Spy:
- Enabled: true
-
- # 是否侦查其他服务器的广播消息? 同时开关是否接受
- # 这个服务器的侦查消息
- Bungee: true
-
- # 指令缩写. 第一个为主指令,请勿删除
- Command_Aliases: [spy, socialspy]
-
- Format: "&8[&5侦查&8] &7{player}: &7{message}"
-
- Format_PM: "&8[&5侦查&8] &7[{player}] -> [{receiver}]: &7{message}"
-
- # 侦查模式前缀
- # 需要启用频道系统
- Channel_Prefix: "&8[&5侦查&8] "
-
- # 如果启用, 不会监控以下指令. 不推荐启用.
- # 如果关闭, 只有以下指令会被监控.
- Command_List_Works_Like_Blacklist: false
-
- # 是否侦查mcmmo组队聊天? 需要安装mcMMO.
- McMMO: true
-
- # 是否输出mcmmo组队聊天内容到控制台?
- Log_McMMO: false
-
- # 是否侦查书本 ?
- Books: true
-
- # 是否侦查告示牌 ?
- Signs: false
-
- Command_List:
- - /tell
- - /msg
- - /t
- - /whisper
- - /r
- - /reply
- # -----------------------------------------------------------------------------------------------------
- # 关联BungeeCords
- # 你需要安装 BungeeControlBridge. (https://spigotmc.org/resources/13079)
- # -----------------------------------------------------------------------------------------------------
- BungeeCords:
- # 是否启用跨服聊天? 在配置内搜索 "Bungee" 查看相关配置.
- #
- Enabled: false
-
- # 跨服聊天前缀
- Prefix: "&8[&5Bungee/{server_name}&8] &7"
-
- # -----------------------------------------------------------------------------------------------------
- # MySQL 存储数据.
- # -----------------------------------------------------------------------------------------------------
- MySQL:
-
- # 是否在玩家退出服务器时保存数据并在加入服务器后加载数据?
- Enabled: false
-
- # 在你使用Bungeecords且出现同步问题时启用.
- # 如果关闭, mysql只在玩家加入和退出服务器时更新.
- # 如果启用, mysql 只在玩家更新他们的选秀时更新 (如 /ignore list)
- Aggressive: false
-
- # 警告: 不要在开服时修改这些配置. 也不要重载, 请重启.
- Connection:
- Host: 'localhost'
- Database: 'minecraft'
- Port: '3306'
- User:
- Password:
- # 提醒: 这里不会在插件更新是自动更新.
- Table_Prefix: 'ChatControl_'
- # 对于硬核用户, 你可以在这里设置MySql的连接器语法.
- Connector_Advanced: "jdbc:mysql://{host}:{port}/{database}?autoReconnect=true"
- # --------------------------------------------------------------------------------------------------
- # 高级配置: 格式检测顺序. 无需更改.
- # 详情查看 https://github.com/kangarko/ChatControl-Pro/wiki/Listener-Priorities.
- #
- # 可能需要更改优先度的插件: FactionsChat, BanManager 加入 WorldGuard.
- # 你需要自行修改为适合你的服务器的优先度.
- #
- # 注意! *请重启服务器!*
- # --------------------------------------------------------------------------------------------------
- Listener_Priority:
- # 检测防刷屏、防大写、规则和其他.
- Checker: NORMAL
- # 发送的消息格式优先度.
- # 这一项应该拥有最高优先度.
- Formatter: NORMAL
-
- # 用于检测非法告示牌.
- Signs: HIGHEST
- # -------------------------------------------------------------------------------------------
- # 打开菜单的指令 (用逗号,分隔)?
- # 如果你安装了 ChestCommands或其他有相同指令的插件, 你可以在这里移除重复的缩写指令.
- # * 第一个缩写为主指令,请勿删除. *
- # -------------------------------------------------------------------------------------------
- Command_Aliases: [chatcontrol, chc, cc]
- # -------------------------------------------------------------------------------------------
- # 目前可用语言: en (英语), de (德语), sk (斯洛伐克语), cz (Czech), es (西班牙语), pt (葡萄牙语), it (意大利语)
- # hu (匈牙利语), fr (法语), nl (荷兰语), cn (汉语), dk (丹麦语), pl (波兰语), ru (俄语)
- # 和 tr (土耳其语)
- # 详情查看 http://mineplugin.org/ChatControl_Pro/WIKI/%E6%9C%AC%E5%9C%B0%E5%8C%96
- # -------------------------------------------------------------------------------------------
- Locale: cn
- # -------------------------------------------------------------------------------------------
- # 你可以在这里更改插件前缀:
- # -------------------------------------------------------------------------------------------
- Prefix: "&8[&3ChatControl&8]&7 "
- # -------------------------------------------------------------------------------------------
- # 用于 {server_name} 变量的服务器名称. 默认使用server.properties的服务器名.
- # 主要用于关联BungeeCords. 支持.
- # -------------------------------------------------------------------------------------------
- Server_Name: default
- # -------------------------------------------------------------------------------------------
- # 处理非法字符 (如 ?? 变为 a)?
- # 可以使规则和防刷屏在非英语服务器更高效运行.
- # -------------------------------------------------------------------------------------------
- Translate_Diacritical_Marks: true
- # -------------------------------------------------------------------------------------------
- # 删除data.db的不活跃的玩家数据.
- # 设置为0关闭.
- # -------------------------------------------------------------------------------------------
- Clear_Data_If_Inactive: 300 days
- # -------------------------------------------------------------------------------------------
- # 防止正则表达式卡服.最大处理时间 (单位为毫秒).
- # -------------------------------------------------------------------------------------------
- Regex_Timeout_Milis: 100
- # -------------------------------------------------------------------------------------------
- # 检测一些插件操作的延迟. 并对超时的操作
- # 发送到控制台. 设置为0关闭.
- # -------------------------------------------------------------------------------------------
- Log_Lag_Over_Milis: 100
- # -------------------------------------------------------------------------------------------
- # 减少开服启动消息.
- # -------------------------------------------------------------------------------------------
- Silent_Startup: false
- # -------------------------------------------------------------------------------------------
- # 删除检测到的消息的颜色来防止未被规则检测到.
- # 如果你想要在被规则替换后保留消息的颜色的话请关闭.
- # -------------------------------------------------------------------------------------------
- Regex_Strip_Colors: true
- # -------------------------------------------------------------------------------------------
- # 重置保存玩家数据.
- # 启用可以优化性能 (推荐用于经常有玩家出入的服务器,如大厅服务器).
- # 这可能会破坏防假人系统.
- # -------------------------------------------------------------------------------------------
- Reset_Cache_On_Quit: false
- # -------------------------------------------------------------------------------------------
- # 如果换行运算符 \n 无效的话请启用这项.
- # 在此之前, 请确认你已将文件编码改为UTF-8.
- # -------------------------------------------------------------------------------------------
- Enforce_New_Line: false
- # -------------------------------------------------------------------------------------------
- # 更新提醒.
- # -------------------------------------------------------------------------------------------
- Notify_Updates: true
- # -------------------------------------------------------------------------------------------
- # 是否支持插件开发者**广告 ?
- # 每日最多发送一次.
- # -------------------------------------------------------------------------------------------
- Notify_Promotions: true
- # -----------------------------------------------------------------------------------------------------
- # 是否输出更多调试信息?
- #
- # 一般你不需要打开这项除非你遇到了问题.
- # 可用参数: pm (私聊)
- # -----------------------------------------------------------------------------------------------------
- Debug: []
- # 内部序列化编号,不要更改!
- Serialization: ""
- # 不要修改版本号!
- Version: 22
复制代码 |
有疑问?插件作者和译者欢迎您的提问.但在询问之前请确认你已经阅读WIKI的常见疑问.发送报错信息给插件作者可以获得插件作者最快的回复.
作者: qsefthuopq 时间: 2019-4-7 18:20
本帖最后由 qsefthuopq 于 2019-5-25 19:00 编辑
常见疑问
关键问题插件无法运行: 'Illegal UTF8 string in constant pool in (..)' / 'java.lang.NoClassDefFoundError: me/kangarko/chatcontrol/final' ===
插件无法运行: Network inaccessible: (...) 请通过spigotmc来把报错信息或服务器IP发给kangarko.
我购买了插件但是我无法下载!插件作者不对此负责,但如果插件作者收到了你的付款的话你可以联系插件作者来让你能够正常下载.
问题formatting.yml内的城镇聊天怎么用? (我找不到注释)
如何修改消息'You have to wait X seconds before another message' 或 'Please do not post the same or similar messages' 或广播格式 :在你的ChatControl/ 内创建localization文件夹.然后重启服务器.之后会有新的文件被创建.详情查看本地化 如何编辑成就框的提醒消息"Goal Reached"?"Goal Reached"的消息无法修改. 这无法用于自定义消息.这只是进度系统的功能. 你可以在settings.yml内搜索Toast (CTRL+F).
怎么关闭防刷屏功能及其消息?这取决于你想要关闭哪种防刷屏特性.
a) 防止重复的消息 (aka "Please do not repeat same or similar message/command") -> 在settings.yml 内搜索Similar_Percentage_Block 并设置为0来关闭. 提醒: 这里有两个设置,一个是对消息的、另一个是对指令的.
b) 消息冷却 (aka "You have to wait X seconds before your next message/command") -> 在settings.yml 内搜索 Message_Delay 和 Command_Delayin并设置为0来关闭 s.
我怎么关闭管理员的自动加入频道或侦查模式?ChatControl 根据玩家的权限自动把玩家分入频道内或使其进入侦查模式.
** 想要关闭自动加入频道, 给予你所在的组否定权限 -chatcontrol.autojoin.{频道名}.{模式}.
你可以用 '*' 来关闭自动加入所有频道,权限为 -chatcontrol.autojoin.*.
如何允许玩家发送IP地址?查看规则配置文件内的IP地址过滤器部分.
如何防止特殊字符刷屏?这个规则位于rules/chat.txt,默认关闭.删除# 来启用:
编辑{3}来更改允许的字符数.
问题及解决方案插件不会覆盖 /w 或其他私聊消息的缩写指令!添加
aliases: w: - []到你服务器根目录的commands.yml.
广告过滤器无效, 所有的点号都消失了! (如: www.google.com变为 www google com)这不是由ChatControl造成的. 可能是Essentials的问题 ,请给予你的玩家 essentials.chat.url 和essentials.msg.url 权限
我在编辑规则文件后收到了 "Cannot define an operator when no rule is being created"这是由于编码错误导致的. 请修改编码.
玩家在禁言时仍可以说话(如使用 BanManager / LiteBans 插件)规则对我无效 (我有管理员权限!)如果你是管理员,你默认拥有忽略权限来忽略所有的规则. 没有规则会对你生效.你可以给你自己否定权限 "-chatcontrol.bypass.rules.{规则类型}"来使规则生效.(规则类型有 chat, commands, packets,... 详情查看权限页面). Ignore_In_Commands 无效, 规则仍然阻止了WorldEdit 或认证auth指令!这一部分已被重命名为 Ignore_Commands, 请更新你的handlers.yml.
在安装了一些插件后规则、频道或聊天消息不显示(Towny/Factions/Plot Squared, ...)规则移除了聊天的颜色!在settings.yml 内关闭Regex_Strip_Colors.关闭后规则不会检测没有颜色的消息.
玩家无法移动 (使用 Multicraft)你的问题是由于控制台过滤器阻止了特定消息的出现 - 而服务器检测到玩家count. 尝试关闭控制台过滤器. 在settings.yml内设置关闭控制台过滤器:
Console: Filter: Enabled: falseChatControl的缩写 '/chc' 和其他插件冲突! (如 ChestCommands)!在配置内Command_Aliases处删除:
Command_Aliases: [chatcontrol, cc, anotheralias]如 /tell 发送的私聊消息造成了卡顿!这是由于你启用了进度私聊提醒功能(主配置内搜索Private_Messages.Toast.Enabled), 因为进度会被写入文件所以会造成轻微的卡顿.
如果你不喜欢,你可以关闭这个功能来减少卡顿.
进度私聊提醒刷屏!输入这个指令关闭播放进度: /gamerule announceAdvancements false.
防TAB补全无效!确认你在spigot.yml内设置 tab-complete 为 -1 .
我的配置注释不见了! 我怎么找到默认文件?配置注释会在插件更新配置时丢失.这是bukkit服务端的特性.对于中文注释,你可以重新前往MCBBS搬运帖下载
作者: qsefthuopq 时间: 2019-4-7 18:21
本帖最后由 qsefthuopq 于 2019-5-25 19:14 编辑
权限
以下为插件的所有权限.
提醒: 如果你是管理员并且你想要创建规则, 你可以给你自己否定权限: "-chatcontrol.bypass.rules".
权限
/chatcontrol 指令权限
# 禁言指令及其子权限
权限: chatcontrol.commands.mute
介绍: "/chc mute" 禁言.
权限: chatcontrol.commands.mute.silent
介绍: "/chc mute -silent" 不会发出公告的禁言.
权限: chatcontrol.commands.mute.anonymous
介绍: "/chc mute -anonymous" 不会发出禁言者的禁言.
# 清屏指令及其子权限
权限: chatcontrol.commands.clear
介绍: "/chc clear" 清空聊天框
权限: chatcontrol.commands.clear.silent
介绍: "/chc clear -silent" 不会发出公告的清屏.
权限: chatcontrol.commands.clear.anonymous
介绍: "/chc clear -anonymous" 不会发出发送者的清屏.
权限: chatcontrol.commands.clear.console
介绍: "/chc clear -console" 清空控制台.
# 普通权限
权限: chatcontrol.commands.reload
介绍: "/chc reload"重载插件.
权限: chatcontrol.commands.list
介绍: "/chc list" 显示指令帮助.
权限: chatcontrol.commands.fake
介绍: "/chc fake" 发送虚假消息.
权限: chatcontrol.commands.calc
介绍: "/chc calc" 使用数学计算器.
权限: chatcontrol.commands.inspect
介绍: "/chc inspect" 分析class内的method或field.
权限: chatcontrol.commands.addrule
介绍: 用指令创建新规则.
权限: chatcontrol.commands.announce
介绍: "/chc announce" 发送广播
权限: chatcontrol.commands.import
介绍: "/chc import" 导入规则.
权限: chatcontrol.commands.points
介绍: "/chc points" 查看玩家的警告分数.
权限: chatcontrol.commands.adminchat
介绍: "/chc ach" 进入管理员聊天频道.
权限: chatcontrol.commands.global
介绍: "/chc global" 跨服聊天.
提醒: 玩家仍然需要chatcontrol.notify.globalchat权限才能看到消息 (玩家默认拥有该权限).
权限: chatcontrol.commands.color
介绍: 打开可改变字体颜色和格式的菜单.
/channel 指令权限
权限: chatcontrol.commands.channels
介绍: "/channel" 指令的基础权限.
权限: chatcontrol.commands.channels.list
介绍: "/channel list" 列出所有聊天频道.
权限: chatcontrol.commands.channels.list.players
介绍: "/channel list" 列出一个频道内的在线玩家.
权限: chatcontrol.commands.channels.list.players.spying
介绍: 列出一个频道内的所有在线玩家,包括侦查者.
权限: chatcontrol.commands.channels.leave
介绍: "/channel leave" 离开频道.
权限: chatcontrol.commands.channels.join
权限: chatcontrol.commands.channels.join.others
介绍: "/channel join" 加入频道 (也可以用 /channel join [player]邀请玩家加入聊天频道).
权限: chatcontrol.commands.channels.spy
介绍: "/channel spy" 查看频道内的聊天消息.
权限: chatcontrol.commands.channels.mute
介绍: "/channel mute" 禁言.
权限: chatcontrol.commands.channels.send
介绍: "/channel send" 发送消息到频道内.
权限: chatcontrol.commands.channels.switch
介绍: "/channel switch" 快捷更换频道.
权限: chatcontrol.commands.channels.set
介绍: "/channel set" 强制玩家加入一个聊天频道.
权限: chatcontrol.commands.channels.help
介绍: "/channel help" 列出所有的频道指令 .
其它指令
权限: chatcontrol.commands.tell
介绍: "/tell" 发送私聊消息.
权限: chatcontrol.commands.reply
介绍: "/reply" 回复私聊.
权限: chatcontrol.commands.spy
介绍: "/spy" 进入侦查模式.
权限: chatcontrol.commands.pm.console
介绍: "/tell" "/reply" 在控制台发送私聊.
权限: chatcontrol.commands.pm.vanished
介绍: "/tell" "/reply" 发送私聊给隐身的玩家.
权限: chatcontrol.commands.ignore
介绍: "/ignore" 忽略玩家.
权限: chatcontrol.commands.togglepm
介绍: "/togglepm" 开关私聊.
权限: chatcontrol.commands.togglepm.others
介绍: 其他人是否可以输入"/togglepm <player>" 接收私聊.
忽略权限
权限: chatcontrol.bypass.mute
介绍: 允许玩家在禁言时聊天.
权限: chatcontrol.bypass.time.commands
介绍: 忽略指令消息冷却.
权限: chatcontrol.bypass.time.chat
介绍: 忽略聊天消息冷却.
权限: chatcontrol.bypass.dupe.commands
介绍: 可以让玩家发送相同或相似的指令.
权限: chatcontrol.bypass.dupe.chat
介绍: 可以让玩家发送相同或相似的消息.
权限: chatcontrol.bypass.limit.chat
介绍: 可以让玩家忽略聊天刷屏刷屏检测 (在一段时间内发送的消息上限).
权限: chatcontrol.bypass.limit.commands
介绍: 可以让玩家忽略指令刷屏检测 (在一段时间内发送的消息上限).
权限: chatcontrol.bypass.move
介绍: 允许玩家在加入服务器后无需移动即可说话.
权限: chatcontrol.bypass.caps
介绍: 忽略相似度检测.
权限: chatcontrol.bypass.rejoin
介绍: 忽略重新登录检测.
权限: chatcontrol.bypass.tabcomplete
介绍: 允许玩家使用TAB补全指令.
提醒: 如果你使用的是Spigot ,推荐在spigot.yml内关闭这个功能.
权限: chatcontrol.bypass.clear
介绍: 不会清除有该权限的玩家的消息.
权限: chatcontrol.bypass.replace
介绍: 玩家的消息不会被chat.yml的规则所替代.
权限: chatcontrol.bypass.capitalize
介绍: 玩家的消息首字母不会被强制大写.
权限: chatcontrol.bypass.punctuate
介绍: 不在句子结尾增加句号.
提醒: 权限从v5.0.0起从 insertdot 改为了 punctuate.
权限: chatcontrol.bypass.signduplication
介绍: 允许玩家放置相同内容的告示牌.
权限: chatcontrol.bypass.rules.global
介绍: 允许玩家无视所有规则.
权限: chatcontrol.bypass.rules.books
介绍: 允许玩家无视 rules/books.txt 的书本规则.
权限: chatcontrol.bypass.rules.commands
介绍: 允许玩家无视 rules/commands.txt 的指令规则.
权限: chatcontrol.bypass.rules.chat
介绍: 允许玩家无视 rules/chat.txt 的聊天规则.
权限: chatcontrol.bypass.rules.items
介绍: 允许玩家无视 rules/items.txt 的物品命名规则.
权限: chatcontrol.bypass.rules.packets
介绍: 允许玩家无视 rules/packets.txt 的发包规则.
权限: chatcontrol.bypass.rules.signs
介绍: 允许玩家无视 rules/sign.txt的告示牌规则.
权限: chatcontrol.bypass.spamkick
介绍: 允许玩家不被原版的"disconnect.spam" 刷屏踢出.
权限: chatcontrol.bypass.nicknames
介绍: 使用禁止使用的昵称的玩家不会被防假人系统检测.
权限: chatcontrol.bypass.warnpoints
介绍: 玩家不会获得警告点数和受到惩罚.
权限: chatcontrol.bypass.spy
介绍: 拥有权限的玩家不会被侦查到.
权限: chatcontrol.bypass.channellimit
介绍: 可以让玩家加入无限多个频道.
权限: chatcontrol.bypass.togglepm
介绍: 强制发送私聊消息给关闭私聊功能的玩家.
权限: chatcontrol.bypass.ignore
介绍: 强制发送私聊消息给忽略该玩家的玩家.
权限: chatcontrol.bypass.spy.books
介绍: 玩家不会在给书签名后触发侦查提醒.
权限: chatcontrol.bypass.spy.signs
介绍: 玩家不会放置告示牌后触发侦查提醒.
提醒权限
权限: chatcontrol.notify.signduplication
介绍: 玩家放置相同内容的告示牌收到警告.
权限: chatcontrol.notify.update
介绍: 插件更新提醒.
权限: chatcontrol.notify.whenmentioned
介绍: 被@收到音效提醒.
权限: chatcontrol.notify.announcements
介绍: 接收"/chc announce"的广播.
提醒: 所有玩家默认该权限.
权限: chatcontrol.notify.globalchat
介绍: 接收 "/chc global"全服聊天
权限: chatcontrol.notify.outofrange
介绍: 无人收到你的消息时的提醒.
聊天格式权限
权限: chatcontrol.chat.write
介绍: 发送聊天消息 (默认拥有).
权限: chatcontrol.chat.read
介绍: 获取聊天消息 (默认拥有).
权限: chatcontrol.chat.format.color.{color}
介绍: 使用特定颜色的权限.
{color} 代表颜色名, * 代表所有的颜色.
- 格式:
https://hub.spigotmc.org/javadoc ... kkit/ChatColor.html
权限: chatcontrol.chat.format.magic
介绍: 使用'&k'随机字符的权限.
权限: chatcontrol.chat.format.bold
介绍: 使用'&l'加粗的权限.
权限: chatcontrol.chat.format.strikethrough
介绍: 使用 '&m'中划线的权限.
权限: chatcontrol.chat.format.underline
介绍: 使用 '&n'下划线的权限.
权限: chatcontrol.chat.format.italic
介绍: 使用 '&o' 斜体的权限.
权限: chatcontrol.chat.format.reset
介绍: 使用 '&r' 重置颜色的权限.
权限: chatcontrol.commands.color.gui
介绍: 打开字体颜色设置菜单的权限
权限: chatcontrol.commands.color.gui.{color}
介绍: 在`/chc color`内使用颜色 1-9 和 a-f的权限.
权限: chatcontrol.chat.global
介绍: 使用全服聊天的权限.
权限: chatcontrol.chat.spyranged and chatcontrol.chat.spy
介绍: 在范围模式启用时收到范围内其他聊天消息的权限.
权限: chatcontrol.chat.overrideranged
介绍: 在范围模式启用时聊天无视范围进行聊天.
频道聊天权限
提醒: {channel} 为频道名
权限: chatcontrol.channel.{channel}
介绍: 进入频道的基础权限.
权限: chatcontrol.channel.{channel}.join.{mode}
介绍: "/ch join" 以指定模式加入频道(write, read or spy, 或 * 代表所有类型).
权限: chatcontrol.channel.{channel}.leave
介绍: "/ch leave"离开频道.
权限: chatcontrol.channel.{channel}.send
介绍: "/ch send"发送消息到频道内.
权限: chatcontrol.channel.{channel}.mute
介绍: "/ch mute"频道禁言.
权限: chatcontrol.channel.{channel}.spy
介绍: "/ch spy" 侦查频道消息.
权限: chatcontrol.channel.{channel}.bypass.world
介绍: 对所有世界的所有玩家说话.
权限: chatcontrol.channel.{channel}.bypass.range
介绍: 对世界内的玩家聊天, 忽略聊天范围.
自动加入权限
权限: chatcontrol.channel.autojoin.{channel}.{mode}
介绍: 把玩家以指定的模式置入指定的频道内, (write, read 或 spy).
其它权限
权限 1: chatcontrol.messages.join
权限 2: chatcontrol.messages.quit
权限 3: chatcontrol.messages.kick
权限 4: chatcontrol.messages.death
介绍: 这四个权限控制
玩家是否可看见某种类型的消息. 默认所有玩家拥有该权限.
给予否定权限 (如 "-chatcontrol.messages.join")
来隐藏.
权限: chatcontrol.broadcaster.view
介绍: 查看定时公告的消息.
提醒: 默认拥有.
权限: chatcontrol.spy.autoenable
介绍: 登录后自动启用侦查模式.
权限: chatcontrol.ignoreset.{setName}
介绍: 可使用 "/chc ignore <setName>" 指令.
提醒: {setName} 代表了指定指令的sets
给予 'chatcontrol.ignoreset.*' 权限
来让玩家可以开关所有的sets.
跨服权限
这些权限需要BungeeControlBridge才能使用
权限: chatcontrol.silence.join
介绍: 隐藏玩家加入到另一个子服的消息.
权限: chatcontrol.silence.leave
介绍: 隐藏玩家离开服务器的消息.
权限: chatcontrol.silence.switch
介绍: 隐藏玩家切换服务器的消息. |
作者: qsefthuopq 时间: 2019-4-7 18:22
本帖最后由 qsefthuopq 于 2019-5-25 19:14 编辑
指令
如何使用指令很多指令支持额外的参数,详情往下看.
提醒: /chatcontrol 的缩写指令是 /chc /ch 的所需指令是 /channel.
主要指令提醒: 清除和禁言指令支持沉默参数(-s),可以防止发送消息, anonymous 参数(-a)可以对玩家隐藏指令发送者.
清空聊天框- 指令: /chatcontrol clear [-silent] [-anonymous] [-console] [原因]
- 描述: 移除游戏内或控制台的所有消息.
- 拓展功能: 忽略管理员和清除控制台. 可配置清空控制台多少行的消息.
全服禁言- 指令: /chatcontrol mute [-silent] [-anonymous] [reason]
- 描述: 完全禁止玩家发言.
- 拓展功能: 关闭特定指令、加入/退出/踢出游戏和死亡消息. 管理员仍可以发送消息.
广播消息- 指令: /chatcontrol announce
- 描述: 对每位玩家发送广播.
- 拓展功能: 播放音效、忽略控制台或不发送给自己. {dynamicLine}变量可以将消息延伸至10行 (整个聊天框).
管理员聊天- 指令: /chatcontrol ach <消息> 或 /chatcontrol ach switch
- 描述: 管理员聊天.
- 拓展功能: 支持控制台、保存消息到文件内和可交互的聊天格式. 可以切换让所有的消息都发送到该频道.
跨服聊天- 指令: /chatcontrol g <消息> 或 /chatcontrol g switch
- 描述: 跨服聊天. 发送消息到所有的群组服.
- 拓展功能: 支持控制台、保存消息到文件内和可交互的聊天格式. 分为两个权限, 一个是发送消息,另一个是接收消息(chatcontrol.notify.globalchat), 默认拥有该权限. 可以切换让所有的聊天消息都发送到所有的群组服.
虚假的加入/退出游戏消息- 指令: /chatcontrol fake <join/leave/kick> [玩家名]
- 描述: 发送.虚假的加入/退出游戏消息
- 拓展功能:如果指定了在线的玩家,消息会根据玩家的分组来发送.
创建规则- 指令: /chatcontrol addrule <处理器>
- 描述: 运行RuleCreat或 Wizard 来让你在游戏内创建规则.
- 提醒: 输入"/chc addrule"查看可用规则.
开关忽略的消息.- 指令: /chatcontrol ign或e <set>
- 描述: 开关对玩家忽略的消息.
查看玩家的警告分数.- 指令: /chatcontrol points <player>
- 描述: 查看玩家的警告分数.
导入规则- 指令: /chatcontrol imp或t <handler> <file>
- 示例: /chatcontrol imp或t swear w或ds.txt
- 描述: 从文件中导入规则. 这会创建全服规则.这个文件在ChatControl插件文件夹内,每行包括一个规则示例(你可以把这些内容放到words.txt ,如):
banana apple lemon orange数学计算器- 指令: /chatcontrol math <数学表达式>
- 示例: /chatcontrol math 4 + (5 - 2) * 8
- 描述: 用于测试构建中的计算器功能.
检验类别- 指令: /chatcontrol inspect <methods/fields> <classPath>
- 描述: 允许您枚举插件class中的所有字段或方法.
- 警告: 这个功能十分专业,如果错误使用该指令可能会对你的服务器造成毁灭性打击.
重载插件- 指令: /chatcontrol reload
- 描述: 重载插件配置. 如果你想要保证服务器稳定性的话不推荐使用.
指令帮助- 指令: /chatcontrol list
- 描述: 显示所有的插件指令.
私聊指令提醒:查看 settings.yml来创建指令缩写.如果你安装了有相同指令的其他插件(如Essentials), ChatControl将会覆盖这些指令.
发送一条消息- 指令: /tell <player> <消息>
- 描述: 发送私聊消息.
恢复消息- 指令: /reply <消息>
- 描述: 回复上一条私聊消息.
侦查消息或指令- 指令: /spy
- 描述: 开关侦查模式. 用于监视私聊消息,也可以在配置内加入监视指令. 支持Bungee.
频道指令加入频道- 指令: /频道 join <频道> <模式>
- 描述: 以指定的模式加入一个频道 (write, read或spy).
离开频道- 指令: /频道 leave <频道>
- 描述: 停止接收该频道内的消息.
直接发送消息到频道内- 指令: /频道 send <频道> <message>
- 描述: 直接发送消息到频道内而无需加入该频道.
侦查频道消息- 指令: /频道 spy <频道>
- 描述: 侦查一个频道内而无需加入该频道.7.5.0之后的版本你需要输入 /ch join <频道> spy .
帮助指令- 指令: /频道 list [频道]
- 描述: 列出所有的频道.如果你指定了频道名,就会列出该频道内的所有玩家.
作者: qsefthuopq 时间: 2019-4-7 18:23
本帖最后由 qsefthuopq 于 2019-5-25 19:01 编辑
频道
玩家可以随意加入或退出一个聊天频道 (玩家需要有频道权限).可在channels.yml设置频道. 分成多个聊天频道可以减少大服的刷屏现象 (比如普通频道、求助管理频道、交易频道和管理员频道).
创建/删除频道创建或删除频道十分简单,只需在配置内修改.以下示例为 'standard' 和 'global'的频道配置:
- Channels:
- #
- # 这是普通频道 - 默认所有玩家都加入的频道.
- #
- standard:
- #
- # 频道设置:
- # 格式可在 formatting.yml 更改
- #
- Format: Chat
- #
- # 默认该频道支持跨服聊天.
- #
- global:
- #
- # 格式可在 formatting.yml 更改
- #
- Format: Global_Chat
- #
- # 这个频道可进行跨服聊天.
- #
- Bungee: true
复制代码
自动加入频道如果你想要在玩家登录后自动加入频道,只需给予以下权限:
- <font size="3">chatcontrol.channel.{频道}.join.{模式}</font><div><font size="3">chatcontrol.channel.autojoin.{频道}.{模式}</font></div>
复制代码
第一个权限可以让玩家以指定的模式加入指定的频道, 第二个权限则为自动加入.
当玩家手动离开频道后,他就不会再自动加入频道直至服务器重启、重载除非配置内 Reset_Cache_On_Quit 选项 settings.yml 已启用.
频道配置你只需指定 '格式', . 所有选项都为可选选项
格式介绍: 消息外观如何?
用于: String
可在 formats.yml 内设置:
或直接输入格式:
- Format: '{pl_prefix}{player}:{pl_suffix} {message}'
复制代码
控制台格式介绍: 消息外观如何?
用于: String
可在 formats.yml 内设置:
或直接输入格式:
- Console_Format: '{channel} {player}: {message}'<b>日志格式</b>
复制代码
介绍: 消息会被记录到 ChatControl/logs/{channel}.yml 内.
用于: String
- Log_Format: '{player}: {message}'
复制代码
范围介绍: 其他玩家收到消息的范围 (和范围聊天差不多)?
可用数值: 整数
Bungee介绍: 是否发送消息到BungeeCords?
用于: Boolean
组队介绍: 是否只对队伍内玩家有效?
用于: String
支持:
- town [发送者所在Towny的城镇 .]
- nation [发送者所在Towny的国家.]
- faction [发送者所在的派系Factions.]
- feudal [发送者所在的Feudal聊天模式(包括王国或盟友).]
- kingdom [发送者所在的Feudal的王国.]
- feudal_ally [发送者所在的Feudal的王国及其盟国.]
- plot [发送者所在的PlotSquared地皮内所有玩家.]
作者: qsefthuopq 时间: 2019-4-7 18:27
本帖最后由 qsefthuopq 于 2019-5-25 19:02 编辑
JSON 全称为 JavaScript Object Notation. 当你与服务器间进行了数据交换或存储数据到数据库内时, 数据只能为文本. JSON 广泛用于存储不同的信息,比如玩家或服务器事件.它可以便于人们读取和修改并且便于机器分析和生成.
Minecraft 在处理聊天时使用了 JSON. 为了增加聊天消息的功能, JSON 可以让其他玩家看到传输的数据. 因此你可以把鼠标放到文本或物品上来查看详细信息.
ChatControl 完全支持JSON.
.yml文件里的JSON如 settings.yml 或 messages.yml 有消息的地方就支持JSON. 有两种使用方式.
a) 假设消息带有 [JSON]然后直接输入JSON代码.
- Warn_Message: '[JSON] {"text": "你好!世界"}'
复制代码
b) 用 '|-' 分隔成多行消息,在一行开头输入前缀 [JSON]并在下面输入JSON代码. 如:- Example_Message: |-
- [JSON]
- {"text": "Hover Me","hoverEvent": {"action": "show_text","value": {"text": "Hey there!"}}}
复制代码
规则内的JSON由于服务器的限制, 你不能像发包规则中那样发送JSON.你可以使用 'then console' 运算符并对玩家发送 'tellraw'指令:
- match ^This area is now protected.dont verbosethen console tellraw {player} {"text": "这片区域受到保护."}
复制代码
定时广播中的JSON定时广播也可以使用JSON.你只需加入前缀 [JSON],并以JSON格式输入消息即可.
一个例子:
- Broadcaster: [..] Prefix: '[JSON]' Messages: global: - '{"text":"这是条测试消息!"}'
复制代码
作者: qsefthuopq 时间: 2019-5-25 19:05
如何分组创建新的组,你需要在settings.yml内启用Groups.Enabled to true, 并搜索 List 配置以下设置.
给予玩家权限 "chatcontrol.group.{组名}" 来对玩家进行分组. 玩家可以加入多个组.
以下示例分成了3个组: 游客、会员和管理员组.
- Groups:
- List:
- guest:
- Channel_Limit: 1
- Message_Delay: 4
- vip:
- Message_Delay: 1
- staff:
- Message_Delay: 0
- Interactive_Format: Staff_Format
复制代码 分组配置配置分组时,你只需指定你需要使用的选项.
Message_Delay
介绍: 消息冷却
关键词: Anti_Spam.Chat.Message_Delay
Command_Delay介绍: 指令冷却
关键词: Anti_Spam.Commands.Command_Delay
Channel_Limit_Write and Channel_Limit_Read介绍:玩家一次可加入的频道上限第一个选项用于write输入模式,第二个用于read阅读模式.
关键词: (位于channels.yml) 搜索 Channel_Limits 选项
Rejoin_Delay介绍: 重登冷却
关键词: Anti_Bot.Cooldown.Rejoin
Chat_After_Login介绍: 登录后多久才能聊天
关键词: Anti_Bot.Cooldown.Chat_After_Login
Command_After_Login介绍: 登录后多久才能使用指令
关键词: Anti_Bot.Cooldown.Command_After_Rejoin
Chat_Format介绍:自定义聊天格式
关键词: (位于 formatting.yml) Default
Global_Chat_Format介绍: 自定义全服聊天格式, 需启用范围聊天模式
关键词: (位于 formatting.yml) Global
Sound_Notify_Color介绍: 自定义音效提醒消息颜色.
关键词: (位于 settings.yml) Sound_Notify.Color
作者: qsefthuopq 时间: 2019-5-25 19:07
格式
结构每个格式的部件没有限制. 每个部件都代表了格式化的消息,并且你可以在每个部件上应用不同的可交互元素.
使用JSON并制作自定义格式变量每个部分你都可以使用这里列出的变量.
部件选项有很多选项, 详情查看:
消息介绍:消息是否输出到聊天中?
用于: String
- Message: '{pl_prefix}{player}{pl_suffix}&7: {message}'
复制代码
发送者权限介绍: 使所有部件只会在发送者有特定权限时显示.
用于: String
- Sender_Permission: 'my.custom.permission'
复制代码
条件介绍: 只在满足特定的Javascript条件下显示所有部件. 支持所有变量. 详情查看.
- Condition: '"{player}" == "kangarko"'
复制代码
悬浮事件介绍: 当玩家鼠标落到这个部件时显示什么?
用于: 查看下面
行为行为就是会发生的事.可用数值: SHOW_TEXT, SHOW_ACHIEVEMENT 和 SHOW_ITEM.
数值- Hover_Event:
- Action: SHOW_TEXT
- Values:
- - "&6这名玩家是高贵的VIP"
- - "&6输入 &e/vip &6查看如何获取VIP"
复制代码
点击事件介绍: 当玩家点击这个部件时会发生什么?
用于: 看下面
行为可用数值:OPEN_URL, OPEN_FILE, RUN_COMMAND and SUGGEST_COMMAND.
数值- Click_Event:
- Action: SUGGEST_COMMAND
- Value: "/tell {player} "
复制代码
示例格式以下为的带有部件: "Vip", "Prefix", "Player", "Suffix" 和 "Message" 的名为 "Chat"的格式示例.
- Chat:
- #
- # 这是个部件. 也就是说插件把一条消息分为了多个部分
- # 你可以被不同部件添加不同的可交互内容.
- #
- # 如 Sender_Permission 或 Hover_Event 的选项不是强制选项, 你可以随意删除.
- # 详细教程和选项,请查看下面的链接.
- #
- Vip:
- Message: "&6[VIP] "
- Sender_Permission: "chatcontrol.groups.vip"
- Hover_Event:
- Action: SHOW_TEXT
- Values:
- - "&6这名玩家是高贵的VIP"
- - "&6输入 &e/vip &6查看如何获取VIP"
- Prefix:
- Message: "&f{pl_prefix}"
- Hover_Event:
- Action: SHOW_TEXT
- Values:
- - "&8*-----* &f{player} &8*-----*"
- - "&7前缀&8: &7{pl_prefix}"
- - "&7组&8: &b{pl_group}"
- Player:
- Message: "{player}:"
- Hover_Event:
- Action: SHOW_TEXT
- Values:
- - "&7发出消息: &b{timestamp}"
- - "&7点击私聊"
- Click_Event:
- Action: SUGGEST_COMMAND
- Value: "/tell {player} "
- The_Rest:
- Message: "{pl_suffix} {message}"
复制代码
作者: qsefthuopq 时间: 2019-5-25 19:08
ChatContro可以关联到Discord的聊天频道并显示聊天消息. 你需要安装
DiscordSRV.
如何使用想要在ChatControl内使用, 请在channels.yml内启用. 确认在 ChatControl 和 DiscordSRV的频道名相同.更多兼容选项位于channels.yml的Compatibility.Discord.
作者: qsefthuopq 时间: 2019-5-25 19:09
获取帮助
如果你有疑问或是提交漏洞,这一页面将引导你获得最快的帮助.
查看报错当你的后台出现报错时也就意味着插件出现了问题. 为了保护数据,插件会关闭而保护使用错误的配置.
了解报错的关键是阅读报错信息. 一些人可能仍为这是不可避免的东西, 但插件作者有时候(经常)收到可以通过阅读报错就轻易解决的问题.
提交报告前- 冷静下来思考如何产生的错误. 错误不是由你导致的就是由插件作者导致的. 每个人的时间都有限,插件作者不会花时间在简单的问题上.
- 使用你的常识. 静心凝神私聊错误.
糟糕的反馈情况: 插件无法使用. 聊天格式出错!
较好的反馈情况: 想要分隔不同世界的聊天格式, 但只有一个相同聊天格式. 启用了 'Groups'并配置好了权限,重启服务器仍无法正常显示. 使用的是 ChatControl X.Y.Z, PermissionsEx X和 Spigot vX.是否哪里出错了?
- 确认没有类似的问题存在. 用 'CTRL + F'在常见疑问搜索.
- 确认问题是由该插件引起的.
该做与不该做的事情- 重载 (/reload, PlugMan, ..) 可能会造成一些问题. 最好重启服务器.
- 永远不要在开服时修改配置.
- 安装或更新插件时请重启服务器.不要重载.
- 使用最新的ChatControl. 不要在不同的子服使用不同版本的插件,否则插件功能会损坏.
- 使用最新的Spigot服务端.
- 使用正确的前置版本(尤其是 ProtocolLib, PowerNBT, Essentials 或 EssentialsX等)
寻求帮助时你需要提供- 你的服务器版本 (输入 /version 查看).
- 问题如何产生. 什么时候出现的漏斗?
- 错误日志 (这十分关键).
- 是否有其他插件干涉? PerWorldInventory/CreativeControl ?
- 发送可能由于你修改而导致问题的配置部分.
作者: qsefthuopq 时间: 2019-5-25 19:13
变量可以用于表示实际的数据. 如: {player} 代表玩家名. ChatControl支持成千上万的变量并且你可以创建属于你的变量.
插件变量以下变量由插件提供而无需第三方插件:
- ChatControl 本身: {prefix}, {server_name}, {nms_version}, {timestamp}, {country_code} 和 {country_name}, {region_name} 和 {isp}
- Bukkit (你的服务器): {player}, {pl_address}, {tab_name}, {display_name}, {world} 和 {health}
- Essentials 或 Nicky: {nick}
- Vault: {pl_prefix}, {pl_suffix}, {pl_group} 和 {pl_primary_group}
- Towny: {town} 和 {nation}
- SimpleClans: {clan}
- Factions (free): {faction}
- Nametags: {nametags_prefix} 和 {nametags_suffix}
带“+”的变量一些变量支持在结尾使用 + 运算符来显示信息.
示例: 如果玩家拥有派系, 消息为 "[Faction] kangarko: test", 但如果玩家没有派系则显示 "kangarko: test" 而不是在玩家名前面显示空白 " "
支持变量:
- {pl_prefix+}
- {pl_suffix+}
- {pl_group+}
- {nick+}
- {town+}
- {nation+}
- {faction+}
- {clan+}
- {world+}
如果你对 Javascript了解甚少, 你可以使用我们提供的变量或自定义的变量(PlaceholderAPI变量) 来轻松地敲代码.
SimpleClans变量如果你安装了PlaceholderAPI, ChatControl为SimpleClans添加变量到PlaceholderAPI.
SimpleClan 变量1 | SimpleClan 变量2 |
{simpleclans_in_clan} | {simpleclans_clan_tag} |
{simpleclans_join_date} | {simpleclans_clan_color_tag} |
{simpleclans_rank} | {simpleclans_founded_string} |
{simpleclans_tag} | {simpleclans_name} |
{simpleclans_tag_label} | {simpleclans_average_wk} |
{simpleclans_rank} | {simpleclans_balance} |
{simpleclans_civilian_kills} | {simpleclans_size} |
{simpleclans_deaths} | {simpleclans_total_civilian} |
{simpleclans_kdr} | {simpleclans_total_deaths} |
{simpleclans_neutral_kills} | {simpleclans_total_kdr} |
{simpleclans_rival_kills} | {simpleclans_total_neutral} |
{simpleclans_weighted_kills} | {simpleclans_total_rival} |
{simpleclans_is_leader} | {simpleclans_friendly_fire} |
{simpleclans_allow_deposit} | {simpleclans_allow_withdraw} |
{simpleclans_is_unrivable} | {simpleclans_leader_size} |
作者: qsefthuopq 时间: 2019-5-25 19:17
处理器
处理器可在规则捕获到内容后执行一组行为. 一个处理器包含关于应该触发什么的多个指令,并且可以从每个规则重定向.
什么是处理器当你添加了很多规则后,你可能会发现你的规则会重复阻拦一些消息. 当你添加了很多规则后. 这些重复内容需要你删除重复的代码才能去除.使用处理器可以把这些行为分到一个组内来使规则更容易执行.
1.0 无需处理器的规则:
match **then warn &c禁止粗鄙之语.then actionbar &c请勿使用粗鄙之语!then notify chatcontrol.notify.swear {player} 说出了脏话: {message}then replace *****match bitchthen warn &c禁止粗鄙之语.then actionbar &c请勿使用粗鄙之语!then notify chatcontrol.notify.swear {player} 说出了脏话: {message}then replace *****match assholethen warn &c禁止粗鄙之语.then actionbar &c请勿使用粗鄙之语!then notify chatcontrol.notify.swear {player} 说出了脏话: {message}then replace *****
1.1 使用处理器的规则:
match **handle as swearmatch bitchhandle as swearmatch assholehandle as swear
如何使用处理器想要声明一个处理器用于一个规则, 请在规则的最后一行输入代码 handle as {handler} (替换 {handler} handlers.yml内获取的处理器名). 你仍然可以在规则内使用所有的运算符,但这些运算符可能会被特定的处理器覆盖.
配置处理器在handlers.yml里,你可以创建或移除处理器. 以下为可用设置. 为了节约空间,你只需指定你想要使用的处理器.
Bypass_With_Permission介绍: 如果玩家拥有指定权限则不会被检测/处理.
- Bypass_With_Permission: 'chatcontrol.bypass.ad'
复制代码
Ignore_Commands介绍: 忽略列表内的指令.
- Only_In_Commands:
- - /register
- - /reg
- - /login
- - /l
复制代码
Ignore_Usernames介绍: 是否忽略在线的玩家名?
Ignore_Chatdisplay介绍: 如果启用了聊天忽略器并且处理器捕获到消息, 忽略组合的玩家不会看到消息. 在此输入聊天忽略器组合名
- Ignore_Chatdisplay: swear
复制代码
Ignore_Worlds介绍: 不检测的世界.
- Ignore_Worlds: [ignored_world, ignored_world_nether, another_world]
复制代码
Player_Warn_Message介绍: 发送给玩家的警告信息. 设置为none关闭
可用: 输入整条消息或指定formatting.yml内的格式名
- Player_Warn_Message: "{prefix} &c抱歉, {player}, 禁止打广告!"
复制代码
Broadcast_Message介绍: 广播消息. 设置为none关闭
可用: 输入整条消息或指定formatting.yml内的格式名
- Broadcast_Message: "{server} &6{player} 尝试&c打广告&6!"
复制代码
Staff_Alert介绍:播放给有指定权限的玩家.{ruleID}变量为规则ID.
格式: 指定权限 + 消息,可用空格分隔 " " (查看下面的示例).
可用: 输入整条消息或指定formatting.yml内的格式名
- Staff_Alert: "chatcontrol.notify.advertise {prefix} &c{player} 违反规则 &6ID {ruleID} &c: &f{message}"
复制代码
Console_Message介绍:记录到控制台的消息.设置为none关闭. {handler}为处理器变量.
- Console_Message: "{player} 违反了ID为{ruleID}的规则,触发{handler}过滤器: {message}"
复制代码
Write_To_File介绍: 记录消息的文件路径. 设置为'none' 关闭.
- Write_To_File: log/advertisements.log
复制代码
Block_Message介绍: 是否阻止消息的发送?
罚款介绍: 安装了Vault后从玩家身上扣钱罚款.必须为整数
音效介绍: 播放的音效.
- Sound: ENTITY_ARROW_HIT_PLAYER, 1.0, 0.1
复制代码
Warn_Points介绍: 如果启用了警告系统 (位于settings.yml),给予多少警告分数.
可以指定警告组合名. 提醒: 如果你设置了全服警告组合, 并想要在这里给予警告分数,你不需要指定组合名
Replace_Word介绍:替换匹配规则的消息部分. 如果设置了这个,必须关闭 Block_Message 且不能设置 "Rewrite_To". 用| 分隔.
- Replace_Word: "[CENSORED]"
复制代码
提醒::用@prolong开头并且只指定一个字母会自动延伸至匹配消息的长度.
- Replace_Word: "@prolong *"
复制代码
Rewrite_To介绍: 替换整条消息. 如果设置了这个,你必须关闭 Block_Message ,不能设置"Replace_Word" . 用| 分隔.
- Rewrite_To: 我喜欢这个服务器!|服务器真好玩!
复制代码
Execute_Commands介绍: 以控制台身份执行的指令列表. 提醒: 可使用其他插件的指令.
- Execute_Commands:
- - eco take {player} 10
- - kick {player} &c不要打广告!
- - tempban {player} 1d 禁止打广告! \n\n如果是误判请联系管理员. \n\n捕获到的消息: {message}
复制代码
Execute_Player_Commands介绍: 以玩家身份执行的指令.
- Execute_Player_Commands:
- - kill
复制代码
Execute_Bungee_Commands- Execute_Bungee_Commands:
- - alert 玩家 {player} 在 {server} 违反了规则!
复制代码
作者: qsefthuopq 时间: 2019-5-25 19:18
JavaScript变量
ChatControl Pro 支持你创建的动态高性能变量! 变量可以用于很多地方, 如聊天格式和死亡消息. 目前javascript.txt存储了所有的自定义变量.
变量不仅可以用于显示信息,还可以在你写的JavaScript代码内使用.
想要使用Javascript变量,需先启用 Variables.Custom_Enabled.
提醒: 变量在每条新消息上需要重编译,添加太多可能会影响服务器性能.
需求你需要有一定的Java编程知识,不会的话你也可以百度一下.
运算符定义开始声明变量. 把变量名放到运算符后.
- // 定义{player_name}变量:
- define {player_name}
复制代码
脚本使用这个运算符来些脚本 (JavaScript)来获取变量.脚本从新一行开始写.
脚本接受以下来自以下的变量:
- 'player' 获取可用玩家名
- 'event' 获取可用事件名
- // 返回Watch out 的变量示例!对玩家发送消息和
- // 播放音效:
- define {sound_and_message}
- script:
- // define local pl variable, 只在该脚本内可用
- var pl = event.getPlayer();
- // define local sound variable
- var sound = Java.type("org.bukkit.Sound").ANVIL_LAND;
- // 播放音效
- pl.playSound(pl.getLocation(), sound, 1F, 1F);
- // 返回 "Watch out!"消息作为占位符
- “Watch out!”;
复制代码
使用来自 PlaceholderAPI的变量并用于你的变量以下示例告诉你如何结合其他插件的变量到你的变量内.
- define {test}
- script:
- getTagOrPrefix(); // call the function below that returns the tag or prefix
- function getTagOrPrefix() {
- // replace with the tag
- var tag = "{deluxetags_identifier}";
-
- // if the tag is empty, return prefix, else return tag with [] around it.
- return tag == "" ? "{pl_prefix}" : "[" + tag + "]";
- }
复制代码
轻易地访问NMSdefine {ping}
script:
// acts if as you were inside of CraftPlayer class, so NMS is directly available
player.getHandle().ping
代码分析:
- define 运算符定义变量 {ping}.
- script: 开始编译Javascript代码. 在下面输入你的代码. 代码无大小限制 - ChatControl会在代码结束后或是定义另一个运算符时停止读取.
- code itself - 你可以使用包含预定义的 "player" 变量 (如果存在的话)来获取玩家名. 这个的实例代表了Bukkit在Java中的CraftPlayer,因此您可以很容易地访问NMS内部.
Javascript/Java 编程向导插件作者提供了一些如何编程的教程网站:
作者: qsefthuopq 时间: 2019-5-25 19:19
多世界聊天格式
ChatControl可以根据权限给玩家不同的聊天格式. 这可以用于不同世界给挖掘不同的聊天格式.
需要: ChatControl + 任意一个权限插件
1. 设置不同世界聊天格式的分钟以下示例设置了生成世界、空岛世界和大厅世界的不同聊天格式.
settings.yml
- # 文件位置: plugins/ChatControl/settings.yml
- Groups:
- Enabled: true
- Group_List:
- survival:
- Interactive_Format: "(sur) &6{Guilds_name}%&r {pl_prefix} {nick}{pl_suffix}&r: {message}"
- hub:
- Interactive_Format: "(h) {nick}&r: {message}"
- skyblock:
- Interactive_Format: "(sky) &a{ISLAND_LEVEL} {nick}&r: {message}"
复制代码
2. 给予玩家权限给予玩家不同世界的权限. 你可以用权限插件完成.
注意,重复的代码不是ChatControl之错,只是缺乏特定权限插件的兼容性.
作者: qsefthuopq 时间: 2019-5-25 19:20
自定义指令缩写
像 '/chatcontrol ignore swears' 这样比较长的指令不太好使用.所以你可以使用如 '/swears' 的缩写指令. 利用Bukkit的commands.yml 并在里面创建:
aliases: swears: - chatcontrol ignore swears
重启服务器即可应用缩写. 之后你就可以使用 '/swear'代替长指令了. 你可以在新一行设置更多指令的缩写.
您可能希望解析原始命令中的所有参数,例如全局聊天消息。这个例子将满足你的需求:
aliases: shout: - "chatcontrol global $1-"
当玩家输入 /shout [...]时, 指令会以 /chatcontrol global [...] 的格式执行.
自定义服务器名
除了 server.properties , ChatControl 也可以更改你的服务器名.
a) 想要在聊天消息显示你的服务器名缩写, 只需在settings.yml内配置 Server_Name.
b) 如果你想要在服务器切换消息中更改服务器名, 你需要在 BungeeControlBridge的 config.yml 内修改:
- # 用于广播时显示的服务器名缩写
- server-names:
- lobby: "hub"
- world: "survival"
复制代码
作者: qsefthuopq 时间: 2019-5-25 19:21
监听优先度
大多数插件都会监听事件. 插件在其他插件取消事件后再次取消事件.所以优先度很重要.
按顺序排列共有六种优先度
- LOWEST
- LOW
- NORMAL
- HIGH
- HIGHEST
- MONITOR
比如处理 BLOCK_PLACE 事件. lowest最低优先度监听器等待传唤是否取消事件. 然后low低优先度监听器会检查是否覆盖最低优先度的事件. 最后,它会发送到监视器,此时不改会事件的结果.
监视器用来查看事件的结果, 不会改变事件. 如果你安装了3个插件; 一个是基础的区域保护插件,一个是使用了告示牌的插件,最后一个是登录插件.保护插件监听Priority.LOWEST. 这款插件会发送 你无法在收保护的区域内放置方块' 的消息并取消放置方块的事件.
告示牌插件监听 Priority.NORMAL.发送 你无法在这里放置告示牌 并取消放置事件.
登录插件监听Priority.MONITOR. 登录插件会监听允许的事件并记录下来.
资源:
Event API 参考
与其他插件的兼容问题及如何修复关于ChatControl常见的疑问就是修改聊天处理顺序. 你可以在配置内手动修改优先度.
你可以更改两种优先度. 位于settings.yml的Listener_Priority部分
- Listener_Priority.Formatter (用于聊天格式和频道.)
- Listener_Priority.Checker (用于防刷屏、防大写、规则等.)
- Listener_Priority.Signs (用于告示牌规则.)
Towny / Factions / Plots Squared对于大多数服务器, 你需要尝试修改为适合的优先度 FactionsChat:
- Listener_Priority:
- Formatter: LOWEST
复制代码
BanManager / Litebans如果玩家可以被禁言时说话,也就意味着ChatControl 在禁言前就开始监听聊天时间.
已经有用户试验过把格式优先度调到HIGH 即可解决问题.
你可以尝试使用不同的优先度 (LOWEST, LOW, NORMAL, HIGH, HIGHEST 和 MONITOR) 并找到合适的组合.
Denizen使用以下优先度来允许Denizen捕获聊天触发器来执行其脚本.
- Listener_Priority:
- Formatter: HIGH
复制代码
作者: qsefthuopq 时间: 2019-5-25 19:23
聊天忽略
聊天忽略器这个名字并不好听,但它可以让玩家屏蔽掉他们不想看到的消息 (如脏话). 比如你想要玩家能否看到单词: '**' 和 'asshole'.
1) 创建匹配脏话的规则并将处理器命名为 'swear' 来便于处理.把规则放到rules.txt内.- match **
- handle as swear
- match asshole
- handle as swear
复制代码
2) 在handlers.txt内创建适合的处理器- swear:
- Bypass_With_Permission: "chatcontrol.bypass.swear"
- Player_Warn_Message: "&cSwearing is prohibited on this server."
- Ignore_Chatdisplay: swears
复制代码
3) 在settings.yml内启用聊天忽略器并能创建名为 'swears'的忽略器作为示例 (示例在下面).- Chat_Ignorer:
- Enabled: true
- Sets:
- swears:
- Ignored_By_Default: false
复制代码
Chat_Ignorer.Sets.swears:忽略器名称.这个名称很重要, 可用于handlers.txt 或用于使用了 'ignore chatdisplay swears' 运算符的规则.
Ignored_By_Default:这个选项决定是否隐藏忽略器内的所有规则. 如果关闭,玩家看得到脏话规则除非玩家输入指令手动隐藏.
4) 进入游戏测试, 给予玩家权限 'chatcontrol.commands.ignore' 和 'chatcontrol.ignoreset.swears'.玩家 1 尝试输入三句话中的一句.玩家2 暂时什么也不做 Player 2 ,之后如果关闭了'Ignored_By_Default'玩家会看到脏话.
Player 2 输入了执行: '/chc ignore swears'. 会出现一条消息告诉该玩家'swear'忽略组合内的详细已被隐藏.
Player 1 再次说脏话. 他可以看到自己说的话,但玩家 2 看不到 (除非玩家2再次输入指令或服务器重启).
作者: qsefthuopq 时间: 2019-5-25 19:25
本地化
在setting.yml内找到locale并修改为cn即可使用中文. 汉化配置注释可查看站内我的搬运帖 ChatControl支持多门语言! 插件作者欢迎来自世界各地的译者来翻译这款插件的大量消息.
可翻译的内容包括 "Please do not repeat the same (or similar) message" 或 "Please wait X seconds before your next message" 或 "/chc announce" 格式等.
可用语言- 汉语, cn
- 捷克语, cz / (pády)
- 德语, de
- 英语, en
- 西班牙语, es
- 法语, fr
- 匈牙利语, hu
- 意大利语, it
- 荷兰语, nl
- 波兰语, pl
- 葡萄牙语, pt
- 俄语, ru
- 斯洛伐克语, sk / (pády)
- 土耳其语, tr
- 越南语, vi
更改语言文件默认的语言文件为英语 (en).打开 settings.yml 并找到 Locale 即可更改语言.
编辑语言文件只需几步你就可以创建新的语言文件.
1. 找到你的语言文件打开 settings.yml 并找到 Locale .
2. 创建 'localization' 文件夹打开你的 ChatControl/ 文件夹并创建名为localization的文件夹.
3. 开服再次开启服务器.新的语言文件会被创建到该文件夹内.复制英语语言文件并重命名为你的语言缩写.
4. 完成!你可以开始翻译了.你的语言文件里会应用插件的默认数值. 你可以随意修改. 语言文件可能会在插件更新时更新可翻译内容.控制台会发出更新记录.
终
作者: 58585800 时间: 2019-5-26 06:56
mcbbs有你更精彩