Tab Deco
TabDeco v1.1.0
I have decided to discontinue this plugin due to some reasons. But many developers requested the source, and as promised, you can find the source here: https:github.com/TheCyberBrick/TabDeco/ This means that everyone is allowed to update the plugin and hopefully you'll find someone else that continues this plugin. If you decide to continue and update the plugin, please send me a PM so I can add a link to it on this post, thanks!
The latest download of the plugin (R: TabDeco v1.1.0 for CB 1.5.2-R0.1 Jun 07, 2013) still works for Minecraft 1.6.x!
This plugin allows you to add various information/decoration to the player list. There are multiple options to decorate your menu. The menu can be edited in the config file of the plugin. TabDeco also offers a really easy to use API! It allows you to add new settings that then can be used in the configuration and new sorting systems. The only thing you have to do is to write a class that contains the sorting method/a method that returns the text for the slot.
Features
- UTF-8 Symbol support
- Ingame updating of text (Could be used for time & date)
- World specific player list
- Sorted player list (by time on server, KDR, world name and much more)
- Detailed player information by adding more than 1 slot per player
How to install the plugin
- Download the plugin
- Drag & Drop the plugin in your plugins folder
- Start your server
- Edit the created config.yml file of the plugin
- Restart your server (Important: Do not just reload)
How to configure the plugin
- Important: Size of the list doesn't matter at all. You can also set it up with only one column!
- Adding a new line starting with "-" adds a new object to the player list.
- Do not use space in front of the "-". Use tab instead
- Use the prefix "&" for color codes
- Use "#" at the start of a line to add a comment to the config
- Add "[@]" after the "-" to mark a line as "to be updated"
- Add "[@]" after "[nextslot]" to mark the following text as "to be updated". "[nextslot]" Can only be used for a custom player layout
- For everything else you need to know: Have a look at the example configurations on this page: http:dev.bukkit.org/server-mods/tab-deco/pages/example-configurations/
The configuration explains all the functions.
- Don't use any words longer than 16, otherwise they will be shortened
If you want further explanation, watch this amazing video by VariationVault
Commands
- /td debug - Enables debug mode. Shows useful information in the server log.
Pictures
A little example of what you can do with it. Would be really useful for any PvP Server:
(Remember, it doesn't matter how many slots you have. This plugin works for every number of slots, you just won't have as much space and the configuration might look different)
To-Do-List
- Ping function
- Graphical xp bar
- Different configurations for worlds
Known Bugs
- Possibly conflicts with plugins using the packet "Packet201PlayerInfo"
- Conflicts with plugins using TabAPI
- Currently not compatible with every plugin that uses player.setPlayerListName(name); Will be fixed in the next version
Reporting a bug
Please do not post any bugs in the comment section. Send me a ticket called "Bug report" using the component "Bug report" and fill in all required (*) fields, so I can help you.
Download
Make sure you are downloading the right version. These informations here could be updated before the file is approved by an administrator, the current files might not have all features mentioned on this site yet!
Plugins that use the API
- TabDecoExpansions - A plugin that adds various new settings to TabDeco for other plugins
If you make a plugin that uses my API, feel free to inform me. I'll add it to this list.
API
The API is really easy to use. The only thing you have to do, is to write a function that returns the string for the slot in the tab menu. TabDeco does the rest for you! If you want to learn how to make a plugin using this API, have a look at this. It shows two example plugins which explain everything you need to know to make a plugin using this API. There is a simple one and an advanced one that has a setting with an argument in the configuration (take [rint(x,y)] as an example). The advanced one teaches you how to add a setting which displays the x coordinate of a player that you can add as an argument. In the configuration it looks like this for example: [playerPosX(playername)]. The simple one just shows how you add a setting that shows the player name and the health. The API also allows to write totally custom player list sorters. Here you can find the two example plugins: https://github.com/TheCyberBrick/TabDeco-API-Example
This is my config: http://pastebin.com/tEMGvvA6 I'm getting the error "Internal exception: java.io.IOException: Received string length longer than maximum allowed (25 > 16) Help me, can you fix my config?
@Bobcat00
Nope it's still broken. When someone logs out they get moved to the top and then the whole tab list gets worse and worse per additional person to log in. It's basically unusable atm.
It's also really unstable..
http://puu.sh/3ijjw.jpg
It's supposed to be Player - World - Time, but it just goes crazy.
Config:
http://puu.sh/3ijmd.png
OH and this, every 5 minutes
http://puu.sh/3ijmX.png
UPDATE:
http://puu.sh/3ijq2.jpg
So great.
Please do ping functions soon, like how many players are online and the max amount of players for another server. Im really waiting for it, would be awesome!
@GoF3
If you change he will loose 1 out of 10,000 people. So, yeah..
Please, please, please, use the Vanish API, my vanish-silentjoin/leave, or fakeleave/join aren't hidden in the Tablist, please add this :)
If not, I have to change to another plugin, but I really like this :(
Anything further on this problem? I tried to use Wireshark to capture the client-server data, but Minecraft encrypts the traffic. Doh!
The servers not even accepting the plugin!
Is it possible that you can modify the lifetime? And also an addition to the [world] string could be that you can display the alias from multiverse.
Hopefully it's out soon, looking forward to the data saving feature.
@MoPlants
I'm getting the same error.
@MoPlants
The problem I had with 1.0.0 is that it would leave entries at the top of the tab list when players logged out. Will this be fixed in 1.1.0 (or whatever's next)?
@321DJ_Amos123
Working on it ;)
You can use v1.0.0 if you get this error with v1.1.0, because in v1.0.0 it seems to work.
Getting this issue: Link: http://puu.sh/3beIG.png
@Bobcat00
Ok thanks, I'll compare v1.0.0 and v1.1.0 to find the error
@MoPlants
Oh, I see. I didn't realize the server vs. client interaction regarding the tab list display layout. It looks like you could maybe hook-in to Login Request message and send an inflated count to the client. It would be max players * playerlayout entries + slots entries.
So I would need to set my max players to 63 (20*3 + header line). I have another plugin which allows me to fake-out the max player count, so I could set that to 20, but it doesn't enforce the limit.
Back to the other error I ran into. I set up a config file and ran it with 1.0.0 and it worked. Upgraded the .jar t 1.1.0, and I got the string length error.
@Bobcat00
You can't change the number of columns in the configuration (yet), you have to give the server more slots.
OK, I'm trying v1.0.0 now just to see how it works. Even though I specified three columns (players, health, exp), everything is showing in one column. How is the number of columns configured? My server is set up for 20 slots, so I would want 20 lines with 3 columns.
@Bobcat00
It's stored in a file in the TabDeco folder that contains all the player data from my plugin. You can still get the K/D of the current session by using [localK/D] instead of [globalK/D]
So how are you doing the globalK/D? Are the totals saved somewhere? Because I don't see that in the player .dat files. And the previous versions just did the K/D for the session?
@Bobcat00
That's really strange, I've added a function that shortens the message if it's longer than 16 which means that shouldn't happen. Could you PM me the debug log (turn it on in the config or ingame with /td debug)?