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?
Added support for new Spigot 1.20.2 build that uses mojang mappings for fields and methods (forks will probably follow as well).
Note on BungeeCord: There are still no news on 1.20.2 client support on BungeeCord. While the issue linked in previous update got closed, it got falsely closed - nothing was fixed. Shall a fix be introduced and plugin require an update to take advatange of the fix, plugin will be updated.
Added 1.20.2 support.
Please note that the plugin currently won't work for 1.20.2 players on BungeeCord due to an issue that's currently being investigated. There is currently no feasible solution available on the plugin's end, so we will most likely need to wait for a fix on BungeeCord side. If any progress on this is made and it will involve a change to the plugin, an update will be made for 1.20.2 client support on BungeeCord.
- Added 1.20 & 1.20.1 support
- Removed everything that should not be exposed in the API module and added API for layouts
- Pet name fix feature was removed from the main plugin and released as a separate plugin.
- Ping spoof feature was removed
- Removed Vault hook. According to bStats, 88% of servers that use TAB use LuckPerms and 5.6% use nothing. Other permission plugins are still supported when assigning groups by permissions.
- %vault-prefix% and %vault-suffix% got removed. You can use their PlaceholderAPI alternative or the internal LuckPerms placeholders
- %afk% got removed, use %essentials_afk% for essentials and %purpur_player_afk% for purpur's afk detection
- %essentialsnick% got officially removed, it was already partially removed previously only returning player's name
- Placeholder refresh interval categories were merged. Relational placeholders still have to start with %rel_, so those are not a problem. You are no longer able to specify server placeholders manually. Only those from server expansion are now registered as server placeholders.
- Added Fabric support. Due to nature of Fabric being unable to support more than 1 server version in a single jar, the release only supports 1.20.
- Moved layout.yml content to config.yml
- Feature are no longer being disabled in worlds/servers, but a disable-condition was introduced. It allows more customization. Bossbar and scoreboard got this option completely removed, as each configured object has display-condition already.
- Layout now properly hides vanished players only from those, who shouldn't see them (previously everyone had the same view). This opens new options for the future.
- Many other small changes and bug fixes
Bukkit:
- Added 1.19.4 support
BungeeCord:
- Fixed broken anti-override for teams from previous version
Belowname:
- No longer sending updates to players in disabled worlds
Scoreboard teams:
- Fixed teams being registered on name change in disabled worlds
Layout:
- Slots in player groups matching fixed slots will be ignored instead of overwriting them
Global playerlist:
- Reduced amount of packets sent & no longer blocking packets from other plugins
Other:
- Sped up plugin reloading on high player counts
Added Sponge support
- Supports both Sponge 7 (1.12.2) and Sponge 8 (1.16.5)
- Not all features are available on both versions, see what is and what isn't available on the Compatibility page
Scoreboard:
- Fixed placeholders in title rarely not refreshing when switching between scoreboard with the same title
Unlimited nametags:
- Fixed error on player quit which caused further issues
RGB:
- Fixed conversion to legacy codes inserting redundant codes, hitting limits much faster (#827)
- Removed %essentialsnick% placeholder due to being highly redundant (majority of server who want it have placeholderapi anyway). The placeholder will now return player name to avoid sudden placeholder break on update
- Attempted to fix false config conversion trigger (#762)
- Added support for * symbol in world/server groups in configuration at the beginning as well (previously only worked at the end)
- Unlimited nametag mode will now show armor stands of invisible players to players in spectator gamemode (#785)
The next version will include Sponge support. If you're a customer interested in this, let me know by opening a ticket on discord.
General:
- Marked 1.19.2 as compatible (plugin will no longer send a console warn)
Teams:
- Added config option to control
canSeeFriendlyInvisibles
flag
Placeholders:
- Fixed rare issue with nested placeholders
Layout:
- When enabled, plugin is no longer formatting original entries which might contain raw placeholders at first, causing wide entries
- Added config option to show vanished players in layout
Global playerlist:
- Fixed client kick issue & added config option to control the value causing it
- Fixed issues on 1.7
Conditions:
- Added "startsWith" and "endsWith" condition types for string operations
Scoreboard:
- Fixed show command sending scoreboard for players who have it hidden using a toggle command