Skip to content

Changelog

Nathan edited this page Sep 4, 2022 · 11 revisions

ChatControl Red - Simple, Fast, Reliable.


Acknowledgements

Making ChatControl would be impossible without such an amazing community we have here. What you are getting hands on it's a many an effort and a sum of countless hours, contributed by these, and many more people below.

  • Angel Avila, for supporting me when times were tough, helping people out in the Issues section, testing and debugging issues and making contributions to ChatControl for a long time now. Congratulations to world's #1 MC server in Mexico!
  • tr7zw, the creator of NBTAPI, thanks to his open source library and gracious permission our plugins support old Minecraft versions such as 1.7.10 and 1.8.8.
  • Bastian Oppermann from bstats.org, making it possible for us to see how many people are using our product.
  • An of course md_5 (Michael), all the people from SpigotMC, and Aikar that made the Spigot and subsequently Paper, both on which ChatControl runs today, possible!

Thanks to people below, which spent hundreds of hours hanging in the Issues section, reporting bugs and dealing with things I missed, bugs I left out and flaws that needed attention, or sharing their ideas and suggestions to make ChatControl better, thanks to their honest feedback and criticism I was able to make ChatControl what it is today. Thank you! 👍

If I forgot someone please contact me at matej(at)mineacademy.org!

Preamble: Our Vision

When making this version I had to tackle three key factors: Make the plugin simple, fast and reliable. Simple, meaning easy-to-use, intuitive design. Fast, meaning high performance with minimal impact on server resources. Reliable, meaning well-tested and free from major bugs and errors.

We had issues with meeting all of these in the past.

Now, I really wanted to ensure this release is different. A tough decision had to be made - add dozens of new features, or focus on these three factors. I chose the latter. A software that's user-friendly, fast and bug-free will always win over a software that's full of features that are half-broken, confusing and slow the server down.

Whether we've been successful in accomplishing that vision, the time and your experience is our only judge. That's why I'd like to ask everyone for patience - don't hate me if you favorite feature got removed, simply open a ticket on GitHub and if many people vouch for it, it will get added back when we have time.

And lastly, despite extensive testing, this is a new release, and due to the insane complexity of the plugin there may be bugs sneaked into this release. It has almost 90,000 lines of code. That’s not a peanut. All we're asking for is report everything over on GitHub and it will get solved within 1-7 days. Yes, it may take us a while, we're a tiny team.

Other than that, I'd like to invite you to use this release and hope it will continue making your server an awesome place to be!

