diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/Forge.java b/protocol/src/main/java/net/md_5/bungee/protocol/Forge.java index f25b57f3..a5707e84 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/Forge.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/Forge.java @@ -4,6 +4,7 @@ import io.netty.buffer.ByteBuf; import lombok.Getter; import net.md_5.bungee.protocol.packet.DefinedPacket; import net.md_5.bungee.protocol.packet.forge.Forge1Login; +import net.md_5.bungee.protocol.skip.PacketReader; public class Forge extends Vanilla { @@ -11,9 +12,10 @@ public class Forge extends Vanilla @Getter private static final Forge instance = new Forge(); - + public Forge() { classes[0x01] = Forge1Login.class; + skipper = new PacketReader( this ); // TODO: :( } @Override diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/Vanilla.java b/protocol/src/main/java/net/md_5/bungee/protocol/Vanilla.java index a8c1b573..49c678b8 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/Vanilla.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/Vanilla.java @@ -43,10 +43,10 @@ public class Vanilla implements Protocol @Getter private Constructor[] constructors = new Constructor[ 256 ]; @Getter - private final PacketReader skipper = new PacketReader( this ); + protected PacketReader skipper; /*========================================================================*/ - + public Vanilla() { classes[0x00] = Packet0KeepAlive.class; classes[0x01] = Packet1Login.class; @@ -65,6 +65,7 @@ public class Vanilla implements Protocol classes[0xFD] = PacketFDEncryptionRequest.class; classes[0xFE] = PacketFEPing.class; classes[0xFF] = PacketFFKick.class; + skipper = new PacketReader( this ); } @Override diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/DefinedPacket.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/DefinedPacket.java index 139c24a8..cf81095a 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/DefinedPacket.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/DefinedPacket.java @@ -39,7 +39,7 @@ public abstract class DefinedPacket public void writeArray(byte[] b, ByteBuf buf) { // TODO: Check len - use Guava? - buf.writeByte( b.length ); + buf.writeShort( b.length ); buf.writeBytes( b ); } diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet1Login.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet1Login.java index cbd0b251..d73674fd 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet1Login.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet1Login.java @@ -26,7 +26,7 @@ public class Packet1Login extends DefinedPacket public Packet1Login(int entityId, String levelType, byte gameMode, byte dimension, byte difficulty, byte unused, byte maxPlayers) { - this( entityId, levelType, gameMode, entityId, difficulty, unused, maxPlayers ); + this( entityId, levelType, gameMode, (int) dimension, difficulty, unused, maxPlayers ); } public Packet1Login(int entityId, String levelType, byte gameMode, int dimension, byte difficulty, byte unused, byte maxPlayers) diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketC9PlayerListItem.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketC9PlayerListItem.java index 29c9202b..2426df56 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketC9PlayerListItem.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketC9PlayerListItem.java @@ -13,14 +13,14 @@ public class PacketC9PlayerListItem extends DefinedPacket private String username; private boolean online; - private int ping; + private short ping; private PacketC9PlayerListItem() { super( 0xC9 ); } - public PacketC9PlayerListItem(String username, boolean online, int ping) + public PacketC9PlayerListItem(String username, boolean online, short ping) { super( 0xC9 ); this.username = username; @@ -33,7 +33,7 @@ public class PacketC9PlayerListItem extends DefinedPacket { username = readString( buf ); online = buf.readBoolean(); - ping = buf.readInt(); + ping = buf.readShort(); } @Override @@ -41,7 +41,7 @@ public class PacketC9PlayerListItem extends DefinedPacket { writeString( username, buf ); buf.writeBoolean( online ); - buf.writeInt( ping ); + buf.writeShort(ping ); } @Override diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCCSettings.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCCSettings.java index f5ea7821..83c2d361 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCCSettings.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCCSettings.java @@ -33,7 +33,7 @@ public class PacketCCSettings extends DefinedPacket @Override public void write(ByteBuf buf) { - locale = readString( buf ); + writeString( locale, buf ); buf.writeByte( viewDistance ); buf.writeByte( chatFlags ); buf.writeByte( difficulty ); diff --git a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java index 79b82e9a..970369e7 100644 --- a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java +++ b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java @@ -31,14 +31,12 @@ import net.md_5.bungee.protocol.Forge; import net.md_5.bungee.protocol.packet.DefinedPacket; import net.md_5.bungee.protocol.packet.Packet1Login; import net.md_5.bungee.protocol.packet.Packet9Respawn; -import net.md_5.bungee.protocol.packet.PacketCDClientStatus; import net.md_5.bungee.protocol.packet.PacketCEScoreboardObjective; import net.md_5.bungee.protocol.packet.PacketD1Team; import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; import net.md_5.bungee.protocol.packet.PacketFCEncryptionResponse; import net.md_5.bungee.protocol.packet.PacketFDEncryptionRequest; import net.md_5.bungee.protocol.packet.PacketFFKick; -import net.md_5.bungee.protocol.Vanilla; import net.md_5.bungee.protocol.packet.forge.Forge1Login; @RequiredArgsConstructor @@ -62,7 +60,7 @@ public class ServerConnector extends PacketHandler @Override public void exception(Throwable t) throws Exception { - String message = "Exception Connectiong:" + Util.exception( t ); + String message = "Exception Connecting:" + Util.exception( t ); if ( user.getServer() == null ) { user.disconnect( message ); diff --git a/proxy/src/main/java/net/md_5/bungee/tablist/Global.java b/proxy/src/main/java/net/md_5/bungee/tablist/Global.java index dad53566..e242cc55 100644 --- a/proxy/src/main/java/net/md_5/bungee/tablist/Global.java +++ b/proxy/src/main/java/net/md_5/bungee/tablist/Global.java @@ -20,9 +20,9 @@ public class Global implements TabListHandler UserConnection con = (UserConnection) player; for ( ProxiedPlayer p : ProxyServer.getInstance().getPlayers() ) { - con.sendPacket( new PacketC9PlayerListItem( p.getDisplayName(), true, p.getPing() ) ); + con.sendPacket( new PacketC9PlayerListItem( p.getDisplayName(), true, (short) p.getPing() ) ); } - BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( player.getDisplayName(), true, player.getPing() ) ); + BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( player.getDisplayName(), true, (short) player.getPing() ) ); } @Override @@ -30,7 +30,7 @@ public class Global implements TabListHandler { if ( !sentPings.contains( player ) ) { - BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( player.getDisplayName(), true, player.getPing() ) ); + BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( player.getDisplayName(), true, (short) player.getPing() ) ); sentPings.add( player ); } } @@ -38,7 +38,7 @@ public class Global implements TabListHandler @Override public void onDisconnect(ProxiedPlayer player) { - BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( player.getDisplayName(), false, 9999 ) ); + BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( player.getDisplayName(), false, (short) 9999 ) ); sentPings.remove( player ); } diff --git a/proxy/src/main/java/net/md_5/bungee/tablist/GlobalPing.java b/proxy/src/main/java/net/md_5/bungee/tablist/GlobalPing.java index f17843a5..8aaa0a77 100644 --- a/proxy/src/main/java/net/md_5/bungee/tablist/GlobalPing.java +++ b/proxy/src/main/java/net/md_5/bungee/tablist/GlobalPing.java @@ -25,7 +25,7 @@ public class GlobalPing extends Global int lastPing = lastPings.get( player ); if ( ping - PING_THRESHOLD > lastPing && ping + PING_THRESHOLD < lastPing ) { - BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( player.getDisplayName(), true, ping ) ); + BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( player.getDisplayName(), true, (short) ping ) ); lastPings.put( player, ping ); } } diff --git a/proxy/src/main/java/net/md_5/bungee/tablist/ServerUnique.java b/proxy/src/main/java/net/md_5/bungee/tablist/ServerUnique.java index af9045e9..4b293c45 100644 --- a/proxy/src/main/java/net/md_5/bungee/tablist/ServerUnique.java +++ b/proxy/src/main/java/net/md_5/bungee/tablist/ServerUnique.java @@ -38,7 +38,7 @@ public class ServerUnique implements TabListHandler { for ( String username : usernames ) { - ( (UserConnection) player ).sendPacket( new PacketC9PlayerListItem( username, false, 9999 ) ); + ( (UserConnection) player ).sendPacket( new PacketC9PlayerListItem( username, false, (short) 9999 ) ); } usernames.clear(); }