- Fixed gradients not working correctly (from previous version)
- Fixed startup error on Purpur 1.16.5 - 1.18.1 (from previous version)
- Extended MiniMessage support, now it no longer requires you to only use MM formatting in the entire text and you can use legacy "&" colors alongside MM syntax
- Fixed MySQL upload command not working correctly
- Fixed some console message on Velocity not being colored correctly
- Added trivial TPS approximation on Fabric (based on MSPT)
- Added a console warn when MySQL database is empty, suggesting user should upload their data using the upload command
- Added a config option that enables compensation for a bug in packetevents plugin, which kicks players for fun
- Improved debug command output
- Improved MiniMessage support (added support for translatable and keybind component conversion)
- Improved console warnings in belowname feature to be clearer
- playerdata.yml, which is used to store players who toggled scoreboard and bossbar when remember-toggle-choice is enabled now uses UUIDs instead of player names (existing players will be converted on demand)
- Exposed a few getters in TAB's API
- Fixed startup error when name of a group in groups.yml is a number (and not wrapped as a string)
- Fixed scoreboard toggle command being totally ignored if another plugin has sent scoreboard
- Fixed runtime warning spam in console if a sorting placeholder is not configured correctly (it will only show the startup warning now)
- Fixed shadowColor (new 1.21.4 option) being set to 0 instead of null, resulting in no shadow
- Fixed tablist name formatting sometimes affecting players who meet the disable-condition
- Fixed multiple bugs with scoreboard API
- Fixed layout skin downloading not saving them into memory correctly, resulting in spamming downloading
- Fixed console errors on Velocity when plugin is disabled due to a broken configuration file
- Fixed proxy TAB <-> TAB-Bridge communication issue that might result in dynamic internal placeholders (animations & conditions) being broken
- Removed support for "|L" syntax in RGB codes that allowed setting legacy color instead of using approximation. The same result can be achieved using conditional placeholders.
This update contains 2 major changes:
- Unlimited nametag mode feature and bossbar for 1.8 (which used wither entity) got removed from the plugin as previously announced here.
- On Velocity, the plugin no longer uses bridge plugin to send scoreboard packets. Instead, a new plugin called VelocityScoreboardAPI was created, which will do this job much better with a much better performance.
- If you are using TAB-Bridge with TAB on proxy, update bridge to version 6.0.0.
- Fixed an exploit on Velocity
- Fixed error
As MC 1.21.2 is approaching, this is the final update for 4.x branch. From now on, only 5.x versions will be released, which will no longer have unlimited nametag mode and bossbar for 1.8 servers. This was originally planned to come with MC 1.22 rather than 1.21.2, however, Mojang has decided to rework entity packets in 1.21.2 and I don't see the point in adding support for it just to remove the whole feature soon after. In case you missed it, here is the original (now updated) announcement: https://gist.github.com/NEZNAMY/f4cabf2fd9251a836b5eb877720dee5c
Added 1.21 support. Unlimited nametag mode feature has now been marked for removal for the future. Read more about it and discuss it at https://gist.github.com/NEZNAMY/f4cabf2fd9251a836b5eb877720dee5c
Added support for latest BungeeCord.
Please note that the latest changes introduced a packet encoding bug in features TAB offers that causes <1.13 players to be disconnected immediately on join. This bug is inherited by forks as well, including Waterfall and possibly further forks as well. Considering the bungee update didn't add anything meaningful other than support for some 1.20.3 snapshot, it is better to stay on an older version (BungeeCord #1759 or lower, Waterfall #548 or lower) until this is fixed in BungeeCord. Disabling the plugin for <1.13 players to avoid the disconnect would be a bad solution for many reasons.
Fixed various issues on 1.20.2 BungeeCord. If you use it, and updated your backend to 1.20.2, don't forget to update bridge as well, because it compensates for a new bug introduced in bukkit 1.20.2 causing plugin messages to not be sent on join.
I hope with this the plugin is now finally stable for 1.20.2 players on BungeeCord. The reason why it took so long is because there are tons of bugs/issues in server software out of my control, which has to be compensated for, such as:
- On Bukkit 1.20.2, sending plugin messages on join may cause them to not be sent. God knows why. It was also very non-deterministic - trying the same thing several times gave different results. At the beginning, it worked totally fine for me. After making "some changes", it no longer worked. Not only on that test server instance, but not even on a clean installation anymore. I had to figure out which part of server code was blocking it and force an aggressive override, hopefully not breaking anything because of it.
- BungeeCord is in maintenance mode for a decade now and only does the most urgent things (usually just adding support for new MC versions). Tons of problems were introduced in 1.20.2 with no clear interest in resolving them. Asking for a fix barely has success, even if you open a github issue that clearly describes the problem and suggest multiple possible solutions, md5 acts like he sees no problem. Sending packets to players is considered "not an API" and any bug reports featuring sending packets are closed, without resolving it or adding the API. What's worse, even using the API the way it's advertised will throw errors.
While I thought not adding any more features and just fixing internal bugs (which will eventually have to get all fixed as they can't keep coming forever), it looks like adding support for new MC versions is going to be much more painful than expected and may end sooner than expected. I am not interested in begging people to fix bugs in their software that's out of my control, but prevents my plugins from working correctly.
I would like everyone to understand that by no law because I wrote a few lines of code I am now forced to maintain it for the rest of my life, for free, instead of doing things I enjoy, making software for a game I haven't played in a decade, for servers I never heard of, owned by people I have never met and never will who just look to make money off of plugins by getting the developers to configure their own plugins for them to then put them on their server and then sell ranks. Easy money. Or not?