Herochat 5:强大的聊天频道系统
Herochat 5 是一个为大型服务器设计的、高度可配置的聊天频道系统。它完全重写了旧版本,旨在让玩家聊天变得易于管理和阅读。每个频道都是一个独立的聊天室,玩家可以同时加入多个频道,但每次只能在其中一个“激活”频道中发言。
主要特性
- 可配置的聊天频道:创建并自定义各种频道。
- 密码保护频道:为频道设置访问密码。
- 基于权限的保护:几乎所有操作(加入、发言、管理等)都可通过权限控制。
- 频道管理:支持踢出、封禁、禁言等管理功能。
- 快速消息:无需切换激活频道即可向其他频道发送消息。
- 私聊系统:包含
/msg或/tell命令,支持持续的私人对话。 - 简易集成:可轻松兼容大多数其他插件(如 Towny、Factions)的聊天标签。
- 基于正则表达式的消息审查:过滤不当言论。
依赖与权限
依赖
- 本插件需要 Vault 才能运行。
权限节点
以下是 Herochat 的主要权限节点列表。其中 <channel> 需替换为对应频道的小写名称。
- 基础与管理权限
herochat.create:允许创建频道。herochat.save:允许强制保存玩家/频道数据。herochat.reload:允许强制重载玩家/频道数据。herochat.mod:允许使用/ch mod。herochat.mute:允许使用/ch mute。herochat.pm:允许使用/msg。herochat.emote:允许使用传统表情动作。
- 频道特定权限
herochat.emote.<channel>:允许在指定频道使用表情。herochat.join.<channel>:允许加入指定频道。herochat.leave.<channel>:允许离开指定频道。herochat.speak.<channel>:允许在指定频道发言。herochat.kick.<channel>:允许从指定频道踢出成员。herochat.ban.<channel>:允许在指定频道封禁成员。herochat.mute.<channel>:允许在指定频道禁言成员。herochat.remove.<channel>:允许删除指定频道。herochat.color.<channel>:允许在聊天中使用&c类颜色代码。herochat.info.<channel>:允许对指定频道使用/ch info。herochat.autojoin.<channel>:首次登录时强制自动加入指定频道。herochat.focus.<channel>:允许玩家将指定频道设为激活频道。herochat.force.join.<channel>:每次登录时强制玩家加入指定频道。herochat.force.leave.<channel>:每次登录时强制玩家离开指定频道。
- 频道修改权限
herochat.modify.nick.<channel>:允许更改频道昵称。herochat.modify.color.<channel>:允许更改频道颜色。herochat.modify.distance.<channel>:允许更改频道收听距离。herochat.modify.format.<channel>:允许更改频道消息格式。herochat.modify.shortcut.<channel>:允许更改频道是否启用快速消息。herochat.modify.password.<channel>:允许更改频道密码。herochat.modify.verbose.<channel>:允许更改频道是否显示加入/离开消息。
- 高级权限
herochat.admin.stealth:隐藏用户,使其不被“无人听到你”检测发现。herochat.admin.unignore:用户不会被他人忽略。herochat.color.colortype.channel:允许使用粗体/斜体等格式(仅限最新开发版)。
注意:部分权限会自动授予频道管理员(可在主配置中修改)。大多数服务器会授予所有人 herochat.join.、herochat.speak. 和 herochat.leave.* 权限,然后对受限频道使用否定权限(例如,在 bPermissions 中使用 ^herochat.join.staff)来收回权限。
配置与使用
创建与配置频道
使用命令 /ch create <name> [<nick>] 创建频道,其中 <name> 为频道名,<nick> 为昵称(可选)。创建后,频道配置文件将位于 plugins/Herochat/channels 目录下。
您可以通过文件编辑器手动修改配置,或使用游戏内的 /ch set 命令进行设置。输入 /ch set ? 可获取该命令的详细信息。
配置项说明
- name:频道名称。
- nick:频道昵称。
- password:频道密码(留空表示无密码)。
- color:频道颜色(使用 Wiki 上的代码或通用名称)。
- distance:玩家间能听到消息的最大距离(0 为全局)。
- shortcut:设置为
Allowed时,允许使用/<nick> <msg>快速发送消息而无需切换激活频道。 - worlds:频道允许的世界列表。
- bans:被封禁的玩家列表。
- mutes:被禁言的玩家列表。
- moderators:频道管理员列表。
- format:频道消息格式(可用标签见下方“消息格式标签”部分)。
- verbose:启用加入/离开消息提示。
- focusable:允许使用
/ch <channel>将该频道设为激活频道。
重载与保存
- 手动修改配置文件后,使用
/ch reload加载更改。注意:这会覆盖在此期间通过游戏内命令所做的更改。 - 如需强制保存通过游戏内命令所做的更改,请使用
/ch save。
消息格式标签
在频道格式中,可使用以下标签
{default}:默认格式(位于 config.yml 中)。{name}:频道名称。{nick}:频道昵称。{color}:频道颜色。{msg}:消息内容。{sender}:发送者的显示名称。{plainsender}:发送者的用户名。{world}:发送者所在的世界。{prefix}:发送者的前缀。{suffix}:发送者的后缀。{group}:发送者的主用户组。{groupprefix}:发送者主用户组的前缀。{groupsuffix}:发送者主用户组的后缀。{convoaddress}:显示“To”或“From”(仅用于私聊消息)。{convopartner}:发送者或接收者(仅用于私聊消息)。
本地化与开发者
本地化
Herochat 5.5 及更高版本支持国际化。语言环境由 config.yml 中的 locale 设置指定,默认为 en_US(美式英语)。当前可用的本地化包括 en_US(英语/美国)、de(德语)和 pt_BR(葡萄牙语/巴西)。如果您有兴趣将 Herochat 翻译成未列出的语言,请通过私信告知。
开发者信息
您可以通过监听 ChannelChatEvent 来获取基于频道的消息信息。此自定义事件包含消息发送者(Chatter 对象)、消息发送到的频道、消息发送尝试的结果(Chatter.Result 对象)以及导致 ChannelChatEvent 的原始 Bukkit PlayerChatEvent。
如果您更改了消息要发送到的频道,应调用 event.setResult(event.getSender().canSpeak(newChannel)),除非您想忽略发送消息前的常规检查。
常见问题解答 (FAQ)
- 问:权限中的
<channel>是什么意思? - 答:
<channel>部分应替换为相应频道的小写名称。
- 问:如何让 Herochat 显示 XYZ 插件的数据?
- 答:每个插件处理聊天修改的方式不同。许多插件会在消息格式中搜索特定字符串(例如 Towny 的
{town})并将其替换为数据。您需要查阅每个插件的文档,了解其对消息格式的要求。
- 问:为什么自动加入功能不起作用?
- 答:授予
herochat.autojoin.<channel>权限仅在玩家首次登录服务器时生效。更具体地说,这仅在玩家登录时没有 chatter 文件的情况下有效。如果用户之前登录过(且 Herochat 处于活动状态),则会加载其之前的频道,自动加入将不起作用。此行为与旧版 Herochat 一致。
- 问:为什么我的所有消息都显示
[world],而频道格式中没有{world}标签? - 答:这是另一个插件添加的文本。最常见的插件是 Multiverse。请查阅 Multiverse 的配置以禁用它。
- 问:有哪些命令?
- 答:在游戏中输入
/ch help可查看 Herochat 的命令列表。您可以通过提供问号 (?) 作为第一个也是唯一的参数来获取特定命令的详细信息,例如/ch join ?将提供关于 join 命令的更多信息。
- 问:可以移除某个命令吗?XYZ 命令与另一个插件冲突。
- 答:据我所知,Bukkit 仍然不允许动态注销命令,因此无法实现。但是,您可以打开 Herochat.jar 内的 plugin.yml 文件,删除任何不需要的命令/别名。
- 问:为什么我的管理员重新登录时会被踢出所有频道?
- 答:您可能正在使用 PEX,并且可能授予了管理员
权限。这意味着他们被授予了herochat.force.leave.权限,并在每次登录时被强制离开所有频道。您需要停止授予权限,或否定herochat.force.leave.权限来解决此问题。
支持与捐赠
支持
Herochat 的问题报告和功能请求应发布在此线程中。您也可以加入 esper.net IRC 服务器的 #Heroes 频道提问。
捐赠
众所周知,创建和维护此类插件需要大量的时间和精力。如果您喜欢使用 Herochat,请考虑捐赠以支持其开发。
其他资源
- Townships:融合 Factions 和 Towny 优点的最佳领地插件!
- Heroes Premium:最佳 Minecraft 职业与技能 RPG 插件!包含:
- ✫ 血与火 ✫ 符文与狂怒 ✫ 歌与宁静 ✫
- ✫ 工艺与增益 ✫ 奥术与恐惧 ✫ 荣誉与自然 ✫
- ✫ 死亡与神圣 ✫ 潜行与飞镖 ✫