Hello everyone,
Sorry for the late release (I said this would be out last weekend), I had too much uni work to catch up on to get it done any sooner.
This is an update with some minor bug fixes for 1.6,
BUT it also introduces some changes and new features.
That means read this post carefully to make sure your update process goes smoothly!
Change Log:
- Fixed a minor bug in nickname permissions [spigot only]
- The /realname command can now find partial matches (and even works with regex) [spigot only]
- The permissions for nicknames have been improved and split up. This means your old permissions for nicknames may no longer be correct!!! SEE UPDATED PERMISSIONS LIST BELOW...
- Private messaging can now be used from the console! (This lets you send messages to your players as a result of regex matches etc.
)
- Introduction of the "multichat execute" command which allows execution of commands across your entire network.
- Introduces some custom events for other plugins to hook into - these are targeted towards IRC plugins. (PurpleBungeeIRC mainly!)
Updated permission node list:
(The wiki will be updated to contain more detailed descriptions of each node shortly! This list is just provided to identify the new nodes!)
- multichat.group
- multichat.group.create
- multichat.staff.list
- multichat.staff.listgroups
- multichat.staff.mod
- multichat.staff.spy
- multichat.staff.admin
- multichat.admin
- multichat.staff.display
- multichat.chat.mode
- multichat.chat.color/colour
- multichat.chat.msg
- multichat.chat.freeze
- multichat.chat.always
- multichat.staff
- multichat.chat.helpme
- multichat.staff.silentjoin
- multichat.chat.clear
- multichat.chat.clear.all
- multichat.chat.clear.server
- multichat.chat.clear.global
- multichat.announce
- multichat.bulletin
- multichat.cast.<CAST NAME>
- multichat.cast.admin
- multichatbridge.nick.others [SPIGOT]
- multichatsponge.nick.others [SPONGE]
- multichatbridge.nick.self [SPIGOT]
- multichatsponge.nick.self [SPONGE]
- multichat.staff.spy.bypass
- multichatbridge.realname [SPIGOT]
- multichatbridge.nick.special (Ability to use special characters in nicknames (anything other than "^[a-zA-Z0-9&_]+$")) [SPIGOT]
- multichatbridge.nick.color/colour (Ability to use colour codes in nicknames) (&a &b &1 &2 etc.) [SPIGOT]
- multichatbridge.nick.format (Ability to use format codes in nicknames) (&l &o etc.) [SPIGOT]
- multichat.bypass (Ability to use the /multichatbypass command)
- multichat.mute (Ability to use /mute <player>)
- multichat.mute.bypass (Prevents player from being muted)
- multichat.ignore (Ability to use /ignore <player>)
- multichat.ignore.bypass (Prevents player from being ignored)
- multichat.spam.bypass (Prevents anti-spam triggering for this player)
- multichatbridge.nick.anylength (Allows nickname longer than 20 characters) [SPIGOT]
- multichatbridge.realname.partial (Allows partial nicknames to be found for a /realname query) [SPIGOT]
- multichatbridge.realname.nolimit (Allows ALL matches for a realname query to be shown instead of limit 10) [SPIGOT]
- multichat.execute (Allows the player to use the multichat execute command)
Realname Command:
The realname command now supports partial matches (if you have the permission above).
These are by default limited to 10 results, but you can list ALL the results that match if you have the right permission also from above. The reason this limit is in place by default is that the task could be computationally expensive, and you dont want players spamming /'realname .*' and listing everyone on your entire network's nickname...
How do partial matches work in /realname?
Assume I have 3 players on my servers with nicknames, "CrafterBoy, MinerGirl and MinecraftPlayer123".
If I run
/realname CrafterBoy it will return the exact match for this nickname.
If I run
/realname Crafter then MultiChat will say no exact match could be found, but will list people with possible matches, in this case it will be 'CrafterBoy'.
If I run
/realname m then the plugin will again say no exact matches could be found, but will list MinerGirl and MinecraftPlayer123 as partial matches because they both start with 'm'.
The way this search for partial matches works is as follows:
- MultiChat searches for any nicknames starting with the search term
- If no matches were found then MultiChat searches for nicknames containing the search term
- If still no match was found, then MultiChat will treat the search term as a regular expression (regex) and see if it finds anyone that way.
This means that the most relevant results will always be displayed. If you have players with nickname MinecraftPlayer123, and IPlayMinecraft, then doing /realname Minecraft will return the former. This makes the most sense! If you were searcing for the latter player, you would likely not search for "Minecraft" in /realname
! Its not perfect, but it is better than only having exact matches!
MultiChat Excecute Command
This command is included just because so many people have asked for it over time. It isn't strictly chat related, however it is simple to implement. This command allows you to execute a command across all of your servers.
So for example, if you want to kick everyone on your network, you can do /mce kickall. This will make all your server consoles execute the /kickall command.
It is simple, but can be used for a few useful tasks.
I have added some more powerful options to this command as well though! For example, you can limit what servers the command executes on using regular expressions. Simply use the -s flag.
For example /mce -s minigames.* broadcast You are on a minigames server! Will execute the broadcast command on all servers whose names start with "minigames".
There is also a function to cause players to execute the command instead of the console. This is using the -p flag. Like the -s flag you provide it with a regex to decide what players will use the command. /mce -p .* spawn will cause all your players to execute the /spawn command.
If you dont understand regular expressions (regex), just Google it!
Custom Events
MultiChat now provides custom events for use by other plugins. I WILL BE EXPANDING THESE EVENTS TO INCLUDE MORE FUNCTIONS IN THE FUTURE. This update only provides "Post Message Events", i.e. events with details of a messag that has ALREADY been sent on MultiChat. This means it is useful for IRC plugins etc, but they cannot be used to change the messages multichat sends. This functionality will come in later updates.
You can see the events here: https://github.com/MultiChat/Develo...java/xyz/olivermartin/multichat/bungee/events
If you have any questions please contact me on this site, in the github issues, in the plugin discussion or on discord. Discord will probably get you the fastest answer!
---
That is all for now! As always please take backups before updating. Please note to add aliases for the multichat execute command you will need to delete your config.yml file and let multichat re-generate it!
If you have any bugs (which is always likely in new updates), let me know ASAP.
Thanks for using MultiChat, and I hope this update is useful!
Revilo
P.S.
I haven't forgotten about 1.7! This is the update to finally go beyond previous bungeecord chat plugins and actually work properly alongside spigot chat plugins which add custom tags, send your messages to discord, etc. etc.
I am very busy at the moment, but I do have it in the back of my mind to get done. I will post progress in the discord #updates channel.