Add player list header / footer API.

This commit is contained in:
Minecrell
2014-09-05 16:52:11 +02:00
committed by Thinkofdeath
parent bc48ab3fb8
commit d6b7157c1c
5 changed files with 103 additions and 0 deletions

View File

@@ -41,8 +41,10 @@ import net.md_5.bungee.protocol.DefinedPacket;
import net.md_5.bungee.protocol.MinecraftDecoder;
import net.md_5.bungee.protocol.MinecraftEncoder;
import net.md_5.bungee.protocol.Protocol;
import net.md_5.bungee.protocol.ProtocolConstants;
import net.md_5.bungee.protocol.packet.Chat;
import net.md_5.bungee.protocol.packet.ClientSettings;
import net.md_5.bungee.protocol.packet.PlayerListHeaderFooter;
import net.md_5.bungee.protocol.packet.PluginMessage;
import net.md_5.bungee.protocol.packet.Kick;
import net.md_5.bungee.protocol.packet.SetCompression;
@@ -469,6 +471,39 @@ public final class UserConnection implements ProxiedPlayer
return ( locale == null && settings != null ) ? locale = Locale.forLanguageTag( settings.getLocale().replaceAll( "_", "-" ) ) : locale;
}
private static final String EMPTY_TEXT = ComponentSerializer.toString( new TextComponent( "" ) );
@Override
public void setTabHeader(BaseComponent header, BaseComponent footer)
{
if ( pendingConnection.getVersion() >= ProtocolConstants.MINECRAFT_SNAPSHOT )
{
unsafe().sendPacket( new PlayerListHeaderFooter(
( header != null ) ? ComponentSerializer.toString( header ) : EMPTY_TEXT,
( footer != null ) ? ComponentSerializer.toString( footer ) : EMPTY_TEXT
) );
}
}
@Override
public void setTabHeader(BaseComponent[] header, BaseComponent[] footer)
{
if ( pendingConnection.getVersion() >= ProtocolConstants.MINECRAFT_SNAPSHOT )
{
unsafe().sendPacket( new PlayerListHeaderFooter(
( header != null ) ? ComponentSerializer.toString( header ) : EMPTY_TEXT,
( footer != null ) ? ComponentSerializer.toString( footer ) : EMPTY_TEXT
) );
}
}
@Override
public void resetTabHeader()
{
// Mojang did not add a way to remove the header / footer completely, we can only set it to empty
setTabHeader( (BaseComponent) null, null );
}
public void setCompressionThreshold(int compressionThreshold)
{
if ( this.compressionThreshold == -1 )