Add Tab Completion loosely based on @TheUnnamedDude's work.

This commit is contained in:
md_5
2013-09-15 06:46:10 +10:00
parent 042f47cbb9
commit 29c897c9cf
6 changed files with 102 additions and 2 deletions

View File

@@ -13,6 +13,7 @@ import net.md_5.bungee.protocol.packet.Packet2Handshake;
import net.md_5.bungee.protocol.packet.Packet3Chat;
import net.md_5.bungee.protocol.packet.Packet9Respawn;
import net.md_5.bungee.protocol.packet.PacketC9PlayerListItem;
import net.md_5.bungee.protocol.packet.PacketCBTabComplete;
import net.md_5.bungee.protocol.packet.PacketCCSettings;
import net.md_5.bungee.protocol.packet.PacketCDClientStatus;
import net.md_5.bungee.protocol.packet.PacketCEScoreboardObjective;
@@ -56,6 +57,7 @@ public class Vanilla implements Protocol
classes[0xC9] = PacketC9PlayerListItem.class;
classes[0x2C] = Packet2CEntityProperties.class;
classes[0xCC] = PacketCCSettings.class;
classes[0xCB] = PacketCBTabComplete.class;
classes[0xCD] = PacketCDClientStatus.class;
classes[0xCE] = PacketCEScoreboardObjective.class;
classes[0xCF] = PacketCFScoreboardScore.class;

View File

@@ -74,4 +74,8 @@ public abstract class AbstractPacketHandler
public void handle(PacketFFKick kick) throws Exception
{
}
public void handle(PacketCBTabComplete tabComplete) throws Exception
{
}
}

View File

@@ -0,0 +1,56 @@
package net.md_5.bungee.protocol.packet;
import io.netty.buffer.ByteBuf;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
@Getter
@ToString
@EqualsAndHashCode(callSuper = false)
public class PacketCBTabComplete extends DefinedPacket
{
private String cursor;
private String[] commands;
private PacketCBTabComplete()
{
super( 0xCB );
}
public PacketCBTabComplete(String[] alternatives)
{
this();
commands = alternatives;
}
@Override
public void read(ByteBuf buf)
{
cursor = readString( buf );
}
@Override
public void write(ByteBuf buf)
{
String tab = "";
for ( String alternative : commands )
{
if ( tab.isEmpty() )
{
tab = alternative + " ";
} else
{
tab += "\0" + alternative + " ";
}
}
writeString( tab, buf );
}
@Override
public void handle(AbstractPacketHandler handler) throws Exception
{
handler.handle( this );
}
}