ChatSuite
Notice! I am currently very busy with both work and school. Please refrain from feature requests and only post bug reports, as I am unable to do extra work at this time.
ChatSuite provides an advanced Chat Management interface for servers, with channel and multi-world support. IRC support is planned for the future. A comprehensive command structure is provided, which you can access by typing /chatsuite ? or /cs help.
Table of Contents
- Github Wiki
- Default config.yml - Examination - Layout
- Examples
- Source
- Jenkins 5.1. Use of the plugin builds from Jenkins is unofficial, unsupported and unapproved by BukkitDev Staff!
Features
- Channels, and permissions support for the creation thereof. (Node: chatsuite.create)
- A powerful localization file, to control the messages that users receive when requesting help. (chatsuite.help)
- Whispering and AFK systems (chatsuite.whisper and chatsuite.afk)
- ... and more!
Information
I am currently working on documentation, which can be found at my github wiki.
Commands
The following is a very brief overview of the commands available via this plugin, many of which can be changed.
note: CommandBook's CraftScripts registers the command /cs, which will supercede this plugin's /cs (which is only an alias).
note 2: ChatSuite v2.0 (currently in progress) will have a completely redesigned command system. /cs will be used minimally, in favor of more relevant command names (/join, /part, etc) for the plugin.
- /chat ? (chatsuite.help)
- /chat [page] - Show paged help. The command pages have additional information.
- /chat afk ? - Will show command usage and syntax for the afk command. (chatsuite.afk)
- * /chat afk "[message here]"
- /chat whisper ? - Will show command usage and syntax for whispers. (chatsuite.whisper)
- * /w [player] "[message here]"
- /chat nick [nick] / /chat nick [player] [nick] (chatsuite.nick)
- * /nick - Reset your nickname.
- * /nick [new nick] - Change your nickname.
- * /nick [player] [new nick] - Change another player's nickname. (requires chatsuite.nick.other)
- * /nick [player] --reset - Resets the specified player's nickname. (requires chatsuite.nick.other)
- /chat target [target] (chatsuite.target)
- * /target c:[channel] - Sets your target to the specified channel. Can also be used without the c: prefix.
- * /target p:[player] - Sets your target to the specified player. Similar to whispering. Can be used without the p: prefix.
- /chat 4 / /chat 5 - Will show command usage and syntax for channel-based commands. (various)
- * /create [channel] (chatsuite.channel.create) (/ch create [channel] [type])
- * /join [channel] (chatsuite.channel.join) (/ch join [channel])
- * /part [channel] (chatsuite.channel.leave) (/ch part [channel])
- * /invite [player] [channel] (chatsuite.channel.invite) (/ch invite [player] [channel])
- * /msg [channel] "[message here]" (chatsuite.channel.message) (/ch msg [channel] "[message here]")
- * /ch list [-all] (chatsuite.channel.list / chatsuite.channel.list.all)
- * /ch set ? / /ch set [channel] option [value] (chatsuite.channel.set)
- * * basic options
- * * /ch set [channel] color [color]
- * * /ch set [channel] permanent [boolean]
- * * /ch set [channel] owner [player]
- * * /ch set [channel] public [boolean]
- * * irc options
- * * /ch set [channel] network [irc network]
- * * /ch set [channel] channel [irc channel]
- * * /ch set [channel] enabled [boolean]
- * * /ch set [channel] key [irc channel password]
- /cs reload - Will reload ChatSuite. (chatsuite.reload)
- /cs debug - Will toggle debug mode in the server log (chatsuite.debug)
- /cs version - Will print ChatSuite's current version and build number. (chatsuite.version)
@NeroTech
In this version, even with allow_channels set to false, it still shows the channel joined message(s) to players whenever they log in. But with that false, and the target removed from message formatting, everything else should be hidden/disabled.
The join messages showing has been fixed in the 2.2.2 source.
Unless you have a completely different problem.
How do you completely get rid of channels? I have tried so many times to disable them but they just keep coming back! Any one know how to fix this? Mc ver 1.4.7
When i make the groups, it says the mods are owners! Help!! please! D:
@LeeTheENTP
"The commands that conflict will override the essentials commands, you can allow essentilas commands to override using the overridden-commands: settings in the plugins/Essentials/config.yml" I quoted this from here But it also stated that it doesn't always work (forgot where I had read that from), which I found out after trying /afk command and nothing happened.
Further more reading in the config about using overridden-commands in essentials and found this link about setting up aliases in the bukkit.yml when you have two plugins with the same command and want the other to take over.. and it worked!
here is the what I add in the bukkit.yml
voila! :)
@LeeTheENTP
here's a solution to that, get a plugin called Commander. it allows you to create custom aliases that automatically override everything else. just create a alias to /eafk that's /afk.
Hope this helps, if you need anything just PM me! :D
All I really want to use this plugin for is per-world chat for Multiverse 2. Is there a way to disable everything else while still letting users maintain their Essentials commands like /msg and /afk without using /eafk, /emsg, etc.?
I cannot seem to get a channel for each world that players automatically join and stay on when they're in that world. That's all I'm trying to do with this plugin. Any help?
Is there any support for using prefix for player colors in playerlist and tablist?
Any updates regarding plugin's compatibility with 1.4.5 R0.2?
Note: Not sure why but this comment was removed with no reply? Commenting it again.
@nhadobas
And I have done that, and I set the groups in there as well?
@fogest
Because this plugin doesnt take prefixes from your permissions, you have to set them in the config.
How do I get this to work with PEX and display the correct prefix associated with the group? As of right now I'm the only user being "registered" as the rank I actually am, and everyone else is just being registered as members. Why is this?
I will not be hooking into vault.
The issue isn't that I can't find a way to do it in a thread safe manner (I can, because I'm really quite good), it's that it significantly decreases performance in an event that is already very performance unfriendly.
This problem will not exist soon if you are using Privileges.
@krinsdeath
A little late response on my part.. But yes I see the issue there. One way to do it might be to hook into vault?
I recently created my own chat plugin because I needed one to be compatible with some of my other custom plugins I run on my server and I use vault to bypass this issue.
http://prntscr.com/lg8d9
I saw that on a server once, they told me they used chatsuite to do it. How would i go about doing this if its even possible using this plugin.
@exload - Unfortunately, there is no way to fix that. Dynamically running through every possible group is no longer possible since the permissions check is run asynchronously on each chat. This would be a potentially unsafe iteration, meaning it would throw CMEs.
I have toyed with the idea of creating a task that runs every few ticks and checks for group updates, however I can't come up with an efficient implementation of it. /chat reload (to reload ChatSuite) should have the same effect as a player logging out and back in as a temporary solution.
If I can get permissions plugins to agree that sending a "group change event" is ideal, then I can solve this issue without the need for unsafe iterations and additional thread creations. :)
Every time that I promote/demote a player to a different group in my permisisons manager the player must re-login in order for the new chat tag to take effect. Is there a way to fix this issue?
@graywolf336: It's easy enough to add a jar to a nexus repository, but it becomes an incredible hassle when the plugin's API is unstable or changes frequently (and updating the jar is something you have to do over and over).
I'll take a look at hooking it as soon as I have some free time.
@krinsdeath
Towny has a Javadoc page: http://www.palmergames.com/javadoc/ but sadly they don't have a maven, what I had to do was include the Towny.jar file in my libs folder and include it in the pom.xml..
Talaysen:
I am very sorry that I didn't get back to you about your request. BukkitDev doesn't seem to want to notify me of new replies!
Anyway, to address the /mute concern, ChatSuite already has a mute command - I seem to have failed to document it on my main page, so I will get to that now. I am aware that it is slightly lacking (I just hobbled it together quickly about a hundred builds ago), so any input you have on it would be fantastic!
As for an /ignore command, I have another request from a friend to add this, and as soon as I have some time to start up IntelliJ, it's high on my list of things to-do.
Towny tags may not be possible if the project isn't mavenized (I haven't checked), but if it is then I should be able to add something fairly easily. I just need to know that the Towny API (if it exists at all) is reasonably stable and documented, otherwise it may be a bit of a pain.
@krinsdeath
When I contacted the Towny devs (via IRC) about their chat tags, they responded with "TownyChat is the only plugin that supports the town/nation tags at this time".
If you ever get a chance to add them in or find a way to make it work, it'd be cool. I'd say 'very, very low priority' though, I like the Towny tags, as it makes it easier to quickly identify a user's town, but depending on the length of the town and nation tags, it just makes chat seem very cluttered. :\
I know you're not really looking to add any features, but if I could toss a request out there (just something for you to consider at a later date, whenever you have more time), perhaps some kind if /ignore feature?
I run Essentials, but Essentials mute/ignore commands don't seem to be compatible with ChatSuite. I'd rather have built in command for something like that anyways, I truly hate running Essentials, it's too damn bloated.