Continued development can be found at the new premium resource here.
Herochat 5 is a complete rewrite of the previous version of Herochat. For those of you unfamiliar with Herochat, this plugin provides a highly configurable channel system for SMP chat. Herochat's primary purpose is to make player chat on large servers both manageable and readable. Each chat channel provides a chatroom for channel members to discuss in without broadcasting messages to everyone on the server at once. Players can be in multiple channels at once but can only have one active or focused channel that they speak in at a time.
If you are upgrading from Herochat 4.x or earlier, you will need to ditch your configs - all of them. Sorry, but it had to be done. There are now commands to modify channels in-game so hopefully setting up your channels won't be as painful.
This plugin requires Vault
| Permission | Purpose | |
| herochat.create | allows channel creation | |
| herochat.save | allows forcing saves on player/channel data | |
| herochat.reload | allows forcing reloads on player/channel data | |
| herochat.mod | allows use of /ch mod | |
| herochat.mute | allows use of /ch mute | |
| herochat.pm | allows use of /msg | |
| herochat.emote | allows use of traditional emotes | |
| herochat.emote.<channel> | allows using emotes in a channel | |
| herochat.join.<channel> | allows joining a channel | |
| herochat.leave.<channel> | allows leaving a channel | |
| herochat.speak.<channel> | allows speaking in a channel | |
| herochat.kick.<channel> | allows kicking from a channel | |
| herochat.ban.<channel> | allows banning from a channel | |
| herochat.mute.<channel> | allows muting in a channel | |
| herochat.remove.<channel> | allows deleting a channel | |
| herochat.color.<channel> | allows &c style colors in chat | |
| herochat.info.<channel> | allows use of /ch info on a channel | |
| herochat.autojoin.<channel> | forces automatically joining a channel upon first login | |
| herochat.focus.<channel> | gives the ability for players to focus the channel | |
| herochat.force.join.<channel> | forces a player to join a channel on every login | |
| herochat.force.leave.<channel> | forces a player to leave a channel on every login | |
| herochat.modify.nick.<channel> | allows changing a channel's nick | |
| herochat.modify.color.<channel> | allows changing a channel's color | |
| herochat.modify.distance.<channel> | allows changing a channel's distance | |
| herochat.modify.format.<channel> | allows changing a channel's format | |
| herochat.modify.shortcut.<chanenel> | allows changing whether a channel allows quick messaging | |
| herochat.modify.password.<channel> | allows changing a channel's password | |
| herochat.modify.verbose.<channel> | allows changing whether a channel shows join/leave messages | |
| herochat.admin.stealth | allows being hidden from 'No one hears you' detection | |
| herochat.admin.unignore | allows the user to not be ignored | |
| herochat.color.colortype.channel | allows for bold/italics/etc (only in latest dev) |
Some of these permissions are granted automatically to moderators of a channel (these can be changed in the main config). Most servers will want to grant everyone herochat.join.*, herochat.speak.* and herochat.leave.* and then revoke permissions for restricted channels using the appropriate negated permissions (eg. ^herochat.join.staff in bPermissions).
Channels are created using /ch create <name> [<nick>] which takes the channel's name and nickname (optional) as arguments. Once this is done, a configuration file for the channel is created in plugins/Herochat/channels. The channel's settings can then be modified either by hand or via the "/ch set" command in game. Type /ch set ? to get more information on this command. The available configuration settings are listed and explained below.
If you make changes by hand (via a file editor) you can use /ch reload to load the changes. This will overwrite any changes made by commands in-game during this time. On the other hand, if you want to force a save of changes made via in-game commands, you can use /ch save.
| Setting | Description | |
| name | the channel's name | |
| nick | the channel's nickname | |
| password | the channel's password (leave blank for no password) | |
| color | the channel's color (use the codes or common names from Wiki) | |
| distance | the maximum distance between players for messages to be heard (0 is global) | |
| shortcutAllowed | allows use of /<nick> <msg> to quickly send messages without changing focus | |
| worlds | a list of the channel's allowed worlds | |
| bans | a list of banned players | |
| mutes | a list of muted players | |
| moderators | a list of moderators | |
| format | the channel's format (see the Message Format Tags section for available tags) | |
| verbose | enables join/leave messages | |
| focusable | enables setting a channel as active with /ch <channel> |
| Tag | Replacement | |
| {default} | the default format (found in config.yml) | |
| {name} | the channel's name | |
| {nick} | the channel's nick | |
| {color} | the channel's color | |
| {msg} | the message | |
| {sender} | the sender's display name | |
| {plainsender} | the sender's user name | |
| {world} | the sender's world | |
| {prefix} | the sender's prefix | |
| {suffix} | the sender's suffix | |
| {group} | the sender's primary group | |
| {groupprefix} | the sender's primary group prefix | |
| {groupsuffix} | the sender's primary group suffix | |
| {convoaddress} | To or From (only used for private messages) | |
| {convopartner} | the sender or receiver (only used for private messages) |
Versions 5.5 and later of Herochat support internationalization. The locale is specified by the 'locale' setting in config.yml, which defaults to en_US (English/America). Available localizations currently include en_US (English/America), de (German), and pt_BR (Portuguese/Brazil). If you are interested in localizing Herochat into a language not listed here, please let me know through a PM.
You can find out information about channel-based messages by listening for a ChannelChatEvent. This custom event contains the message sender (a Chatter object), the channel the message is being sent to, the result of the messaging attempt (a Chatter.Result object), and the original Bukkit PlayerChatEvent that resulted in the ChannelChatEvent. If you change the channel the message is being sent to, you should call event.setResult(event.getSender().canSpeak(newChannel)) unless you want to ignore the normal checks before sending the message.
https://www.youtube.com/watch?v=GWv8dzCtPmc
[/code]
Issue reports and feature requests for HeroChat should be posted on Mantis. You can also join #Heroes on the esper.net IRC server to ask questions.
As many of you know, creating and maintaining plugins like this one requires a lot of time and effort. If you enjoy using Herochat, please consider donating to support its development.