Herochat
Continued development can be found at the new premium resource here.
Herochat 5
A Chat Channel System for play.hc.to
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.
Upgrading from Herochat 4.x? Read this:
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.
Main Features
- Configurable chat channels
- Password protected channels
- Permissions based protections for almost every imaginable action
- Channel moderation (kicks, bans, mutes, etc.)
- Quick messaging (messaging another channel without changing your active channel)
- Private messaging (/msg or /tell) including persistent private conversations
- Simple integration with most chat tags from other plugins (eg. Towny, Factions)
- Regex-based message censorship
Dependencies
This plugin requires Vault
Permissions
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).
Configuration
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> |
Message Format Tags
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) |
Localization
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.
For Developers
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.
Frequently Asked Questions (FAQ)
- Q: What does <channel> mean in the permissions?*
- A:* The <channel> part of a permission should be replaced with the appropriate channel's name in all lowercase.
- Q: How do I get this to show data from plugin XYZ?*
- A:* Every plugin handles chat modifications differently. Many plugins will search a message's format for a particular string (such as {town} in Towny's case) and replace it with a piece of data. You will need to refer to each plugin's documentation to see what it expects in the message format.
- Q: Why doesn't autojoining work?*
- A:* Granting the herochat.autojoin.<channel> permission only has an effect the FIRST time a person logs into the server. More specifically, this only takes effect if the player doesn't have a chatter file when they log in. If a user has logged in before (with Herochat active) then their previous channels will be loaded and autojoins will have no effect. This behavior has not changed from previous version of Herochat.
- Q: Why do all my messages say [world] when I have no {world} tag in the channel format?*
- A:* Another plugin is adding the [world] text. The most common culprit is Multiverse. Consult the Multiverse config to disable it.
- Q: What are all the commands?*
- A:* Type /ch help in-game to see a list of Herochat's commands. You can get more detailed information on a particular command by providing a question mark (?) as the first and only argument, i.e. /ch join ? will provide more information on the join command.
- Q: Can you remove a command? XYZ command is conflicting with another plugin.*
- A:* Bukkit still doesn't allow dynamic unregistration of commands AFAIK, so this isn't possible. What you can do, however, is open up the plugin.yml file inside Herochat.jar and remove any unwanted commands/aliases.
- Q: Why are my admins kicked out of every channel when they relog?*
- A:* You're probably using PEX and you've probably given your admins * as a permission. This means they are given the herochat.force.leave.* permission and are forced out of every channel when they log in. You'll need to stop granting * or negate the herochat.force.leave.* permission to fix this.
https://www.youtube.com/watch?v=GWv8dzCtPmc
[/code]
Support
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.
Donate!
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.
@Etsija
The colors have been changed to mirror the list on the Minecraft Wiki found here. You'll notice that "light green" is called "bright green". Herochat 5.x will accept "bright green", "bright_green", "green", "a", or "&a" for the color you're looking for (capitalization doesn't matter).
The latest dev version issues warnings when attempting to set an invalid channel color.
Something's fishy about the plugin, or I cannot use it at all anymore (have been using 4.x for over a year without problems): downloaded and installed 5.4 fresh to my new test server. Booted it up - yep, Global channel is there, with the default coloring.
(1) tried to change the default channel colour in game from WHITE to LIGHT_GREEN, followed by /ch save. Plugin gave me OK -> no effect, colour is still white.
(2) tried to change the channel colour from global.yml, followed by /ch reload. Again plugin gave me OK - and reverted back to white.
(3) stopped my server altogether, opened Global.yml and changed WHITE to LIGHT_GREEN. Started the server - and the plugin reverted the colouring back to white.
In all these situations, plugin also overwrote any colour settings I've made to Global.yml with WHITE.
I must be missing something, or then, there is a bug which makes the plugin at all situations revert back to its default settings. BTW, I am an admin on my server, so have "*" permissions.
Hey guys, I'm having a strange issue.
Even though I have HeroChat installed and the channel system is working, it shows < > around names.
For example, I can type in the global channel, but it will only show <[Owner] Aaron]> instead of [g][Owner] Aaron, like it should.
Same with staff. It will say I joined the Staff Channel, or Staff Chat when I type /ch staff, but the staff chat will look exactly the same as global, (<[Owner] Aaron]>)
Is there something conflicting or how can I fix this?
@Wilven
I'd suggest reading the error and possibly asking yourself what it might mean. Along with looking around on the page for a certain specific word.
When I try to use Herochat, I get this error:
http://pastebin.com/F3tmCVSW
Can somebody help?
My (Guests / Members), the lowest ranks, cannot speak in global. I'm using PEX, as well as HeroChat. I gave the rank the permission to speak, join, and leave 'global', the main channel, but they can't still. Pastebin of my PEX: http://www.pastebin.com/ZJPP2TVK
Iso help please, thanks!
@Joager
Yeah, Simple Prefix. It's the one I use.
@LordKainzo
I've been trying to different ways to make Permissions do it for a while and I've not come up with anything that works.
Ok, herochat doesn't handle prefixes.
Any plugin that do that for it? I use PermissionsBukkit.
@jpell1221
Your doing it wrong, re-read the configs or try the MC colors.
@uncovery
We have zero care or want to ever implement MySQL Support. MySQL will just weigh this plugin down.
@daredevilk
Sure, use permissions.
A MySQL Logfile of the chats would be amazing...
@LordKainzo
Please, I wanna be the first to know about Multilingual support :p, I will be glad doing the portuguese one.
There is something else I wanna report, I use VanishNoPacket and my users are using /tell to see if I'm online... may u please do the check for visibility? it's "Player.canSee()" If it returns false you can say the player is offline :D
Thanks.
Hey, great plugin, works better than any I've seen so far.
Quick question, is there a way to force someone to enter a certain channel and make that their only channel when they enter a certain world? I can't seem to make it work and the world I want to do this to isn't the first world they join on log in.
Any idea on how I could do this? Much Appreciated.
Dare
hey great plugin, but i cant color code the channels, like i got the name color codeded right but like the whole line, for an example global chat should be green and it is not. also none of the message format tags are working, they just wont show up or show to be changed. this is probs on my fault but i am still confused
How can I change the format of the emote? Sorry if this has been answered =X
Also, is there any way to use the old feature of /(channel name) message ?
As in- lets say I am in "Staff chat" and I want to speak in Global without leaving the channel
Thank you =)
Edit: I figured out my second question, I didn't know it was called a shortcut. Sorry =X
@mantegudo
The source is private and the license doesn't support derivs. If you need help the API side of things, we fully support this. We'll see about multilingual support.
@fatmarleys
We don't test with Towny - your bet is as good as mine.
@Jshulmancloud
A command will/has been created for messaging (check the perms)
@spunkiie
Not handled by us - if they're using Spoutcraft they can use &color codes. The permission for color chat is already there. Feel free to use /ch leave and /ch join - they were deprecated because other plugins were conflicting. As far as donations go, we only implement features we feel are within our design scope or absolutely necessary for Herocraft (our base server)
@KoolSource
The source is private - dervis are against our license.
@Jobsti2
Herochat 5+ isnt supporting that at this time.
@Joager
Find a plugin that handles prefixes, bPerms has a few. Herochat no longer handles prefixes/suffixes/etc in the plugin, but fully supports it.
@j2ther
Yep
@Llamasquishy
You can already have a group JOIN a channel but NOT be able to speak in it, negate the nodes to do this. We currently do this in Herocraft - Admins+ can speak and everyone joins but cannot leave.
@Godworld
I'd avoid using PEX it is the suck.
@thernztrom
We have no plans to support an IRC plugin officially. The way IRC is with MC chat is far too clunky. Look towards Dynmap chat or something similiar imo. Our goal is to provide a LIGHTWEIGHT, chat channel plugin
@Jythri
.../me
@DThielke Heyho,
whats with
the old short Healthbar. {healthbar}
How do I set a prefix?
@thernztrom thernz / ryanclancy A good solution we found is MonsterIRC, works pefect with Herochat 5 and in my opinion is more feature rich and better suported then CraftIRC.
http://dev.bukkit.org/server-mods/monsterirc/
@Llamasquishy
yes its possible. Set it so everyone can auto-join and join the alert channel but only you can speak. Go look at the herochat permission nodes and you'll see how its set up.