What's New

  • Major | Changed how chat works. From now on, we only have channels. That means that the original chat formatting without channels, admin chat and bungee chat has been removed. You can use channels to replace these features completely, and much more. This also prevent us from having to maintain four formatting systems, a task prone to bugs and instabilities. You can totally only have 1 channel and force everyone into it like you would previously with chat formatting.
  • Major | Removing chat messages! Using a special chat format found in format/chat.yml file. Yes, this will also remove the message from BungeeCord and even Discord!
  • Major | Added mail system using books, which can also be used as a ticket system. Players can also set an expirable auto-responder.
  • Major | Added player-customizable nicks, prefixes and suffixes via "/chc tag". Most people will want to create their own /nick command, you can do it under 30 seconds in your commands.yml file. And yes, RULES ARE SUPPORTED so you can prevent inappropriate tags with EASE.
  • Major | Re-added tab-complete filtering for both MC 1.8.8-1.12 and 1.13-1.16.
  • Major | Silent message cancellation using the new "then deny silently" rules operator. Useful for blocking ads so that the advertiser thinks everyone saw the ad and stops spamming.
  • Major | Due to the amount of data flowing through BungeeCord right now, we’re now requiring the use of MySQL when you enable BungeeCord. This makes communication efficient, and in many cases, even possible.

  • Change | Permissions, some were changed, see this list for migration guide.
  • Change | Party channel names, just let the plugin throw an error that will guide you.

  • New | Rule operators "ignore channel" and "then discord".
  • New | Prefixes , <title>, , and that are optional and work for almost any message that'll send it in new ways or will center it!
  • New | Command "/chc perms" to enumerate all permissions from the plugin.
  • New | Command "/chc debug" to ZIP essential plugin information so that you can just upload it to uploadfiles.io quickly and send us the link when opening a GitHub ticket, saving you time.
  • New | Channel party "mcmmo" mode that’ll only send your channel message to other players in the same mcMMO party.
  • New | FactionsX party chat support. Set Party key in your channel settings to "factions-factio"n and install FactionsUUIDAPIProxy.
  • New | Lands party chat support. Set Party key in your channel settings to "lands-land"
  • New | API event RuleReplaceEvent for developers to modify how rules replace certain words.

  • Improve | Files are now checked for syntax errors before reloading them. Accidental typos in your .yml files no longer crash the whole plugin.

  • Improve | Safe rules. If your regular expression used to match a message is malformed and causes infinite loop, previously freezing the server, we will now stop it and print useful self-help information.

  • Improve | Now supports both %variable_syntax% as well as {variable_syntax} for PlaceholderAPI and inbuilt variables.

  • Improve | Converted handlers.yml into a ruleset (.rs) file that uses operators like the other rules. Much simpler code on our end and more cross-compatibility. The file is now in rules/ named as groups.rs.

  • Improve | Improved variables performance by making them case sensitive. We know you were using {pLaYeR} but from now on you must use {player}.

  • Improve | Rewritten /chc announce command to support toasts, boss bar, title, actionbar and much more!

  • Improve | Rewritten variables (also from PlaceholderAPI) to support both front and back automatic space. Example: If {+faction+} is empty, we will print "", if it is not empty, we print " faction ".

  • Improve | Added BanManager mute support so muted players are now properly recognized from Essentials, CMI and BanManager also.

  • Improve | If you leave a chat channel, you will not be auto-joined into it again next time you join.

  • Improve | All whitelists can be turned into blacklists (or vice versa), by putting "@blacklist" on the first line of the list.

  • Improve | Made localization files other than English fall back to the English one if they lack values. This prevents breaking outdated locale files and makes life easier for us since we'll only have to place new keys into the English file instead of copying them over dozens of files.

  • Improve | Fixed MySQL database saving non-English characters as "?".

  • Improve | The "then bungeeconsole" rule operator has now an additional parameter as the first one. You can set it to "bungee" to run the command on BungeeCord or as a name of another server where the command should be forwarded to. Example: "then bungeeconsole survival say Hi there!"

  • Remove | Removed the artificial bock of having multiple rules with the same match, so that now you can use the new operators on the same message in more, unique ways.

  • Remove | Removed "chat ignorers" (poor name anyways, barely anyone understood what it was) in favor of better rules system.

  • Remove | Removed WASD entity riding force-op #justKidding.

And of course tons of bug fixes and under-the-hood improvements!

Edited Permissionss

New/Edited/Removed Permissions (New/edited are in + and removed are in -)

+ ANNOUNCE = "chatcontrol.command.announce.{type}";
+ BOOK = "chatcontrol.command.book";
+ BUNGEE = "chatcontrol.command.bungee";
+ CAPTCHA = "chatcontrol.command.captcha";
+ DEBUG = "chatcontrol.command.debug";
+ INSPECT = "chatcontrol.command.inspect";
+ LOG = "chatcontrol.command.log";
+ MAIL = "chatcontrol.command.mail";
+ TOGGLE = "chatcontrol.command.toggle.{type}"
+ CAPS = "chatcontrol.bypass.caps";
+ CLEAR = "chatcontrol.bypass.clear";
+ DELAY = "chatcontrol.bypass.delay";
+ GRAMMAR = "chatcontrol.bypass.grammar";
+ LOG = "chatcontrol.bypass.log";
+ LOGIN_DELAY = "chatcontrol.bypass.logindelay";
+ LOGIN_USERNAMES = "chatcontrol.bypass.loginusernames";

- CLEAR_SILENT = "chatcontrol.command.clear.silent";
- CLEAR_ANONYMOUS = "chatcontrol.command.clear.anonymous";
- FAKE = "chatcontrol.command.fake";
- IMPORT = "chatcontrol.command.import";
- ADMIN_CHAT = "chatcontrol.command.adminchat";
- ADMIN_CHAT_READ = "chatcontrol.command.adminchat.read";
- DELAY_COMMANDS = "chatcontrol.bypass.time.commands";
- SIMILAR_COMMANDS = "chatcontrol.bypass.dupe.commands";
- DELAY_CHAT = "chatcontrol.bypass.time.chat";
- SIMILAR_CHAT = "chatcontrol.bypass.dupe.chat";
- LIMIT_CHAT = "chatcontrol.bypass.limit.chat";
- LIMIT_PARROT = "chatcontrol.bypass.limit.parrot";

Upgrading

If you're coming from ChatControl Free, unfortunately you'd have to reset your configuration. If you're coming from ChatControl 8, we offer almost automatic easy migration. See Upgrading for more information.

Lines of code:

ChatControl: 24 568
Foundation: 61 027
= 85 595!
Clone this wiki locally