Tab Manager [API 5/6/7] [v 1.0.4/v 2.1.3] - Customize your tab list

TabManager

This is a tab customization plugin that adds support for custom tab prefixes and suffixes based on the players group, or individual status, while being easy to customize via editing a simple JSON file.

Supports Nucleus Nicknames/Vanish service.

How to guide

To add custom tabs for players, simply get the players UUID and add it to the players.json file underneath the example provided. (Or replace the provided example with it).

To add custom tabs for certain groups requires a bit more work, as displayed in the default groups.json, the groups added MUST be in order from highest ranking (E.g. Owner) to lowest ranking (E.g. Default). If the groups are ordered incorrectly, then players may get the wrong tab assigned to them. Once the groups are correctly ordered, you’ll have to add a permission node to each of the groups you plan on giving a tab rank to. This permission node is tabmanager.group.name (E.g. tabmanager.group.owner), any groups that you have assigned the star (*) permission to must also have any incorrect group permissions revoked from it, or they will display that tab instead. (E.g. If I’ve given my Administrators * permission, they’d technically have tabmanager.group.owner as a permission, so I must revoke that, or they’ll have an owner tag in the tab menu) for this you’ll have to look into whatever permission system you’re using.

The default plugin configuration has two options, mostly suited for Pixelmon’s custom tab. If you are not running Pixelmon, or have the Vanilla tab list enabled via the Pixelmon config, you can turn the Vanilla tablist on within the config. However, if you are running Pixelmon or want the prefixes/suffixes to show above players within game you must enable the other configuration setting (Add to teams).

If you have the vanilla tab list enabled, you can edit the vanilla.json file and customize a header/footer that will be shown on the tab list. If you’d like there to be no header or no footer, set the “display” section relating to that to “”.

To “group” players in the Tab List by their permission group (via Luckperms, ZPermissions, whatever), enable “Add Players to Teams” in your main tabmanager.conf file. This will automagically enable grouping with other players of the same group.

From versions 2.1.1 onward the following also applies.

If you have group Ace that has “tabmanager.group.ace” permission node and then group Pro that inherits from group Ace, you’ll have to explicitly REMOVE/UNSET tabmanager.group.ace from the Pro group. Otherwise if you promote someone from Ace -> Pro their tab won’t update.

Commands

/tab reload - Reloads the configuration file, groups.json and players.json, along with updating/refreshing the tab list of all players currently online.

Permissions

tabmanager.use - Allows use of the /tabmanager command, which currently only takes tabmanager reload as arguments.
tabmanager.group.X - Given to each group that you’ve added to the groups.json, with “X” being replaced with the group name in lower case.

Installation

Download the plugin jar and put it into your mods folder.
After loading the plugin for the first time, a default config, groups.json and players.json will be generated.
Edit the configuration(s) to your liking, and then reload them with /tabmanager reload.

Download-1.10
Download-1.12/LATEST

Addons
Versions that require PlaceholderAPI can also use PixelmonPlaceholders to show Pixelmon related statistics to their players such as Player Wins, Losses, W/L ratio and a whole host of others.

Dependencies

Version 1.0.4 for 1.10 has NO dependencies.
Version 2.1.3 for 1.12.2 requires Nucleus and PlaceholderAPI.

Future Plans

Commands for easier in-game editing/adding of players/groups.
Keep up to date with SpongeForge versions.

12 Likes

Does the custom tab also include header/footer for servers using the vanilla tablist?

Not currently, but I can add a section to allow customization of that and update the plugin tomorrow.

Okay, that would be great! Thank you.

This looks great. Thanks!

Decided to just do it tonight so I don’t forget. Version 1.0.3 has support for a custom message on the header/footer. Down the line I’ll most likely edit that so that you can do messages that interchange, but currently it only supports one.

Any plans on separating players per world?
As well as making people in a group show up first or last on the tablist bundled together with others in the same group? ie https://i.gyazo.com/efbafa85828bf9702384f241531fa86c.png

I never had either of those plans, but if they are requested enough I can look into implementing them in the future.
If you can make a suggestion detailing specifically how you’d want it to work on the issues section (Issues · Proxying/TabManager · GitHub) that’d be helpful too so that I can easily check and update progress on it.

I’ve realized in the past a lot of plugins that edit the tab list would break scoreboards in some way. Was wondering how this one works and if it would also?

But hey this is the only one so far that looks amazing and complete. I’d love to use it :smiley:

1 Like

I grab the servers current scoreboard, so as long as whoever is editing it is not generating a new scoreboard and instead they are grabbing the default one that the server creates and editing it, then it’ll work fine. That’s the way it’s supposed to be used by plugins anyways, I’ve tested that with a small vote counter scoreboard shown on the right side of the screen on several servers and it has worked fine.

If there are any issues I can look into them from this end, or try to contact the creator of the plugin that’s misusing scoreboards.

2 Likes

Source? People can be a little wary of installing plugins that don’t have provided source and aren’t vetted by Ore.

Also, does it support /sponge plugins reload?

Uh sure buddy I’ll public the source tomorrow. A lot of people within the community that this was initially created for (Pixelmon Servers) know me already though since I’m a developer for the mod, so installing it shouldn’t be a concern.

I’ll add support for sponge plugins reload, although I’m not sure reloading plugins is ever a good idea. It was something that is/was frowned upon previously in Spigot/Bungeecord/Everything else, but it shouldn’t be too hard to listen for the event and reload the configs. Since it has a built in command it supports private reloading anyways.

I can confirm this works with EasyScoreBoard. :smiley:

Updated to 1.0.4 download here, which supports /sponge plugins reload. (Thanks to pie_flavour for informing me). Source code is also public now at GitHub - Proxying/TabManager: Allows Sponge servers to fully customize their tab lists..

1 Like

How does someone make a second line in the header of the vanilla json file? I would just like to have a space between the header and the players names

Place the \n where ever you want a new line to begin :slight_smile:

It was frowned upon in Bukkit and family because it messed with a lot of setup, registration, loading, etc. and required every plugin to handle it. Sponge is different in that it lets plugins define what a “reload operation” is, and provides a centralized way to activate it. It doesn’t do anything but fire the event, making it safe, unlike Bukkit.

So I changed the “Add Players to Teams” to true in the tabmanager.conf and did /tabs reload, which well, did what it was supposed to do and added players to scoreboard teams but the prefixes/suffixes above players within game only seem to appear for a split second when I first log on, is there an issue with the plugin on that part or is it something on my server that’s causing the issue?

What plugins do you have? If one of them is creating a new scoreboard object every couple of seconds instead of replacing the existing scoreboard then that’ll be the issue.

I actually just realized I forgot I had this on PixelmonGym - PixelmonMod Gym Management [API 7 + Pixelmon 1.12] - #60 by ABkayCkay which caused my issue.