TAB [1.7.x - 1.21.11] icon

TAB [1.7.x - 1.21.11] 5.4.0

An all-in-one solution that works

Page 1 2 3 4
3.0.0
Distribution change
The first major change is distribution change.

Right now, the plugin is divided into free and premium version with just one flag in code changed. Since the plugin is opensource and website like blackspigot existing, people had an easy time getting the premium version for free anyway. It was also annoying to maintain, since every time I compiled the plugin I had to check who am I compiling it for (in case of bug reports and such) and change flag appropriately, sometimes forgetting which resulted in hours of wasted time on debugging the cause. We also got several users complaining scoreboard isn't working after updating, turned out they downloaded free version.

With the new update, the plugin is premium only with free download on github. There will is no free/premium version, there will only be the plugin with everything it has. This will help spread previously premium-only features towards wider audience and ending the dark age of paid scoreboard plugins (evil laugh). This is also directly related to discord support changes, see below.

This will have several advantages:
  1. All users will have access to more features by default, possibly spreading the plugin to more users
  2. People who want to test the plugin before buying to make sure all advertised features are actually present are now able to do it easily
  3. Less headache for me from discord tickets, as well as more time to work on the plugin


The only possible disadvantage of this would be lower income from those who would buy it if they didn't have free access. However, they are already able to do so right now, either by compiling source code or using websites like blackspigot to get it. Because of that, I don't think (much) less people will be buying it.

