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
@DasMAXimumHD
Woher hast du denn schon die neue Version? Die wurde doch noch gar nicht veröffentlicht :P
Thanks for the update,
i downloaded the File and found the first bug: it's still version 0.0.6 in plugin.yml:D Anyways, the proplem with the api is now away.
sorry for my bad english, i'm from germany
because if i have too much people online will not show all so i need to show only top 10 people or the top 10 people online :p
@ritipinheiro
That's what I said in the last post :P
@ritipinheiro
I can do that (not for this version yet), but why would you only want to show the top 10 and not just fill the rest of the list with players?
and top 10 in tab ? and top 10 online players in kdr some cool features :D i love this plugin :p
Yes but only show in tab the online players in that world its possible?
New version is uploaded, waiting for approval ;)
@ritipinheiro
That's possible too :P
But I meant it can sort the player list alphabetically by world name. Made a new page for example configurations, here you can see what I mean.
@MoPlants
online players per world?
Just finished all sorters and the sorting API is finished too (already got a neat idea for server owners with multiverse). I decided to make some example configurations, the PvP list is part of it. Now I just want to test the plugin and see if there are bugs and then release it
@ritipinheiro
The version with the custom player layout is not public yet. The new version will also include sorting, for example the players are sorted by their KDR, health, level, pretty much whatever you want (also alphabetical). I think I'll upload it today after I improved the API (which then even allows to add totally custom sorting!)
@SynthRack
Same here, in the version you are using it's not totally finished yet ;)
@mbaxter
Oh sure, I wasn't aware of that. Thanks :)
Hi MoPlants,
I would highly suggest migrating your server-touching tasks from async to sync. One example, you schedule an async task that calls refreshTabData which in turn calls replaceAllWords which calls Player.getBedSpawnLocation. This method can cause chunk loading and entity storing which when done async can crash servers.
This plugin is pretty awesome so far, but the [drawplayerhealth] tag isn't working for me. My player layout looks like:
[@][playername][nextslot][@][drawplayerhealth][nextslot][@][lifetime]
...but only returns [drawplayerheal.
Also, would it be possible to have an option that disables console messages? All of the updating is quickly bloating my server.log. It's not a dealbreaker, but it would be nice.
edit - Just saw the note about this plugin not working with spigot. I'm using the latest Spigot build and everything else is working fine so far.
and good plugin m8 best layout tab plugin xd
@MoPlants
can you send that config? or some good configs?
I think that this would be an awesome addition for every PvP server:
Made with such a simple configuration!
I'm currently working on a feature that allows to sort your list, e.g. the player with the best KDR, most health or highest level is on top. I also want to add a function that allows to reflect fields of other plugins, like that you would be able to get values of other plugins without even have an extensions, you'd only have to give the path to the field in the configuration and it would return the value for you.
Fixed the last few bugs of the custom player layout :) Now I'm going to improve the API a bit and then I'll release it!
@DasMAXimumHD
Yeah, I'll think about it. I'm making some progress, the code is already much cleaner and should have a better performance :)
Edit: I'm also finalizing the player layout (will make all the text unique so it also displays if two players have the same K/D for example)
Thanks, that would be nice. Maybe you can publish just an bridge for Bungeecord, which copy the tabdata from a mainserver to the other ones.
@DasMAXimumHD
The packet handling of Bungeecord seems to work totally different (correct me if I'm wrong), and honestly I don't really want to rewrite everything and then have to update multiple versions. Well, since I'm rewriting big parts anyways, I might have a look at bungeecord