HomeJavaModsTabListDeluxe (Originally ChatTab) [Abandoned]
TabListDeluxe (Originally ChatTab) [Abandoned]
ModsJava

TabListDeluxe (Originally ChatTab) [Abandoned]

⬇ Download on Spigot
TabListDeluxe v1.6

[​IMG]

This plugin can let you change player name color, prefix and suffix in the TAB list, even beyond original 16-character limit. You may also specify dead player's special format.

This plugin uses Vault to read your chat formatting and Protocollib for packets.

Spoiler: Developers: How do This Plugin Work?
It is just a little trick I discovered with Protocollib. Upon 1.8, clients receive player tab packets in JSON format, and there is no longer a length check of the player name. Changing the players' name in that JSON part will change their appearance in the player list. See this:
Code (Text):

public void onPacketSending(PacketEvent event) {
        if (event.getPacketType() == PacketType.Play.Server.PLAYER_INFO) {
            PacketContainer packet = event.getPacket();
            PlayerInfoAction act = packet.getPlayerInfoAction().read(0);
            if (act == PlayerInfoAction.UPDATE_DISPLAY_NAME || act == PlayerInfoAction.ADD_PLAYER) {
                List<PlayerInfoData> infoList = (List<PlayerInfoData>) packet.getPlayerInfoDataLists().read(0);
                List<PlayerInfoData> newList = new ArrayList<PlayerInfoData>();
                PlayerInfoData pid = (PlayerInfoData) infoList.get(0);
                if (pid.getDisplayName() == null) return;
                Player p = Bukkit.getPlayerExact(pid.getProfile().getName());
                String pname = p.getDisplayName(); // This is the player name string example
                pid.getDisplayName().setJson("{\"text\":\"" + pname + "\"}"); // This is how to set the player name in packet
                for (int i = 0; i < infoList.size(); i++) {
                    pid = (PlayerInfoData) infoList.get(i);
                    newList.add(new PlayerInfoData(pid.getProfile(), pid.getPing(), pid.getGameMode(), pid.getDisplayName()));
                }
                packet.getPlayerInfoDataLists().write(0, newList);
                event.setPacket(packet);
            }
        }
    }
 

Features:

Requirements & How to make it work:
You need those two plugins as dependency:
Vault and Protocollib
This plugin reads your prefix/suffix from vault, which should usually become your player's chat prefix/suffix already.
For instance, if a player "abc" already has a prefix of [ADMIN] on your server, this plugin will simply reads this. See configuration part for more information.
Protocollib is for packet handling.

Configuration:
Code (Text):
# *pre* prefix
# *suf* suffix
# *name* plain player name
# *dname* player's display name (such as essential's /nick name)
# Defines name to display
# There is no length limit of names!
# But seriously don't overdo it.
# Strip means to ignore all color from any sources, except this config itself.
# Remember to use & as a color char

normal: '  *pre**name**suf*  '
normal-strip: false
dead: '  [DEAD] &7*pre**name**suf* '
dead-strip: true
The above code reflects the first image of this post. Notice player "connection_lost" is alive while "YangNiuLoveMe" is dead. Because I used PermissionEX, which hooked into Vault for player prefix and suffix managing, player "connection_lost" has a prefix of [O], which is shown in the tab list too.
Pro Tip: Add an extra space in the beginning of player's list name will make it look much better.

Commands:

Permission:
Suggestions?
I am not so creative. Why not leave a suggestion below? :)

Disclaimer:
More Screenshots:
[​IMG]

Use Permission:
When I have more free time I will make it open source on GitHub.
You are not allowed to redistribute it without my permission. Contact me using PM.

Commands

Plugin details

Read from the plugin's own plugin.yml.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

TabListDeluxe (Originally ChatTab) [Abandoned] is a free Minecraft Java mod. Downloaded 4,300 times (via Spigot). Download it and open it directly in the game.

Explore more