Because of this change, buyers will actually need some advatanges to have a reason to buy the plugin (since only relying on donations just doesn't work):
  1. High quality discord support
  2. Access to pre-releases
  3. Access to bug reports/feature requests without being ignored
  4. More? Any ideas?


Discord support
Right now, support is provided to everyone with support for premium version only provided to buyers. This results in many issues:
  1. Many people come asking for help before reading wiki and even if they receive direct wiki link answering their question, they don't read it and just say it didn't work, resulting in wasting my time spoonfeeding them. More than once I delayed my sleep due to an active ticket from someone refusing to read the wiki. Once in the middle of september we got 3 tickets during night who sent a message about 30 minutes after ticket creation that they solved their issue. If they managed to do it without help, others can as well.
  2. Some of them then say they don't speak english well, which I don't find as a fair reason to waste my time I could spend improving the plugin for everyone. If they don't speak english well, they are very likely not old enough to be capable of running a serious server.
  3. Many of those who decide to get the plugin from blackspigot have no shame asking for help with premium version. They then say they bought it, but "can't verify right now, just help me quick pls I just want this little thing", their server owner bought it, who will never verify, or straight up leave the server after being asked to verify. With MC-Market's verification bot they'll have no one to beg and waste time of.
  4. Some say they compiled the plugin themselves and ask for help, despite readme saying they won't get any. Really not any better than the point above.
  5. Some have noticed the premium mark in debug output and instead of sending a screenshot from game when asked they paste console output, but remove "Premium" from version, thinking how great hackers they are, to then just get caught by secret marks of the debug output. Then, they either go back to previous steps or say they aren't asking for help with premium features so what's wrong with it. Disrespecting me and yet demanding my time. That's what is wrong.
  6. Currently, I spend about same amount of time providing support as developing the plugin, which is completely unacceptable since wiki exists. Imagine where would the plugin be if my time spent on it was double. Yes, helpers exist, but they are doing it for free in their free time. I can't tell them to be available 24/7 for support.
  7. Many users ask for help and then don't respond back with results after they were answered, sometimes for days and even weeks. This just makes it harder to manage tickets and we must ping users to get any feedback from them. Often after a week of pinging them every day they asking if the wiki page we sent them / them hints we gave helped to solve their problem they just say "no" and we can go back to the beginning. Premium users do this as well, but it's way more common for free users.


With new version, I will mute community support channel and tickets will only be available to buyers. Until then, mc-market will (hopefully) finish their discord verification bot, which they cannot try to fool/beg in any way (saying they don't want to fill discord on mcm profile, saying it doesn't work etc etc). Wiki will also be improved to contain everything users may need. Often I can feel my brain cells dying when talking to some users and when I explain something to my friends, they ask why do I explain it like they were complete idiots. I don't know, I am used to it "for some reason". There also has to be a reason for users to actually buy the plugin, since they can get it for free now.

Now, those who did not buy it will not get support and they will want it. They also won't have access to bug report/feature request channel on discord and will not have access to pre-releases. This will be easier for me, as well as motivate users to buy the plugin.
Someone reacting to this change said he is fine with it, because he doesn't need support anyway. He said this after 5 tickets and 265 messages in public channels. Not sure about that one.

API rework
The API is reworked to offer a lot more options and generally be cleaner, such as having to go through scoreboard manager interface which is null if scoreboard feature is disabled instead of calling send scoreboard directly to player not knowing what will happen when it's disabled.

Configuration changes
Structure changes

Since there is no free/premium version anymore, premiumconfig file content was moved to config, as well as bossbar.yml, which felt pretty small just for that one feature. Users and groups were moved into separate files users.yml and groups.yml, which will have 2 benefits:
  1. It will remove `Users` and `Groups` keyword, resulting in 1 less indent (2 less spaces) and keyword gone, resulting in lower chance of users making it to discord pasting their syntax error after they removed Groups keyword for some reason or didn't respect spacing.
  2. When a command is ran to alter config (altering groups/users), it will result in all comments of config disappearing. This increases the chance of users making it to our discord asking what an option does, despite first line of their config containing wiki link. Altering another file and not the main config will avoid this issue.


Config structure was also changed. Related config options are now grouped together with a switch to toggle the whole feature on/off, helping users recognize which options affect others, such as disabling nametags will disable sorting as well.

Configuration files will automatically be converted to new format.

Scoreboard

The whole idea of scoreboard chaining using "if-condition-not-met" was removed in favor of a much easier solution which will not confuse new users. Default-scoreboard option was removed as well as defining next scoreboard in chain. Now, scoreboard priorities are defined by their order in config. If a condition for the first one isn't met, second scoreboard is checked etc.

Per-world section was also removed, since you can simply use `display-condition: "%world%=worldname"`

Bossbar
Just like with scoreboard, per-world section was removed, use `display-condition: "%world%=worldname"` instead.

default-bars option was removed as well, all bossbars will now be displayed (if display condition is met). For bossbars not enabled by default give `announcement-bar: true` property to it.

Sorting
The idea of multiple sorting elements was extended and now allows more than 2 (since previously you could only define 1 sorting placeholder), however, keep in mind there's a limit (https://github.com/NEZNAMY/TAB/wiki/Feature-guide:-Sorting-players-in-tablist#additional-info).

New features
MySQL Support

First major addition is MySQL support. This will store users and groups, instead of using the files. It can be enabled in new config section for mysql. Conversion is currently not available, but might be in the future.

Layout
Ability to create a layout with 4 columns (less not supported currently) with conditions for each section, as well as completely different layouts per conditions. Obviously full placeholder support and extremely optimized.

RedisBungee support
Support for cross-proxy player processing - tablist name formatting, nametags, belowname, online counts in online placeholders etc.

Placeholder changes
Some placeholders were changed / removed. For removed placeholders look for their PlaceholderAPI alternative.
  1. removed `%money%`, use `%vault_eco_balance_formatted%`
  2. removed `%deaths%`, use `%statistic_deaths%`
  3. removed `%xPos%`, use `%player_x%`
  4. removed `%yPos%`, use `%player_y%`
  5. removed `%zPos%`, use `%player_z%`
  6. removed `%essentialsnick%`, use `%essentials_nickname%` - this in default config resulted in users copypasting this bukkit-only placeholder to bungeecord and complaining it doesn't work there
  7. added `%vanished%` showing vanish status from other plugins, originally added for internal use, but literal output is not used, so it can be freely altered with placeholder output replacements
  8. added `%mspt%` showing average tick time (requires paper core)
  9. `%afk%` no longer supports plugins which no one uses / have placeholderapi placeholders. Now only supports Essentials, Purpur and AntiAFKPlus. It no longer has directly configurable output in config (previously `afk-yes` and `afk-no`), since placeholder output replacements are now available to everyone
  10. `%online%` was removed and `%canseeonline%` was renamed to `%online%`
  11. `%staffonline%` was removed and `%canseestaffonline%` was renamed to `%staffonline%`
  12. `%world%` placeholder is now available on bungeecord as well with bridge
  13. removed `%rank%` and added `%group%` showing primary group, for customization see placeholder output replacements


Other changes
Just like with every update, various minor changes/fixes are present as well:
  1. 1.18 support
  2. Fixed issues when bossbar announce command was used several times at once for the same bossbar
  3. Sync placeholders will now show as red in /tab cpu to warn about them, since they slow down the server
  4. Added world forwarding to bungeecord (requires bridge update), allowing all kinds of per-world settings on bungeecord
  5. Significantly reduced CPU usage and drastically reduced memory allocations (when testing animations I was able to get 100x lower memory allocations with same configuration)
  6. Added support for CatServer and Fabric (with cardboard mod)
  7. Added missing options to tabcomplete
  8. Added `/tab scoreboard show [player]` command sending specified scoreboard to player
  9. Improved /tab cpu output with more detailed info on which part of each feature is sending packets
  10. Belowname is now disabled by default
  11. Added geyser hook to show scoreboard line values as 1-15 for bedrock users instead of 0s to fix line order
  12. Fixed placeholders only used in tab expansion not refreshing
  13. Fixed gradient text being black if output is only 1 character long
  14. Fixed global playerlist sometimes not working properly with vanish plugins
  15. Added config option to disable scoreboard detection from other plugins
  16. Fixed a lot of random errors
  17. Added compensation for rare bug in unlimited nametag mode making armor stands not appear
  18. Global playerlist now updates latency of players on other servers (can be disabled)
  19. Added support for nested placeholders
  20. Bossbar and scoreboard now require permission to toggle instead of having an option (`tab.bossbar.toggle` and `tab.scoreboard.toggle`)
  21. Improved yaml error assistant
  22. Bossbar and scoreboard now require permission to toggle
  23. `_OTHER_` group keyword was renamed to `_DEFAULT_` for a more accurate reflection of it's functionality
  24. Changed parse command syntax to `/tab parse `
  25. Fixed bossbar visibility issues on 1.8
  26. Conditions will now have automatically chosen refresh interval based on fastest nested placeholder (permission checks count as 1000ms) instead of using values from config
  27. Fixed rare bungeecord error leading to a kick
  28. * Added detection for name changes with nick plugins to properly apply nametags & sorting
  29. Reworked command messages, file is now called messages.yml and contains even more messages to customize
  30. Added support for CMI's {#RRGGBB<>} shortcut in gradients
  31. Added <#RRGGBB> RGB format
  32. Configuration files should automatically come with UTF-8 encoding
  33. Scoreboard line numbers will now update correctly when a line hides and use-numbers is set to true
  34. Changed `tab.togglebar` permission to `tab.bossbar.toggle` and `tab.togglescoreboard` to `tab.scoreboard.toggle`
  35. Fixed scoreboard not visible when joining into disabled world/server and switching to enabled
  36. Added %tab_scoreboard_name% placeholder returning name of currently visible scoreboard
2.9.2
- Added 1.17.1 support
- Fixed disconnect on bungeecord
- Fixed error
- Fixed startup error caused by misconfiguration
- Added workaround for viaversion not returning correct player version, resulting in various issues
- Fixed NPE in API
- Added * support for per-world settings & disabling features in worlds (such as lobby-* would include all worlds starting with "lobby-")
- Fixed fix-pet-names option causing problems on 1.17
- Fixed bossbar progress always showing full on creation
- Small performance and memory optimizations
- Debug config option is now public
- Removed placeholderapi expansion downloader to avoid rare harmless error
2.9.1
- Hotfixed 2 critical issues
- Added option to define custom character widths into aligned suffix feature
- Added placeholder output replacements support to relational placeholders
2.9.0
Premium version changes:

Added scoreboard announce command (/tab announce scoreboard )
Added detection of scoreboards from other plugins to properly hide tab's and send it again once the other plugin's one disappears
Added command argument to scoreboard for silent scoreboard toggle /tab scoreboard toggle/on/off [player] -s
Added option to delay scoreboard on join
Added new sorting type PLACEHOLDER sorting by predefined values in new list
Placeholder output replacements now correctly accept yes/no keys without requiring to put them into ""
Fixed RGB codes sometimes not displaying in scoreboard for 1.16
Fixed security issue with scoreboard
Fixed rare scoreboard color issue
Fixed >= and <= condition types not working
Fixed align tabsuffix feature sometimes creating more space than needed due to players who are no longer online
Fixed align tabsuffix feature crashing when relational placeholders are used
Fixed conflict between hidden-by-default and remember-toggle-choice scoreboard options
Probably fixed rare scoreboard display issue

From free version:

Added 1.17 support
Added support for Thermos & forks
Added new feature "PingSpoof" - shows everyone as having the same configured ping value in green par (for example 0)
Added support for using % symbol without breaking placeholders after it - use %% to display it
Added anti-override logging so you know if your plugins are not configured correctly & oonfig options to disable anti-override
Added permission group & node forwarding from bukkit server to the proxy if enabled (requires bukkit bridge updated as well)
Added extra properties "headerappend" and "footerappend" that add extra text on the bottom of header/footer, useful to display extra info for staff members without copypasting the whole thing
Added more ways of using remove-strings (#259)
Added option for global playerlist to see vanished players as in spectator gamemode for those who have permission to see vanished players
Added command to send bossbar to one player only (#251)
Added more misconfiguration checks
Added option for global playerlist to isolate unlisted servers instead of grouping them
Added option to configure legacy colors for RGB codes using #RRGGBB|L where L is legacy code
Added config option to configure space between unlimited nametag lines
Added %player-version-id% placeholder, useful for conditions to make version-specific text
Added config option to disable unlimited nametags in worlds
Added permission requirement (tab.tabcomplete) to use tabcomplete in tab's commands
Added purpur afk support to %afk%
Added bukkit vanish plugin support to global playerlist via bridge (which must be updated as well)
Significantly improved performance of fix-pet-names feature
Updated ViaVersion hook to 4.0.0 (older versions not supported)
%canseeonline% placeholder on bungeecord now supports backend vanish plugins
Massively reduced memory usage
do-not-move-spectators option enabling/disabling now takes effect immediately instead of on next change
Increased placeholder expansion downloading initial delay to give plugins more time to load expansions
Improved performance of RGB colors
Improved /tab cpu command
Improved compatibility of unlimited nametag mode with vanish plugins
Changed animations.yml structure for less opportunities to mess up spacing (your file will automatically convert)
No longer refreshing players when command to set property is used if value did not change (for autmatic commands, improves performance)
Improved API
Fixed many errors
Fixed compatibility issue with ySpigot (random abandoned spigot fork)
Fixed RGB usage causing &r to not work correctly
Fixed unlimited nametag mode sometimes not spawning armor stands on join
Fixed unlimited nametag mode's armor stands sometimes not appearing
Fixed armor stands not visible when teleporting from disabled world to enabled
Fixed %coundown% of bossbar announcement not updating when accessed using %tab_placeholder_countdown%
Fixed startup error caused by hooking into LibsDisguises if the plugin is not enabled
Fixed API bugs
Fixed issues when ProtocolSupport was on the server but not enabled due to wrong version
Fixed abovename/belowname defined in per-world not loading correctly
Fixed compatibility of unlimited nametag mode with player ride plugins
Fixed startup error due to invalid refresh interval of placeholders, replaced with a warning
Fixed global playerlist's spy servers not respecting vanish status
Fixed errors in LP hook
Fixed errors on /tab reload
Fixed wrong visuals displayed when using a plugin that teleports players to different world immediately on join
Fixed unlimited nametags not respecting crowling and gliding
Fixed wrong offset with unlimited nametags when riding unusual horse types
Fixed error in placeholder output replacements
Fixed tablist name formatting on 1.7 clients
Fixed tablist name formatting sometimes not appearing when anti-override is disabled
Fixed issues with per-world-playerlist
Fixed errors when using & tab-completing /tab command from console
Fixed placeholders not refreshing when assigned to players via API
Fixed number parse error messages stripping color codes
Dropped direct BungeePerms support as no one was using it (still can assign by permissions)
Removed modify-npc-names config option under unlimited nametag mode as NPC names should be properly configured in NPC plugin (also it was a source of hate from their devs which is now no longer available)
2.8.10
Fixed issue on 1.8 from previous release
Page 1 2 3 4