From 4257b81d8c188d4ccfc11879a8e6f316a68cb700 Mon Sep 17 00:00:00 2001 From: md_5 Date: Fri, 11 Oct 2013 18:40:21 +1100 Subject: [PATCH] WIP --- api/pom.xml | 6 - .../bungee/api/connection/Connection.java | 2 +- pom.xml | 12 + .../protocol/AbstractPacketHandler.java | 95 +++++ .../bungee/protocol/BadPacketException.java | 5 + .../md_5/bungee/protocol/DefinedPacket.java | 105 +++++ .../java/net/md_5/bungee/protocol/Forge.java | 33 -- .../java/net/md_5/bungee/protocol/OpCode.java | 7 - .../net/md_5/bungee/protocol/Protocol.java | 76 +++- .../net/md_5/bungee/protocol/Vanilla.java | 382 ------------------ .../bungee/protocol/game/GameProtocol.java | 16 + .../{packet => game}/Packet0KeepAlive.java | 19 +- .../Packet15Settings.java} | 22 +- .../Packet16ClientStatus.java} | 25 +- .../Packet1Login.java} | 35 +- .../Packet2Chat.java} | 27 +- .../Packet3BPlayerListItem.java} | 29 +- .../Packet3DTabComplete.java} | 24 +- .../Packet3EScoreboardObjective.java} | 29 +- .../Packet3FScoreboardScore.java} | 19 +- .../Packet40DisplayScoreboard.java} | 21 +- .../Packet41Team.java} | 23 +- .../Packet42PluginMessage.java} | 29 +- .../Packet43Kick.java} | 29 +- .../Packet7Respawn.java} | 28 +- .../protocol/handshake/HandshakeProtocol.java | 17 + .../protocol/handshake/Packet0Handshake.java | 46 +++ .../bungee/protocol/login/LoginProtocol.java | 17 + .../bungee/protocol/login/Packet0Kick.java | 37 ++ .../Packet1EncryptionResponse.java} | 28 +- .../protocol/login/Packet2LoginSuccess.java | 37 ++ .../packet/AbstractPacketHandler.java | 85 ---- .../bungee/protocol/packet/DefinedPacket.java | 69 ---- .../bungee/protocol/packet/Packet1Login.java | 73 ---- .../packet/Packet2CEntityProperties.java | 47 --- .../protocol/packet/Packet2Handshake.java | 49 --- .../protocol/packet/PacketC8Statistic.java | 41 -- .../packet/PacketFDEncryptionRequest.java | 52 --- .../bungee/protocol/packet/PacketFEPing.java | 36 -- .../bungee/protocol/ping/PingProtocol.java | 16 + .../md_5/bungee/protocol/skip/BulkChunk.java | 16 - .../md_5/bungee/protocol/skip/ByteHeader.java | 24 -- .../bungee/protocol/skip/Instruction.java | 33 -- .../md_5/bungee/protocol/skip/IntHeader.java | 24 -- .../net/md_5/bungee/protocol/skip/Item.java | 18 - .../net/md_5/bungee/protocol/skip/Jump.java | 24 -- .../md_5/bungee/protocol/skip/MetaData.java | 44 -- .../bungee/protocol/skip/OptionalMotion.java | 17 - .../bungee/protocol/skip/OptionalWindow.java | 21 - .../bungee/protocol/skip/PacketReader.java | 74 ---- .../bungee/protocol/skip/ShortHeader.java | 24 -- .../protocol/skip/UnsignedShortByte.java | 14 - .../net/md_5/bungee/protocol/PacketTest.java | 45 --- .../md_5/bungee/protocol/ProtocolTest.java | 14 - proxy/pom.xml | 6 - .../main/java/net/md_5/bungee/BungeeCord.java | 12 +- .../net/md_5/bungee/BungeeServerInfo.java | 6 +- .../java/net/md_5/bungee/EncryptionUtil.java | 4 +- .../java/net/md_5/bungee/PacketConstants.java | 16 +- .../net/md_5/bungee/ServerConnection.java | 10 +- .../java/net/md_5/bungee/ServerConnector.java | 40 +- .../java/net/md_5/bungee/UserConnection.java | 20 +- .../bungee/connection/DownstreamBridge.java | 30 +- .../bungee/connection/InitialHandler.java | 26 +- .../md_5/bungee/connection/PingHandler.java | 4 +- .../bungee/connection/UpstreamBridge.java | 20 +- .../bungee/netty/DefinedPacketEncoder.java | 2 +- .../net/md_5/bungee/netty/PacketDecoder.java | 2 +- .../net/md_5/bungee/netty/PacketHandler.java | 2 +- .../net/md_5/bungee/netty/PacketWrapper.java | 2 +- .../main/java/net/md_5/bungee/tab/Custom.java | 6 +- .../main/java/net/md_5/bungee/tab/Global.java | 10 +- .../java/net/md_5/bungee/tab/GlobalPing.java | 4 +- .../net/md_5/bungee/tab/ServerUnique.java | 4 +- 74 files changed, 745 insertions(+), 1621 deletions(-) create mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/AbstractPacketHandler.java create mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/Forge.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/OpCode.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/Vanilla.java create mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/game/GameProtocol.java rename protocol/src/main/java/net/md_5/bungee/protocol/{packet => game}/Packet0KeepAlive.java (62%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/PacketCCSettings.java => game/Packet15Settings.java} (67%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/PacketCDClientStatus.java => game/Packet16ClientStatus.java} (58%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/forge/Forge1Login.java => game/Packet1Login.java} (57%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/PacketFFKick.java => game/Packet2Chat.java} (59%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/PacketC9PlayerListItem.java => game/Packet3BPlayerListItem.java} (59%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/PacketCBTabComplete.java => game/Packet3DTabComplete.java} (66%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/PacketCEScoreboardObjective.java => game/Packet3EScoreboardObjective.java} (61%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/PacketCFScoreboardScore.java => game/Packet3FScoreboardScore.java} (74%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/PacketD0DisplayScoreboard.java => game/Packet40DisplayScoreboard.java} (64%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/PacketD1Team.java => game/Packet41Team.java} (84%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/PacketFAPluginMessage.java => game/Packet42PluginMessage.java} (69%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/Packet3Chat.java => game/Packet43Kick.java} (57%) rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/Packet9Respawn.java => game/Packet7Respawn.java} (64%) create mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/handshake/HandshakeProtocol.java create mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/handshake/Packet0Handshake.java create mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/login/LoginProtocol.java create mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/login/Packet0Kick.java rename protocol/src/main/java/net/md_5/bungee/protocol/{packet/PacketFCEncryptionResponse.java => login/Packet1EncryptionResponse.java} (57%) create mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/login/Packet2LoginSuccess.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/packet/AbstractPacketHandler.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/packet/DefinedPacket.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet1Login.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2CEntityProperties.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2Handshake.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketC8Statistic.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFDEncryptionRequest.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFEPing.java create mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/ping/PingProtocol.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/BulkChunk.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/ByteHeader.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/Instruction.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/IntHeader.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/Item.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/Jump.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/MetaData.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/OptionalMotion.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/OptionalWindow.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/PacketReader.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/ShortHeader.java delete mode 100644 protocol/src/main/java/net/md_5/bungee/protocol/skip/UnsignedShortByte.java delete mode 100644 protocol/src/test/java/net/md_5/bungee/protocol/PacketTest.java delete mode 100644 protocol/src/test/java/net/md_5/bungee/protocol/ProtocolTest.java diff --git a/api/pom.xml b/api/pom.xml index 1828ce78..54c3345b 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -19,12 +19,6 @@ API implemented by the Elastic Portal Suite - - com.google.guava - guava - 14.0.1 - compile - net.md-5 bungeecord-config diff --git a/api/src/main/java/net/md_5/bungee/api/connection/Connection.java b/api/src/main/java/net/md_5/bungee/api/connection/Connection.java index f0a3f504..2c9cae14 100644 --- a/api/src/main/java/net/md_5/bungee/api/connection/Connection.java +++ b/api/src/main/java/net/md_5/bungee/api/connection/Connection.java @@ -1,7 +1,7 @@ package net.md_5.bungee.api.connection; import java.net.InetSocketAddress; -import net.md_5.bungee.protocol.packet.DefinedPacket; +import net.md_5.bungee.protocol.DefinedPacket; /** * A proxy connection is defined as a connection directly connected to a socket. diff --git a/pom.xml b/pom.xml index 83d018bb..ca95d790 100644 --- a/pom.xml +++ b/pom.xml @@ -73,6 +73,18 @@ 4.11 test + + com.google.guava + guava + 14.0.1 + compile + + + net.sf.trove4j + trove4j + 3.0.3 + compile + org.projectlombok lombok diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/AbstractPacketHandler.java b/protocol/src/main/java/net/md_5/bungee/protocol/AbstractPacketHandler.java new file mode 100644 index 00000000..d9fd51ff --- /dev/null +++ b/protocol/src/main/java/net/md_5/bungee/protocol/AbstractPacketHandler.java @@ -0,0 +1,95 @@ +package net.md_5.bungee.protocol; + +import net.md_5.bungee.protocol.handshake.Packet0Handshake; +import net.md_5.bungee.protocol.login.Packet0Kick; +import net.md_5.bungee.protocol.login.Packet1EncryptionResponse; +import net.md_5.bungee.protocol.login.Packet2LoginSuccess; + +public abstract class AbstractPacketHandler +{ + + /*========================================================================*/ + // Handshake Start + public void handle(Packet0Handshake handshake) throws Exception + { + } + // Handshake End + /*========================================================================*/ + // Game Start + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + + public void handle(Packet0Handshake handshake) throws Exception + { + } + // Game End + /*========================================================================*/ + // Ping Start + // Ping End + /*========================================================================*/ + // Login Start + + public void handle(Packet0Kick kick) throws Exception + { + } + + public void handle(Packet1EncryptionResponse encryptionResponse) throws Exception + { + } + + public void handle(Packet2LoginSuccess loginSuccess) throws Exception + { + } + // Login End + /*========================================================================*/ +} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/BadPacketException.java b/protocol/src/main/java/net/md_5/bungee/protocol/BadPacketException.java index 523aeafc..6c0ef4df 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/BadPacketException.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/BadPacketException.java @@ -7,4 +7,9 @@ public class BadPacketException extends RuntimeException { super( message ); } + + public BadPacketException(String message, Throwable cause) + { + super( message, cause ); + } } diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java b/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java new file mode 100644 index 00000000..c3a034bc --- /dev/null +++ b/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java @@ -0,0 +1,105 @@ +package net.md_5.bungee.protocol; + +import com.google.common.base.Charsets; +import io.netty.buffer.ByteBuf; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +public abstract class DefinedPacket +{ + + public void writeString(String s, ByteBuf buf) + { + // TODO: Check len - use Guava? + byte[] b = s.getBytes( Charsets.UTF_8 ); + writeVarInt( b.length, buf ); + buf.writeBytes( b ); + } + + public String readString(ByteBuf buf) + { + int len = readVarInt( buf ); + byte[] b = new byte[ len ]; + buf.readBytes( b ); + + return new String( b, Charsets.UTF_8 ); + } + + public void writeArray(byte[] b, ByteBuf buf) + { + // TODO: Check len - use Guava? + buf.writeShort( b.length ); + buf.writeBytes( b ); + } + + public byte[] readArray(ByteBuf buf) + { + // TODO: Check len - use Guava? + short len = buf.readShort(); + byte[] ret = new byte[ len ]; + buf.readBytes( ret ); + return ret; + } + + public int readVarInt(ByteBuf input) + { + int out = 0; + int bytes = 0; + byte in; + while ( true ) + { + in = input.readByte(); + + out |= ( in & 0x7F ) << ( bytes++ * 7 ); + + if ( bytes > 32 ) + { + throw new RuntimeException( "VarInt too big" ); + } + + if ( ( in & 0x80 ) != 0x80 ) + { + break; + } + } + + return out; + } + + public void writeVarInt(int value, ByteBuf output) + { + int part; + while ( true ) + { + part = value & 0x7F; + + value >>>= 7; + if ( value != 0 ) + { + part |= 0x80; + } + + output.writeByte( part ); + + if ( value == 0 ) + { + break; + } + } + } + + public abstract void read(ByteBuf buf); + + public abstract void write(ByteBuf buf); + + public abstract void handle(AbstractPacketHandler handler) throws Exception; + + @Override + public abstract boolean equals(Object obj); + + @Override + public abstract int hashCode(); + + @Override + public abstract String toString(); +} 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 deleted file mode 100644 index a5707e84..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/Forge.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.md_5.bungee.protocol; - -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 -{ - - @Getter - private static final Forge instance = new Forge(); - - public Forge() - { - classes[0x01] = Forge1Login.class; - skipper = new PacketReader( this ); // TODO: :( - } - - @Override - public DefinedPacket read(short packetId, ByteBuf buf) - { - int start = buf.readerIndex(); - DefinedPacket packet = read( packetId, buf, this ); - if ( buf.readerIndex() == start ) - { - packet = super.read( packetId, buf ); - } - - return packet; - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/OpCode.java b/protocol/src/main/java/net/md_5/bungee/protocol/OpCode.java deleted file mode 100644 index e201c5c8..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/OpCode.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.md_5.bungee.protocol; - -public enum OpCode -{ - - BOOLEAN, BULK_CHUNK, BYTE, BYTE_INT, DOUBLE, FLOAT, INT, INT_3, INT_BYTE, ITEM, LONG, METADATA, OPTIONAL_MOTION, SHORT, SHORT_BYTE, SHORT_ITEM, STRING, USHORT_BYTE, OPTIONAL_WINDOW -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/Protocol.java b/protocol/src/main/java/net/md_5/bungee/protocol/Protocol.java index 82fbd8e5..fe088e14 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/Protocol.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/Protocol.java @@ -1,20 +1,78 @@ package net.md_5.bungee.protocol; -import io.netty.buffer.ByteBuf; +import gnu.trove.map.TObjectIntMap; +import gnu.trove.map.hash.TObjectIntHashMap; import java.lang.reflect.Constructor; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import net.md_5.bungee.protocol.skip.PacketReader; +import net.md_5.bungee.protocol.handshake.HandshakeProtocol; -public interface Protocol +public class Protocol { - PacketReader getSkipper(); + private static final int MAX_PACKET_ID = 0xFF; + private static final int MAX_PROTOCOLS = 0xF; + /*========================================================================*/ + private static final Protocol[] protocols = new Protocol[ MAX_PROTOCOLS ]; + /*========================================================================*/ + private final TObjectIntMap> packetMap = new TObjectIntHashMap<>( MAX_PACKET_ID ); + private final Class[] packetClasses = new Class[ MAX_PACKET_ID ]; + private final Constructor[] packetConstructors = new Constructor[ MAX_PACKET_ID ]; - DefinedPacket read(short packetId, ByteBuf buf); + static + { - OpCode[][] getOpCodes(); + } - Class[] getClasses(); + public Protocol(int protocolId) + { + } - Constructor[] getConstructors(); + public static Protocol getProtocol(int id) + { + return protocols[id]; + } + + public final DefinedPacket createPacket(int id) + { + if ( id > MAX_PACKET_ID ) + { + throw new BadPacketException( "Packet with id " + id + " outside of range " ); + } + if ( packetConstructors[id] == null ) + { + throw new BadPacketException( "No packet with id " + id ); + } + + try + { + return packetClasses[id].newInstance(); + } catch ( ReflectiveOperationException ex ) + { + throw new BadPacketException( "Could not construct packet with id " + id, ex ); + } + } + + protected final void registerPacket(int id, Class packetClass) + { + try + { + packetConstructors[id] = packetClass.getDeclaredConstructor(); + } catch ( NoSuchMethodException ex ) + { + throw new BadPacketException( "No NoArgsConstructor for packet class " + packetClass ); + } + packetClasses[id] = packetClass; + packetMap.put( packetClass, id ); + } + + protected final void unregisterPacket(int id) + { + packetMap.remove( packetClasses[id] ); + packetClasses[id] = null; + packetConstructors[id] = null; + } + + final int getId(Class packet) + { + return packetMap.get( packet ); + } } 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 deleted file mode 100644 index 3615181d..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/Vanilla.java +++ /dev/null @@ -1,382 +0,0 @@ -package net.md_5.bungee.protocol; - -import io.netty.buffer.ByteBuf; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import lombok.Getter; -import static net.md_5.bungee.protocol.OpCode.*; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import net.md_5.bungee.protocol.packet.Packet0KeepAlive; -import net.md_5.bungee.protocol.packet.Packet1Login; -import net.md_5.bungee.protocol.packet.Packet2CEntityProperties; -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; -import net.md_5.bungee.protocol.packet.PacketCFScoreboardScore; -import net.md_5.bungee.protocol.packet.PacketD0DisplayScoreboard; -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.PacketFEPing; -import net.md_5.bungee.protocol.packet.PacketFFKick; -import net.md_5.bungee.protocol.skip.PacketReader; - -public class Vanilla implements Protocol -{ - - public static final byte PROTOCOL_VERSION = 80; - public static final String GAME_VERSION = "13w39b"; - @Getter - private static final Vanilla instance = new Vanilla(); - /*========================================================================*/ - @Getter - private final OpCode[][] opCodes = new OpCode[ 256 ][]; - @SuppressWarnings("unchecked") - @Getter - protected Class[] classes = new Class[ 256 ]; - @SuppressWarnings("unchecked") - @Getter - private Constructor[] constructors = new Constructor[ 256 ]; - @Getter - protected PacketReader skipper; - /*========================================================================*/ - - public Vanilla() - { - classes[0x00] = Packet0KeepAlive.class; - classes[0x01] = Packet1Login.class; - classes[0x02] = Packet2Handshake.class; - classes[0x03] = Packet3Chat.class; - classes[0x09] = Packet9Respawn.class; - 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; - classes[0xD0] = PacketD0DisplayScoreboard.class; - classes[0xD1] = PacketD1Team.class; - classes[0xFA] = PacketFAPluginMessage.class; - classes[0xFC] = PacketFCEncryptionResponse.class; - classes[0xFD] = PacketFDEncryptionRequest.class; - classes[0xFE] = PacketFEPing.class; - classes[0xFF] = PacketFFKick.class; - skipper = new PacketReader( this ); - } - - @Override - public DefinedPacket read(short packetId, ByteBuf buf) - { - int start = buf.readerIndex(); - DefinedPacket packet = read( packetId, buf, this ); - if ( buf.readerIndex() == start ) - { - throw new BadPacketException( "Unknown packet id " + packetId ); - } - return packet; - } - - public static DefinedPacket read(short id, ByteBuf buf, Protocol protocol) - { - DefinedPacket packet = packet( id, protocol ); - if ( packet != null ) - { - packet.read( buf ); - return packet; - } - protocol.getSkipper().tryRead( id, buf ); - return null; - } - - public static DefinedPacket packet(short id, Protocol protocol) - { - DefinedPacket ret = null; - Class clazz = protocol.getClasses()[id]; - - if ( clazz != null ) - { - try - { - Constructor constructor = protocol.getConstructors()[id]; - if ( constructor == null ) - { - constructor = clazz.getDeclaredConstructor(); - constructor.setAccessible( true ); - protocol.getConstructors()[id] = constructor; - } - - if ( constructor != null ) - { - ret = constructor.newInstance(); - } - } catch ( NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex ) - { - } - } - - return ret; - } - - - { - opCodes[0x04] = new OpCode[] - { - LONG, LONG - }; - opCodes[0x05] = new OpCode[] - { - INT, SHORT, ITEM - }; - opCodes[0x06] = new OpCode[] - { - INT, INT, INT - }; - opCodes[0x07] = new OpCode[] - { - INT, INT, BOOLEAN - }; - opCodes[0x08] = new OpCode[] - { - FLOAT, SHORT, FLOAT - }; - opCodes[0x0A] = new OpCode[] - { - BOOLEAN - }; - opCodes[0x0B] = new OpCode[] - { - DOUBLE, DOUBLE, DOUBLE, DOUBLE, BOOLEAN - }; - opCodes[0x0C] = new OpCode[] - { - FLOAT, FLOAT, BOOLEAN - }; - opCodes[0x0D] = new OpCode[] - { - DOUBLE, DOUBLE, DOUBLE, DOUBLE, FLOAT, FLOAT, BOOLEAN - }; - opCodes[0x0E] = new OpCode[] - { - BYTE, INT, BYTE, INT, BYTE - }; - opCodes[0x0F] = new OpCode[] - { - INT, BYTE, INT, BYTE, ITEM, BYTE, BYTE, BYTE - }; - opCodes[0x10] = new OpCode[] - { - SHORT - }; - opCodes[0x11] = new OpCode[] - { - INT, BYTE, INT, BYTE, INT - }; - opCodes[0x12] = new OpCode[] - { - INT, BYTE - }; - opCodes[0x13] = new OpCode[] - { - INT, BYTE, INT - }; - opCodes[0x14] = new OpCode[] - { - INT, STRING, STRING, INT, INT, INT, BYTE, BYTE, SHORT, METADATA - }; - opCodes[0x16] = new OpCode[] - { - INT, INT - }; - opCodes[0x17] = new OpCode[] - { - INT, BYTE, INT, INT, INT, BYTE, BYTE, OPTIONAL_MOTION - }; - opCodes[0x18] = new OpCode[] - { - INT, BYTE, INT, INT, INT, BYTE, BYTE, BYTE, SHORT, SHORT, SHORT, METADATA - }; - opCodes[0x19] = new OpCode[] - { - INT, STRING, INT, INT, INT, INT - }; - opCodes[0x1A] = new OpCode[] - { - INT, INT, INT, INT, SHORT - }; - opCodes[0x1B] = new OpCode[] - { - FLOAT, FLOAT, BOOLEAN, BOOLEAN - }; - opCodes[0x1C] = new OpCode[] - { - INT, SHORT, SHORT, SHORT - }; - opCodes[0x1D] = new OpCode[] - { - BYTE_INT - }; - opCodes[0x1E] = new OpCode[] - { - INT - }; - opCodes[0x1F] = new OpCode[] - { - INT, BYTE, BYTE, BYTE - }; - opCodes[0x20] = new OpCode[] - { - INT, BYTE, BYTE - }; - opCodes[0x21] = new OpCode[] - { - INT, BYTE, BYTE, BYTE, BYTE, BYTE - }; - opCodes[0x22] = new OpCode[] - { - INT, INT, INT, INT, BYTE, BYTE - }; - opCodes[0x23] = new OpCode[] - { - INT, BYTE - }; - opCodes[0x26] = new OpCode[] - { - INT, BYTE - }; - opCodes[0x27] = new OpCode[] - { - INT, INT, BOOLEAN - }; - opCodes[0x28] = new OpCode[] - { - INT, METADATA - }; - opCodes[0x29] = new OpCode[] - { - INT, BYTE, BYTE, SHORT - }; - opCodes[0x2A] = new OpCode[] - { - INT, BYTE - }; - opCodes[0x2B] = new OpCode[] - { - FLOAT, SHORT, SHORT - }; - opCodes[0x33] = new OpCode[] - { - INT, INT, BOOLEAN, SHORT, SHORT, INT_BYTE - }; - opCodes[0x34] = new OpCode[] - { - INT, INT, SHORT, INT_BYTE - }; - opCodes[0x35] = new OpCode[] - { - INT, BYTE, INT, SHORT, BYTE - }; - opCodes[0x36] = new OpCode[] - { - INT, SHORT, INT, BYTE, BYTE, SHORT - }; - opCodes[0x37] = new OpCode[] - { - INT, INT, INT, INT, BYTE - }; - opCodes[0x38] = new OpCode[] - { - BULK_CHUNK - }; - opCodes[0x3C] = new OpCode[] - { - DOUBLE, DOUBLE, DOUBLE, FLOAT, INT_3, FLOAT, FLOAT, FLOAT - }; - opCodes[0x3D] = new OpCode[] - { - INT, INT, BYTE, INT, INT, BOOLEAN - }; - opCodes[0x3E] = new OpCode[] - { - STRING, INT, INT, INT, FLOAT, BYTE, BYTE - }; - opCodes[0x3F] = new OpCode[] - { - STRING, FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, INT - }; - opCodes[0x46] = new OpCode[] - { - BYTE, FLOAT - }; - opCodes[0x47] = new OpCode[] - { - INT, BYTE, INT, INT, INT - }; - opCodes[0x64] = new OpCode[] - { - OPTIONAL_WINDOW - }; - opCodes[0x65] = new OpCode[] - { - BYTE - }; - opCodes[0x66] = new OpCode[] - { - BYTE, SHORT, BYTE, SHORT, BOOLEAN, ITEM - }; - opCodes[0x67] = new OpCode[] - { - BYTE, SHORT, ITEM - }; - opCodes[0x68] = new OpCode[] - { - BYTE, SHORT_ITEM - }; - opCodes[0x69] = new OpCode[] - { - BYTE, SHORT, SHORT - }; - opCodes[0x6A] = new OpCode[] - { - BYTE, SHORT, BOOLEAN - }; - opCodes[0x6B] = new OpCode[] - { - SHORT, ITEM - }; - opCodes[0x6C] = new OpCode[] - { - BYTE, BYTE - }; - opCodes[0x82] = new OpCode[] - { - INT, SHORT, INT, STRING, STRING, STRING, STRING - }; - opCodes[0x83] = new OpCode[] - { - SHORT, SHORT, USHORT_BYTE - }; - opCodes[0x84] = new OpCode[] - { - INT, SHORT, INT, BYTE, SHORT_BYTE - }; - opCodes[0x85] = new OpCode[] - { - BYTE, INT, INT, INT - }; - opCodes[0xC3] = new OpCode[] - { - SHORT, SHORT, INT_BYTE - }; - opCodes[0xCA] = new OpCode[] - { - BYTE, FLOAT, FLOAT - }; - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/game/GameProtocol.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/GameProtocol.java new file mode 100644 index 00000000..8ee68642 --- /dev/null +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/GameProtocol.java @@ -0,0 +1,16 @@ +package net.md_5.bungee.protocol.game; + +import lombok.Getter; +import net.md_5.bungee.protocol.Protocol; + +public class GameProtocol extends Protocol +{ + + @Getter + private static final GameProtocol instance = new GameProtocol(); + + private GameProtocol() + { + super( 0 ); + } +} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet0KeepAlive.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet0KeepAlive.java similarity index 62% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet0KeepAlive.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet0KeepAlive.java index 9afdcb38..d7a1adee 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet0KeepAlive.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet0KeepAlive.java @@ -1,23 +1,22 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.ToString; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@Getter -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) public class Packet0KeepAlive extends DefinedPacket { private int randomId; - private Packet0KeepAlive() - { - super( 0x00 ); - } - @Override public void read(ByteBuf buf) { 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/game/Packet15Settings.java similarity index 67% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCCSettings.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet15Settings.java index 83c2d361..ba852647 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCCSettings.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet15Settings.java @@ -1,31 +1,34 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.ToString; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class PacketCCSettings extends DefinedPacket +public class Packet15Settings extends DefinedPacket { private String locale; private byte viewDistance; private byte chatFlags; + private boolean unknown; private byte difficulty; private boolean showCape; - private PacketCCSettings() - { - super( 0xCC ); - } - @Override public void read(ByteBuf buf) { locale = readString( buf ); viewDistance = buf.readByte(); chatFlags = buf.readByte(); + unknown = buf.readBoolean(); difficulty = buf.readByte(); showCape = buf.readBoolean(); } @@ -36,6 +39,7 @@ public class PacketCCSettings extends DefinedPacket writeString( locale, buf ); buf.writeByte( viewDistance ); buf.writeByte( chatFlags ); + buf.writeBoolean( unknown ); buf.writeByte( difficulty ); buf.writeBoolean( showCape ); } diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCDClientStatus.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet16ClientStatus.java similarity index 58% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCDClientStatus.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet16ClientStatus.java index ff2d7c18..ce71376f 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCDClientStatus.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet16ClientStatus.java @@ -1,27 +1,22 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.ToString; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class PacketCDClientStatus extends DefinedPacket +public class Packet16ClientStatus extends DefinedPacket { private byte payload; - private PacketCDClientStatus() - { - super( 0xCD ); - } - - public PacketCDClientStatus(byte payload) - { - this(); - this.payload = payload; - } - @Override public void read(ByteBuf buf) { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/forge/Forge1Login.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet1Login.java similarity index 57% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/forge/Forge1Login.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet1Login.java index 96e12d2d..3ce6a546 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/forge/Forge1Login.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet1Login.java @@ -1,24 +1,29 @@ -package net.md_5.bungee.protocol.packet.forge; +package net.md_5.bungee.protocol.game; -import net.md_5.bungee.protocol.packet.*; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.ToString; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class Forge1Login extends Packet1Login +public class Packet1Login extends DefinedPacket { - private Forge1Login() - { - super(); - } - - public Forge1Login(int entityId, String levelType, byte gameMode, int dimension, byte difficulty, byte unused, byte maxPlayers) - { - super( entityId, levelType, gameMode, dimension, difficulty, unused, maxPlayers ); - } + private int entityId; + private String levelType; + private byte gameMode; + private int dimension; + private byte difficulty; + private byte unused; + private byte maxPlayers; @Override public void read(ByteBuf buf) @@ -26,7 +31,7 @@ public class Forge1Login extends Packet1Login entityId = buf.readInt(); levelType = readString( buf ); gameMode = buf.readByte(); - dimension = buf.readInt(); + dimension = buf.readByte(); difficulty = buf.readByte(); unused = buf.readByte(); maxPlayers = buf.readByte(); @@ -38,7 +43,7 @@ public class Forge1Login extends Packet1Login buf.writeInt( entityId ); writeString( levelType, buf ); buf.writeByte( gameMode ); - buf.writeInt( dimension ); + buf.writeByte( dimension ); buf.writeByte( difficulty ); buf.writeByte( unused ); buf.writeByte( maxPlayers ); diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFFKick.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet2Chat.java similarity index 59% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFFKick.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet2Chat.java index 54923cee..152ee301 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFFKick.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet2Chat.java @@ -1,29 +1,22 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.ToString; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@Getter -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class PacketFFKick extends DefinedPacket +public class Packet2Chat extends DefinedPacket { private String message; - private PacketFFKick() - { - super( 0xFF ); - } - - public PacketFFKick(String message) - { - this(); - this.message = message; - } - @Override public void read(ByteBuf buf) { 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/game/Packet3BPlayerListItem.java similarity index 59% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketC9PlayerListItem.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet3BPlayerListItem.java index 9fbfaf7d..e5e7d78b 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketC9PlayerListItem.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet3BPlayerListItem.java @@ -1,33 +1,24 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.ToString; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@Getter -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class PacketC9PlayerListItem extends DefinedPacket +public class Packet3BPlayerListItem extends DefinedPacket { private String username; private boolean online; private short ping; - private PacketC9PlayerListItem() - { - super( 0xC9 ); - } - - public PacketC9PlayerListItem(String username, boolean online, short ping) - { - super( 0xC9 ); - this.username = username; - this.online = online; - this.ping = ping; - } - @Override public void read(ByteBuf buf) { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCBTabComplete.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet3DTabComplete.java similarity index 66% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCBTabComplete.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet3DTabComplete.java index 01df2ff4..0474d566 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCBTabComplete.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet3DTabComplete.java @@ -1,27 +1,25 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.ToString; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@Getter -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class PacketCBTabComplete extends DefinedPacket +public class Packet3DTabComplete extends DefinedPacket { private String cursor; private String[] commands; - private PacketCBTabComplete() + public Packet3DTabComplete(String[] alternatives) { - super( 0xCB ); - } - - public PacketCBTabComplete(String[] alternatives) - { - this(); commands = alternatives; } diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCEScoreboardObjective.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet3EScoreboardObjective.java similarity index 61% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCEScoreboardObjective.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet3EScoreboardObjective.java index db5d6033..aedaeab0 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCEScoreboardObjective.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet3EScoreboardObjective.java @@ -1,14 +1,18 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.ToString; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@Getter -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class PacketCEScoreboardObjective extends DefinedPacket +public class Packet3EScoreboardObjective extends DefinedPacket { private String name; @@ -18,19 +22,6 @@ public class PacketCEScoreboardObjective extends DefinedPacket */ private byte action; - private PacketCEScoreboardObjective() - { - super( 0xCE ); - } - - public PacketCEScoreboardObjective(String name, String text, byte action) - { - this(); - this.name = name; - this.text = text; - this.action = action; - } - @Override public void read(ByteBuf buf) { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCFScoreboardScore.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet3FScoreboardScore.java similarity index 74% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCFScoreboardScore.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet3FScoreboardScore.java index e55efa1e..c4a7fe12 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketCFScoreboardScore.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet3FScoreboardScore.java @@ -1,14 +1,20 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.ToString; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@Getter -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class PacketCFScoreboardScore extends DefinedPacket +public class Packet3FScoreboardScore extends DefinedPacket { private String itemName; @@ -19,11 +25,6 @@ public class PacketCFScoreboardScore extends DefinedPacket private String scoreName; private int value; - private PacketCFScoreboardScore() - { - super( 0xCF ); - } - @Override public void read(ByteBuf buf) { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketD0DisplayScoreboard.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet40DisplayScoreboard.java similarity index 64% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketD0DisplayScoreboard.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet40DisplayScoreboard.java index de729f17..caba6d91 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketD0DisplayScoreboard.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet40DisplayScoreboard.java @@ -1,14 +1,18 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.ToString; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@Getter -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class PacketD0DisplayScoreboard extends DefinedPacket +public class Packet40DisplayScoreboard extends DefinedPacket { /** @@ -17,11 +21,6 @@ public class PacketD0DisplayScoreboard extends DefinedPacket private byte position; private String name; - private PacketD0DisplayScoreboard() - { - super( 0xD0 ); - } - @Override public void read(ByteBuf buf) { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketD1Team.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet41Team.java similarity index 84% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketD1Team.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet41Team.java index 69bf3771..50ababc1 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketD1Team.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet41Team.java @@ -1,14 +1,18 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.ToString; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@Getter -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class PacketD1Team extends DefinedPacket +public class Packet41Team extends DefinedPacket { private String name; @@ -23,17 +27,12 @@ public class PacketD1Team extends DefinedPacket private short playerCount; private String[] players; - private PacketD1Team() - { - super( 0xD1 ); - } - /** * Packet to destroy a team. * * @param name */ - public PacketD1Team(String name) + public Packet41Team(String name) { this(); this.name = name; diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFAPluginMessage.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet42PluginMessage.java similarity index 69% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFAPluginMessage.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet42PluginMessage.java index d2eef89b..41a5210f 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFAPluginMessage.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet42PluginMessage.java @@ -1,37 +1,28 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import java.io.ByteArrayInputStream; import java.io.DataInput; import java.io.DataInputStream; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.ToString; +import lombok.NoArgsConstructor; import net.md_5.bungee.protocol.MinecraftInput; -import net.md_5.bungee.protocol.MinecraftOutput; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@Getter -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class PacketFAPluginMessage extends DefinedPacket +public class Packet42PluginMessage extends DefinedPacket { private String tag; private byte[] data; - private PacketFAPluginMessage() - { - super( 0xFA ); - } - - public PacketFAPluginMessage(String tag, byte[] data) - { - this(); - this.tag = tag; - this.data = data; - } - @Override public void read(ByteBuf buf) { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet3Chat.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet43Kick.java similarity index 57% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet3Chat.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet43Kick.java index 44a60738..58a40a44 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet3Chat.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet43Kick.java @@ -1,31 +1,22 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@Getter -@Setter -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class Packet3Chat extends DefinedPacket +public class Packet43Kick extends DefinedPacket { private String message; - private Packet3Chat() - { - super( 0x03 ); - } - - public Packet3Chat(String message) - { - this(); - this.message = message; - } - @Override public void read(ByteBuf buf) { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet9Respawn.java b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet7Respawn.java similarity index 64% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet9Respawn.java rename to protocol/src/main/java/net/md_5/bungee/protocol/game/Packet7Respawn.java index 3e916cbc..32c8ee7a 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet9Respawn.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/game/Packet7Respawn.java @@ -1,12 +1,19 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.game; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import lombok.ToString; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class Packet9Respawn extends DefinedPacket +public class Packet7Respawn extends DefinedPacket { private int dimension; @@ -15,21 +22,6 @@ public class Packet9Respawn extends DefinedPacket private short worldHeight; private String levelType; - private Packet9Respawn() - { - super( 0x09 ); - } - - public Packet9Respawn(int dimension, byte difficulty, byte gameMode, short worldHeight, String levelType) - { - this(); - this.dimension = dimension; - this.difficulty = difficulty; - this.gameMode = gameMode; - this.worldHeight = worldHeight; - this.levelType = levelType; - } - @Override public void read(ByteBuf buf) { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/handshake/HandshakeProtocol.java b/protocol/src/main/java/net/md_5/bungee/protocol/handshake/HandshakeProtocol.java new file mode 100644 index 00000000..93877984 --- /dev/null +++ b/protocol/src/main/java/net/md_5/bungee/protocol/handshake/HandshakeProtocol.java @@ -0,0 +1,17 @@ +package net.md_5.bungee.protocol.handshake; + +import lombok.Getter; +import net.md_5.bungee.protocol.Protocol; + +public class HandshakeProtocol extends Protocol +{ + + @Getter + private static final HandshakeProtocol instance = new HandshakeProtocol(); + + private HandshakeProtocol() + { + super( 0xF ); + registerPacket( 0, Packet0Handshake.class ); + } +} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/handshake/Packet0Handshake.java b/protocol/src/main/java/net/md_5/bungee/protocol/handshake/Packet0Handshake.java new file mode 100644 index 00000000..8a9a324e --- /dev/null +++ b/protocol/src/main/java/net/md_5/bungee/protocol/handshake/Packet0Handshake.java @@ -0,0 +1,46 @@ +package net.md_5.bungee.protocol.handshake; + +import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.DefinedPacket; +import net.md_5.bungee.protocol.AbstractPacketHandler; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +public class Packet0Handshake extends DefinedPacket +{ + + private int protocolVersion; + private String serverAddress; + private int serverPort; + private int requestedProtocol; + + @Override + public void read(ByteBuf buf) + { + protocolVersion = readVarInt( buf ); + serverAddress = readString( buf ); + serverPort = readVarInt( buf ); + requestedProtocol = readVarInt( buf ); + } + + @Override + public void write(ByteBuf buf) + { + writeVarInt( protocolVersion, buf ); + writeString( serverAddress, buf ); + writeVarInt( serverPort, buf ); + writeVarInt( requestedProtocol, buf ); + } + + @Override + public void handle(AbstractPacketHandler handler) throws Exception + { + handler.handle( this ); + } +} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/login/LoginProtocol.java b/protocol/src/main/java/net/md_5/bungee/protocol/login/LoginProtocol.java new file mode 100644 index 00000000..59794e5d --- /dev/null +++ b/protocol/src/main/java/net/md_5/bungee/protocol/login/LoginProtocol.java @@ -0,0 +1,17 @@ +package net.md_5.bungee.protocol.login; + +import net.md_5.bungee.protocol.ping.*; +import lombok.Getter; +import net.md_5.bungee.protocol.Protocol; + +public class LoginProtocol extends Protocol +{ + + @Getter + private static final LoginProtocol instance = new LoginProtocol(); + + private LoginProtocol() + { + super( 2 ); + } +} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/login/Packet0Kick.java b/protocol/src/main/java/net/md_5/bungee/protocol/login/Packet0Kick.java new file mode 100644 index 00000000..0d18e2b2 --- /dev/null +++ b/protocol/src/main/java/net/md_5/bungee/protocol/login/Packet0Kick.java @@ -0,0 +1,37 @@ +package net.md_5.bungee.protocol.login; + +import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.DefinedPacket; +import net.md_5.bungee.protocol.AbstractPacketHandler; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +public class Packet0Kick extends DefinedPacket +{ + + private String message; + + @Override + public void read(ByteBuf buf) + { + message = readString( buf ); + } + + @Override + public void write(ByteBuf buf) + { + writeString( message, buf ); + } + + @Override + public void handle(AbstractPacketHandler handler) throws Exception + { + handler.handle( this ); + } +} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFCEncryptionResponse.java b/protocol/src/main/java/net/md_5/bungee/protocol/login/Packet1EncryptionResponse.java similarity index 57% rename from protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFCEncryptionResponse.java rename to protocol/src/main/java/net/md_5/bungee/protocol/login/Packet1EncryptionResponse.java index 2f484622..3f23a4da 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFCEncryptionResponse.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/login/Packet1EncryptionResponse.java @@ -1,31 +1,23 @@ -package net.md_5.bungee.protocol.packet; +package net.md_5.bungee.protocol.login; +import net.md_5.bungee.protocol.DefinedPacket; import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.ToString; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.AbstractPacketHandler; -@Getter -@ToString +@Data +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class PacketFCEncryptionResponse extends DefinedPacket +public class Packet1EncryptionResponse extends DefinedPacket { private byte[] sharedSecret; private byte[] verifyToken; - private PacketFCEncryptionResponse() - { - super( 0xFC ); - } - - public PacketFCEncryptionResponse(byte[] sharedSecret, byte[] verifyToken) - { - this(); - this.sharedSecret = sharedSecret; - this.verifyToken = verifyToken; - } - @Override public void read(ByteBuf buf) { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/login/Packet2LoginSuccess.java b/protocol/src/main/java/net/md_5/bungee/protocol/login/Packet2LoginSuccess.java new file mode 100644 index 00000000..7e0cb0f7 --- /dev/null +++ b/protocol/src/main/java/net/md_5/bungee/protocol/login/Packet2LoginSuccess.java @@ -0,0 +1,37 @@ +package net.md_5.bungee.protocol.login; + +import io.netty.buffer.ByteBuf; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import net.md_5.bungee.protocol.DefinedPacket; +import net.md_5.bungee.protocol.AbstractPacketHandler; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +public class Packet2LoginSuccess extends DefinedPacket +{ + + private String data; + + @Override + public void read(ByteBuf buf) + { + data = readString( buf ); + } + + @Override + public void write(ByteBuf buf) + { + writeString( data, buf ); + } + + @Override + public void handle(AbstractPacketHandler handler) throws Exception + { + handler.handle( this ); + } +} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/AbstractPacketHandler.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/AbstractPacketHandler.java deleted file mode 100644 index b8c984c5..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/AbstractPacketHandler.java +++ /dev/null @@ -1,85 +0,0 @@ -package net.md_5.bungee.protocol.packet; - -public abstract class AbstractPacketHandler -{ - - public void handle(Packet0KeepAlive alive) throws Exception - { - } - - public void handle(Packet1Login login) throws Exception - { - } - - public void handle(Packet2Handshake handshake) throws Exception - { - } - - public void handle(Packet3Chat chat) throws Exception - { - } - - public void handle(Packet9Respawn respawn) throws Exception - { - } - - public void handle(Packet2CEntityProperties properties) throws Exception - { - } - - public void handle(PacketC8Statistic statistic) throws Exception - { - } - - public void handle(PacketC9PlayerListItem playerList) throws Exception - { - } - - public void handle(PacketCCSettings settings) throws Exception - { - } - - public void handle(PacketCDClientStatus clientStatus) throws Exception - { - } - - public void handle(PacketCEScoreboardObjective objective) throws Exception - { - } - - public void handle(PacketCFScoreboardScore score) throws Exception - { - } - - public void handle(PacketD0DisplayScoreboard displayScoreboard) throws Exception - { - } - - public void handle(PacketD1Team team) throws Exception - { - } - - public void handle(PacketFAPluginMessage pluginMessage) throws Exception - { - } - - public void handle(PacketFCEncryptionResponse encryptResponse) throws Exception - { - } - - public void handle(PacketFDEncryptionRequest encryptRequest) throws Exception - { - } - - public void handle(PacketFEPing ping) throws Exception - { - } - - public void handle(PacketFFKick kick) throws Exception - { - } - - public void handle(PacketCBTabComplete tabComplete) throws Exception - { - } -} 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 deleted file mode 100644 index cf81095a..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/DefinedPacket.java +++ /dev/null @@ -1,69 +0,0 @@ -package net.md_5.bungee.protocol.packet; - -import io.netty.buffer.ByteBuf; -import lombok.RequiredArgsConstructor; - -@RequiredArgsConstructor -public abstract class DefinedPacket -{ - - private final int id; - - public final int getId() - { - return id; - } - - public void writeString(String s, ByteBuf buf) - { - // TODO: Check len - use Guava? - buf.writeShort( s.length() ); - for ( char c : s.toCharArray() ) - { - buf.writeChar( c ); - } - } - - public String readString(ByteBuf buf) - { - // TODO: Check len - use Guava? - short len = buf.readShort(); - char[] chars = new char[ len ]; - for ( int i = 0; i < len; i++ ) - { - chars[i] = buf.readChar(); - } - return new String( chars ); - } - - public void writeArray(byte[] b, ByteBuf buf) - { - // TODO: Check len - use Guava? - buf.writeShort( b.length ); - buf.writeBytes( b ); - } - - public byte[] readArray(ByteBuf buf) - { - // TODO: Check len - use Guava? - short len = buf.readShort(); - byte[] ret = new byte[ len ]; - buf.readBytes( ret ); - return ret; - } - - public abstract void read(ByteBuf buf); - - public abstract void write(ByteBuf buf); - - public abstract void handle(AbstractPacketHandler handler) throws Exception; - - @Override - public abstract boolean equals(Object obj); - - @Override - public abstract int hashCode(); - - @Override - public abstract String toString(); -} 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 deleted file mode 100644 index d73674fd..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet1Login.java +++ /dev/null @@ -1,73 +0,0 @@ -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 Packet1Login extends DefinedPacket -{ - - protected int entityId; - protected String levelType; - protected byte gameMode; - protected int dimension; - protected byte difficulty; - protected byte unused; - protected byte maxPlayers; - - protected Packet1Login() - { - super( 0x01 ); - } - - public Packet1Login(int entityId, String levelType, byte gameMode, byte dimension, byte difficulty, byte unused, byte 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) - { - this(); - this.entityId = entityId; - this.levelType = levelType; - this.gameMode = gameMode; - this.dimension = dimension; - this.difficulty = difficulty; - this.unused = unused; - this.maxPlayers = maxPlayers; - } - - @Override - public void read(ByteBuf buf) - { - entityId = buf.readInt(); - levelType = readString( buf ); - gameMode = buf.readByte(); - dimension = buf.readByte(); - difficulty = buf.readByte(); - unused = buf.readByte(); - maxPlayers = buf.readByte(); - } - - @Override - public void write(ByteBuf buf) - { - buf.writeInt( entityId ); - writeString( levelType, buf ); - buf.writeByte( gameMode ); - buf.writeByte( dimension ); - buf.writeByte( difficulty ); - buf.writeByte( unused ); - buf.writeByte( maxPlayers ); - } - - @Override - public void handle(AbstractPacketHandler handler) throws Exception - { - handler.handle( this ); - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2CEntityProperties.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2CEntityProperties.java deleted file mode 100644 index a0bd50de..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2CEntityProperties.java +++ /dev/null @@ -1,47 +0,0 @@ -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 Packet2CEntityProperties extends DefinedPacket -{ - - public Packet2CEntityProperties() - { - super( 0x2C ); - } - - @Override - public void read(ByteBuf buf) - { - buf.readInt(); - int recordCount = buf.readInt(); - for ( int i = 0; i < recordCount; i++ ) - { - readString( buf ); - buf.readDouble(); - short size = buf.readShort(); - for ( short s = 0; s < size; s++ ) - { - buf.skipBytes( 25 ); // long, long, double, byte - } - } - } - - @Override - public void write(ByteBuf buf) - { - throw new UnsupportedOperationException(); - } - - @Override - public void handle(AbstractPacketHandler handler) throws Exception - { - handler.handle( this ); - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2Handshake.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2Handshake.java deleted file mode 100644 index af8b059f..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2Handshake.java +++ /dev/null @@ -1,49 +0,0 @@ -package net.md_5.bungee.protocol.packet; - -import io.netty.buffer.ByteBuf; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -@Getter -@Setter -@ToString -@EqualsAndHashCode(callSuper = false) -public class Packet2Handshake extends DefinedPacket -{ - - private byte protocolVersion; - private String username; - private String host; - private int port; - - private Packet2Handshake() - { - super( 0x02 ); - } - - @Override - public void read(ByteBuf buf) - { - protocolVersion = buf.readByte(); - username = readString( buf ); - host = readString( buf ); - port = buf.readInt(); - } - - @Override - public void write(ByteBuf buf) - { - buf.writeByte( protocolVersion ); - writeString( username, buf ); - writeString( host, buf ); - buf.writeInt( port ); - } - - @Override - public void handle(AbstractPacketHandler handler) throws Exception - { - handler.handle( this ); - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketC8Statistic.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketC8Statistic.java deleted file mode 100644 index 61552a8a..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketC8Statistic.java +++ /dev/null @@ -1,41 +0,0 @@ -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 PacketC8Statistic extends DefinedPacket -{ - - public PacketC8Statistic() - { - super( 0xC8 ); - } - - @Override - public void read(ByteBuf buf) - { - int len = buf.readInt(); - for ( int i = 0; i < len; i++ ) - { - readString( buf ); - buf.readInt(); - } - } - - @Override - public void write(ByteBuf buf) - { - throw new UnsupportedOperationException(); - } - - @Override - public void handle(AbstractPacketHandler handler) throws Exception - { - handler.handle( this ); - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFDEncryptionRequest.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFDEncryptionRequest.java deleted file mode 100644 index 278646a0..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFDEncryptionRequest.java +++ /dev/null @@ -1,52 +0,0 @@ -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 PacketFDEncryptionRequest extends DefinedPacket -{ - - private String serverId; - private byte[] publicKey; - private byte[] verifyToken; - - private PacketFDEncryptionRequest() - { - super( 0xFD ); - } - - public PacketFDEncryptionRequest(String serverId, byte[] publicKey, byte[] verifyToken) - { - this(); - this.serverId = serverId; - this.publicKey = publicKey; - this.verifyToken = verifyToken; - } - - @Override - public void read(ByteBuf buf) - { - serverId = readString( buf ); - publicKey = readArray( buf ); - verifyToken = readArray( buf ); - } - - @Override - public void write(ByteBuf buf) - { - writeString( serverId, buf ); - writeArray( publicKey, buf ); - writeArray( verifyToken, buf ); - } - - @Override - public void handle(AbstractPacketHandler handler) throws Exception - { - handler.handle( this ); - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFEPing.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFEPing.java deleted file mode 100644 index b2824c7e..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFEPing.java +++ /dev/null @@ -1,36 +0,0 @@ -package net.md_5.bungee.protocol.packet; - -import io.netty.buffer.ByteBuf; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@ToString -@EqualsAndHashCode(callSuper = false) -public class PacketFEPing extends DefinedPacket -{ - - private byte version; - - private PacketFEPing() - { - super( 0xFE ); - } - - @Override - public void read(ByteBuf buf) - { - version = buf.readByte(); - } - - @Override - public void write(ByteBuf buf) - { - buf.writeByte( version ); - } - - @Override - public void handle(AbstractPacketHandler handler) throws Exception - { - handler.handle( this ); - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/ping/PingProtocol.java b/protocol/src/main/java/net/md_5/bungee/protocol/ping/PingProtocol.java new file mode 100644 index 00000000..5e4b7642 --- /dev/null +++ b/protocol/src/main/java/net/md_5/bungee/protocol/ping/PingProtocol.java @@ -0,0 +1,16 @@ +package net.md_5.bungee.protocol.ping; + +import lombok.Getter; +import net.md_5.bungee.protocol.Protocol; + +public class PingProtocol extends Protocol +{ + + @Getter + private static final PingProtocol instance = new PingProtocol(); + + private PingProtocol() + { + super( 1 ); + } +} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/BulkChunk.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/BulkChunk.java deleted file mode 100644 index 33f03e37..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/BulkChunk.java +++ /dev/null @@ -1,16 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; - -public class BulkChunk extends Instruction -{ - - @Override - void read(ByteBuf in) - { - short count = in.readShort(); - int size = in.readInt(); - in.readBoolean(); - in.skipBytes( size + count * 12 ); - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/ByteHeader.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/ByteHeader.java deleted file mode 100644 index d9f99e02..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/ByteHeader.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; - -class ByteHeader extends Instruction -{ - - private final Instruction child; - - ByteHeader(Instruction child) - { - this.child = child; - } - - @Override - void read(ByteBuf in) - { - byte size = in.readByte(); - for ( byte b = 0; b < size; b++ ) - { - child.read( in ); - } - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/Instruction.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/Instruction.java deleted file mode 100644 index b85feeeb..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/Instruction.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; - -abstract class Instruction -{ - - static final Instruction BOOLEAN = new Jump( 1 ); - static final Instruction BULK_CHUNK = new BulkChunk(); - static final Instruction BYTE = new Jump( 1 ); - // BYTE_INT moved down - static final Instruction DOUBLE = new Jump( 8 ); - static final Instruction FLOAT = new Jump( 4 ); - static final Instruction INT = new Jump( 4 ); - static final Instruction INT_3 = new IntHeader( new Jump( 3 ) ); - static final Instruction INT_BYTE = new IntHeader( BYTE ); - static final Instruction ITEM = new Item(); - static final Instruction LONG = new Jump( 8 ); - static final Instruction METADATA = new MetaData(); - static final Instruction OPTIONAL_MOTION = new OptionalMotion(); - static final Instruction SHORT = new Jump( 2 ); - static final Instruction SHORT_BYTE = new ShortHeader( BYTE ); - static final Instruction SHORT_ITEM = new ShortHeader( ITEM ); - static final Instruction STRING = new ShortHeader( new Jump( 2 ) ); - static final Instruction USHORT_BYTE = new UnsignedShortByte(); - static final Instruction OPTIONAL_WINDOW = new OptionalWindow(); - // Illegal forward references below this line - static final Instruction BYTE_INT = new ByteHeader( INT ); - // Custom instructions - static final Instruction STRING_ARRAY = new ShortHeader( STRING ); - - abstract void read(ByteBuf in); -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/IntHeader.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/IntHeader.java deleted file mode 100644 index 0b87c54e..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/IntHeader.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; - -class IntHeader extends Instruction -{ - - private final Instruction child; - - IntHeader(Instruction child) - { - this.child = child; - } - - @Override - void read(ByteBuf in) - { - int size = in.readInt(); - for ( int i = 0; i < size; i++ ) - { - child.read( in ); - } - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/Item.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/Item.java deleted file mode 100644 index cb632e33..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/Item.java +++ /dev/null @@ -1,18 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; - -class Item extends Instruction -{ - - @Override - void read(ByteBuf in) - { - short type = in.readShort(); - if ( type >= 0 ) - { - in.skipBytes( 3 ); - SHORT_BYTE.read( in ); - } - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/Jump.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/Jump.java deleted file mode 100644 index d7c451ae..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/Jump.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; - -class Jump extends Instruction -{ - - final int len; - - Jump(int len) - { - if ( len < 0 ) - { - throw new IndexOutOfBoundsException(); - } - this.len = len; - } - - @Override - void read(ByteBuf in) - { - in.skipBytes( len ); - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/MetaData.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/MetaData.java deleted file mode 100644 index 929a664f..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/MetaData.java +++ /dev/null @@ -1,44 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; - -class MetaData extends Instruction -{ - - @Override - void read(ByteBuf in) - { - int x = in.readUnsignedByte(); - while ( x != 127 ) - { - int type = x >> 5; - switch ( type ) - { - case 0: - BYTE.read( in ); - break; - case 1: - SHORT.read( in ); - break; - case 2: - INT.read( in ); - break; - case 3: - FLOAT.read( in ); - break; - case 4: - STRING.read( in ); - break; - case 5: - ITEM.read( in ); - break; - case 6: - in.skipBytes( 12 ); // int, int, int - break; - default: - throw new IllegalArgumentException( "Unknown metadata type " + type ); - } - x = in.readUnsignedByte(); - } - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/OptionalMotion.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/OptionalMotion.java deleted file mode 100644 index 45e040fb..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/OptionalMotion.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; - -class OptionalMotion extends Instruction -{ - - @Override - void read(ByteBuf in) - { - int data = in.readInt(); - if ( data > 0 ) - { - in.skipBytes( 6 ); - } - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/OptionalWindow.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/OptionalWindow.java deleted file mode 100644 index 1fc71340..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/OptionalWindow.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; - -public class OptionalWindow extends Instruction -{ - - @Override - void read(ByteBuf in) - { - BYTE.read( in ); - byte type = in.readByte(); - STRING.read( in ); - BYTE.read( in ); - BOOLEAN.read( in ); - if ( type == 11 ) - { - INT.read( in ); - } - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/PacketReader.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/PacketReader.java deleted file mode 100644 index 141b718d..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/PacketReader.java +++ /dev/null @@ -1,74 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; -import java.util.ArrayList; -import java.util.List; -import net.md_5.bungee.protocol.OpCode; -import net.md_5.bungee.protocol.Protocol; - -public class PacketReader -{ - - private final Instruction[][] instructions; - - public PacketReader(Protocol protocol) - { - instructions = new Instruction[ protocol.getOpCodes().length ][]; - for ( int i = 0; i < instructions.length; i++ ) - { - List output = new ArrayList<>(); - - OpCode[] enums = protocol.getOpCodes()[i]; - if ( enums != null ) - { - for ( OpCode struct : enums ) - { - try - { - output.add( (Instruction) Instruction.class.getDeclaredField( struct.name() ).get( null ) ); - } catch ( NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException ex ) - { - throw new UnsupportedOperationException( "No definition for " + struct.name() ); - } - } - - List crushed = new ArrayList<>(); - int nextJumpSize = 0; - for ( Instruction child : output ) - { - if ( child instanceof Jump ) - { - nextJumpSize += ( (Jump) child ).len; - } else - { - if ( nextJumpSize != 0 ) - { - crushed.add( new Jump( nextJumpSize ) ); - } - crushed.add( child ); - nextJumpSize = 0; - } - } - if ( nextJumpSize != 0 ) - { - crushed.add( new Jump( nextJumpSize ) ); - } - - instructions[i] = crushed.toArray( new Instruction[ crushed.size() ] ); - } - } - } - - public void tryRead(short packetId, ByteBuf in) - { - Instruction[] packetDef = instructions[packetId]; - - if ( packetDef != null ) - { - for ( Instruction instruction : packetDef ) - { - instruction.read( in ); - } - } - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/ShortHeader.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/ShortHeader.java deleted file mode 100644 index 6db71894..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/ShortHeader.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; - -class ShortHeader extends Instruction -{ - - private final Instruction child; - - ShortHeader(Instruction child) - { - this.child = child; - } - - @Override - void read(ByteBuf in) - { - short size = in.readShort(); - for ( short s = 0; s < size; s++ ) - { - child.read( in ); - } - } -} diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/UnsignedShortByte.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/UnsignedShortByte.java deleted file mode 100644 index 3ea6ebea..00000000 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/UnsignedShortByte.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.md_5.bungee.protocol.skip; - -import io.netty.buffer.ByteBuf; - -class UnsignedShortByte extends Instruction -{ - - @Override - void read(ByteBuf in) - { - int size = in.readUnsignedShort(); - in.skipBytes( size ); - } -} diff --git a/protocol/src/test/java/net/md_5/bungee/protocol/PacketTest.java b/protocol/src/test/java/net/md_5/bungee/protocol/PacketTest.java deleted file mode 100644 index f1596308..00000000 --- a/protocol/src/test/java/net/md_5/bungee/protocol/PacketTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package net.md_5.bungee.protocol; - -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import net.md_5.bungee.protocol.packet.AbstractPacketHandler; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import org.junit.Assert; -import org.junit.Test; - -public class PacketTest -{ - - @Test - public void testPackets() throws Exception - { - AbstractPacketHandler handler = new AbstractPacketHandler() - { - }; - - for ( short i = 0; i < 256; i++ ) - { - Class clazz = Vanilla.getInstance().getClasses()[ i]; - if ( clazz != null ) - { - Assert.assertTrue( "Packet " + clazz + " is not public", Modifier.isPublic( clazz.getModifiers() ) ); - DefinedPacket packet = Vanilla.packet( i, Vanilla.getInstance() ); - Assert.assertTrue( "Could not create packet with id " + i + " and class " + clazz, packet != null ); - Assert.assertTrue( "Packet with id " + i + " does not have correct class (expected " + clazz + " but got " + packet.getClass(), packet.getClass() == clazz ); - Assert.assertTrue( "Packet " + clazz + " does not report correct id", packet.getId() == i ); - Assert.assertTrue( "Packet " + clazz + " does not have custom hash code", packet.hashCode() != System.identityHashCode( packet ) ); - Assert.assertTrue( "Packet " + clazz + " does not have custom toString", packet.toString().indexOf( '@' ) == -1 ); - // TODO: Enable this test again in v2 - // Assert.assertTrue( "Packet " + clazz + " does not have private no args constructor", Modifier.isPrivate( clazz.getDeclaredConstructor().getModifiers() ) ); - - for ( Field field : clazz.getDeclaredFields() ) - { - // TODO: Enable this test again in v2 - // Assert.assertTrue( "Packet " + clazz + " has non private field " + field, Modifier.isPrivate( field.getModifiers() ) ); - } - - packet.handle( handler ); // Make sure there are no exceptions - } - } - } -} diff --git a/protocol/src/test/java/net/md_5/bungee/protocol/ProtocolTest.java b/protocol/src/test/java/net/md_5/bungee/protocol/ProtocolTest.java deleted file mode 100644 index d9f675ad..00000000 --- a/protocol/src/test/java/net/md_5/bungee/protocol/ProtocolTest.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.md_5.bungee.protocol; - -import org.junit.Assert; -import org.junit.Test; - -public class ProtocolTest -{ - - @Test - public void testProtocol() - { - Assert.assertFalse( "Protocols should have different login packet", Vanilla.getInstance().getClasses()[0x01] == Forge.getInstance().classes[0x01] ); - } -} diff --git a/proxy/pom.xml b/proxy/pom.xml index 91000270..3bee3d90 100644 --- a/proxy/pom.xml +++ b/proxy/pom.xml @@ -59,12 +59,6 @@ ${project.version} compile - - net.sf.trove4j - trove4j - 3.0.3 - compile - mysql mysql-connector-java diff --git a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java index 5afc2016..86c04666 100644 --- a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java +++ b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java @@ -57,9 +57,9 @@ import net.md_5.bungee.command.*; import net.md_5.bungee.config.YamlConfig; import net.md_5.bungee.log.LoggingOutputStream; import net.md_5.bungee.netty.PipelineUtils; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import net.md_5.bungee.protocol.packet.Packet3Chat; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; +import net.md_5.bungee.protocol.DefinedPacket; +import net.md_5.bungee.protocol.game.Packet2Chat; +import net.md_5.bungee.protocol.game.Packet42PluginMessage; import net.md_5.bungee.protocol.Vanilla; import net.md_5.bungee.query.RemoteQuery; import net.md_5.bungee.tab.Custom; @@ -447,9 +447,9 @@ public class BungeeCord extends ProxyServer return Collections.unmodifiableCollection( pluginChannels ); } - public PacketFAPluginMessage registerChannels() + public Packet42PluginMessage registerChannels() { - return new PacketFAPluginMessage( "REGISTER", Util.format( pluginChannels, "\00" ).getBytes() ); + return new Packet42PluginMessage( "REGISTER", Util.format( pluginChannels, "\00" ).getBytes() ); } @Override @@ -482,7 +482,7 @@ public class BungeeCord extends ProxyServer getConsole().sendMessage( message ); // TODO: Here too String encoded = BungeeCord.getInstance().gson.toJson( message ); - broadcast( new Packet3Chat( "{\"text\":" + encoded + "}" ) ); + broadcast( new Packet2Chat( "{\"text\":" + encoded + "}" ) ); } public void addConnection(UserConnection con) diff --git a/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java b/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java index 489b2082..bc0908a1 100644 --- a/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java +++ b/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java @@ -25,8 +25,8 @@ import net.md_5.bungee.api.connection.Server; import net.md_5.bungee.connection.PingHandler; import net.md_5.bungee.netty.HandlerBoss; import net.md_5.bungee.netty.PipelineUtils; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; +import net.md_5.bungee.protocol.DefinedPacket; +import net.md_5.bungee.protocol.game.Packet42PluginMessage; @RequiredArgsConstructor public class BungeeServerInfo implements ServerInfo @@ -97,7 +97,7 @@ public class BungeeServerInfo implements ServerInfo server.sendData( channel, data ); } else { - packetQueue.add( new PacketFAPluginMessage( channel, data ) ); + packetQueue.add( new Packet42PluginMessage( channel, data ) ); } } } diff --git a/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java b/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java index 046a84d2..2432240e 100644 --- a/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java +++ b/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java @@ -15,7 +15,7 @@ import javax.crypto.SecretKey; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import lombok.Getter; -import net.md_5.bungee.protocol.packet.PacketFCEncryptionResponse; +import net.md_5.bungee.protocol.login.Packet1EncryptionResponse; import net.md_5.bungee.protocol.packet.PacketFDEncryptionRequest; /** @@ -49,7 +49,7 @@ public class EncryptionUtil return new PacketFDEncryptionRequest( hash, pubKey, verify ); } - public static SecretKey getSecret(PacketFCEncryptionResponse resp, PacketFDEncryptionRequest request) throws GeneralSecurityException + public static SecretKey getSecret(Packet1EncryptionResponse resp, PacketFDEncryptionRequest request) throws GeneralSecurityException { Cipher cipher = Cipher.getInstance( "RSA" ); cipher.init( Cipher.DECRYPT_MODE, keys.getPrivate() ); diff --git a/proxy/src/main/java/net/md_5/bungee/PacketConstants.java b/proxy/src/main/java/net/md_5/bungee/PacketConstants.java index e63212da..730a24af 100644 --- a/proxy/src/main/java/net/md_5/bungee/PacketConstants.java +++ b/proxy/src/main/java/net/md_5/bungee/PacketConstants.java @@ -1,18 +1,18 @@ package net.md_5.bungee; -import net.md_5.bungee.protocol.packet.Packet9Respawn; -import net.md_5.bungee.protocol.packet.PacketCDClientStatus; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; +import net.md_5.bungee.protocol.game.Packet7Respawn; +import net.md_5.bungee.protocol.game.Packet16ClientStatus; +import net.md_5.bungee.protocol.game.Packet42PluginMessage; public class PacketConstants { - public static final Packet9Respawn DIM1_SWITCH = new Packet9Respawn( (byte) 1, (byte) 0, (byte) 0, (short) 256, "DEFAULT" ); - public static final Packet9Respawn DIM2_SWITCH = new Packet9Respawn( (byte) -1, (byte) 0, (byte) 0, (short) 256, "DEFAULT" ); - public static final PacketCDClientStatus CLIENT_LOGIN = new PacketCDClientStatus( (byte) 0 ); - public static final PacketFAPluginMessage FORGE_MOD_REQUEST = new PacketFAPluginMessage( "FML", new byte[] + public static final Packet7Respawn DIM1_SWITCH = new Packet7Respawn( (byte) 1, (byte) 0, (byte) 0, (short) 256, "DEFAULT" ); + public static final Packet7Respawn DIM2_SWITCH = new Packet7Respawn( (byte) -1, (byte) 0, (byte) 0, (short) 256, "DEFAULT" ); + public static final Packet16ClientStatus CLIENT_LOGIN = new Packet16ClientStatus( (byte) 0 ); + public static final Packet42PluginMessage FORGE_MOD_REQUEST = new Packet42PluginMessage( "FML", new byte[] { 0, 0, 0, 0, 0, 2 } ); - public static final PacketFAPluginMessage I_AM_BUNGEE = new PacketFAPluginMessage( "BungeeCord", new byte[ 0 ] ); + public static final Packet42PluginMessage I_AM_BUNGEE = new Packet42PluginMessage( "BungeeCord", new byte[ 0 ] ); } diff --git a/proxy/src/main/java/net/md_5/bungee/ServerConnection.java b/proxy/src/main/java/net/md_5/bungee/ServerConnection.java index 555b0ff4..92e133d9 100644 --- a/proxy/src/main/java/net/md_5/bungee/ServerConnection.java +++ b/proxy/src/main/java/net/md_5/bungee/ServerConnection.java @@ -7,9 +7,9 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import net.md_5.bungee.api.connection.Server; import net.md_5.bungee.netty.ChannelWrapper; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; -import net.md_5.bungee.protocol.packet.PacketFFKick; +import net.md_5.bungee.protocol.DefinedPacket; +import net.md_5.bungee.protocol.game.Packet42PluginMessage; +import net.md_5.bungee.protocol.game.Packet43Kick; @RequiredArgsConstructor public class ServerConnection implements Server @@ -34,7 +34,7 @@ public class ServerConnection implements Server @Override public void sendData(String channel, byte[] data) { - unsafe().sendPacket( new PacketFAPluginMessage( channel, data ) ); + unsafe().sendPacket( new Packet42PluginMessage( channel, data ) ); } @Override @@ -43,7 +43,7 @@ public class ServerConnection implements Server if ( !ch.isClosed() ) { // TODO: Can we just use a future here? - unsafe().sendPacket( new PacketFFKick( reason ) ); + unsafe().sendPacket( new Packet43Kick( reason ) ); ch.getHandle().eventLoop().schedule( new Runnable() { @Override 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 a410ff5f..f8ac88e2 100644 --- a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java +++ b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java @@ -30,15 +30,15 @@ import net.md_5.bungee.netty.PacketHandler; import net.md_5.bungee.netty.PipelineUtils; import net.md_5.bungee.protocol.Forge; import net.md_5.bungee.protocol.MinecraftOutput; -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.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.DefinedPacket; +import net.md_5.bungee.protocol.game.Packet1Login; +import net.md_5.bungee.protocol.game.Packet7Respawn; +import net.md_5.bungee.protocol.game.Packet3EScoreboardObjective; +import net.md_5.bungee.protocol.game.Packet41Team; +import net.md_5.bungee.protocol.game.Packet42PluginMessage; +import net.md_5.bungee.protocol.login.Packet1EncryptionResponse; import net.md_5.bungee.protocol.packet.PacketFDEncryptionRequest; -import net.md_5.bungee.protocol.packet.PacketFFKick; +import net.md_5.bungee.protocol.game.Packet43Kick; import net.md_5.bungee.protocol.packet.forge.Forge1Login; @RequiredArgsConstructor @@ -81,7 +81,7 @@ public class ServerConnector extends PacketHandler out.writeUTF( "Login" ); out.writeUTF( user.getAddress().getHostString() ); out.writeInt( user.getAddress().getPort() ); - channel.write( new PacketFAPluginMessage( "BungeeCord", out.toByteArray() ) ); + channel.write( new Packet42PluginMessage( "BungeeCord", out.toByteArray() ) ); channel.write( user.getPendingConnection().getHandshake() ); @@ -117,13 +117,13 @@ public class ServerConnector extends PacketHandler } } - for ( PacketFAPluginMessage message : user.getPendingConnection().getRegisterMessages() ) + for ( Packet42PluginMessage message : user.getPendingConnection().getRegisterMessages() ) { ch.write( message ); } if ( !sentMessages ) { - for ( PacketFAPluginMessage message : user.getPendingConnection().getLoginMessages() ) + for ( Packet42PluginMessage message : user.getPendingConnection().getLoginMessages() ) { ch.write( message ); } @@ -157,7 +157,7 @@ public class ServerConnector extends PacketHandler MinecraftOutput out = new MinecraftOutput(); out.writeStringUTF8WithoutLengthHeaderBecauseDinnerboneStuffedUpTheMCBrandPacket( ProxyServer.getInstance().getName() + " (" + ProxyServer.getInstance().getVersion() + ")" ); - user.unsafe().sendPacket( new PacketFAPluginMessage( "MC|Brand", out.toArray() ) ); + user.unsafe().sendPacket( new Packet42PluginMessage( "MC|Brand", out.toArray() ) ); } else { user.getTabList().onServerChange(); @@ -165,18 +165,18 @@ public class ServerConnector extends PacketHandler Scoreboard serverScoreboard = user.getServerSentScoreboard(); for ( Objective objective : serverScoreboard.getObjectives() ) { - user.unsafe().sendPacket( new PacketCEScoreboardObjective( objective.getName(), objective.getValue(), (byte) 1 ) ); + user.unsafe().sendPacket( new Packet3EScoreboardObjective( objective.getName(), objective.getValue(), (byte) 1 ) ); } for ( Team team : serverScoreboard.getTeams() ) { - user.unsafe().sendPacket( new PacketD1Team( team.getName() ) ); + user.unsafe().sendPacket( new Packet41Team( team.getName() ) ); } serverScoreboard.clear(); user.sendDimensionSwitch(); user.setServerEntityId( login.getEntityId() ); - user.unsafe().sendPacket( new Packet9Respawn( login.getDimension(), login.getDifficulty(), login.getGameMode(), (short) 256, login.getLevelType() ) ); + user.unsafe().sendPacket( new Packet7Respawn( login.getDimension(), login.getDifficulty(), login.getGameMode(), (short) 256, login.getLevelType() ) ); // Remove from old servers user.getServer().setObsolete( true ); @@ -222,7 +222,7 @@ public class ServerConnector extends PacketHandler byte[] shared = EncryptionUtil.encrypt( publickey, secretkey.getEncoded() ); byte[] token = EncryptionUtil.encrypt( publickey, encryptRequest.getVerifyToken() ); - ch.write( new PacketFCEncryptionResponse( shared, token ) ); + ch.write( new Packet1EncryptionResponse( shared, token ) ); Cipher encrypt = EncryptionUtil.getCipher( Cipher.ENCRYPT_MODE, secretkey ); ch.addBefore( PipelineUtils.PACKET_DECODE_HANDLER, PipelineUtils.ENCRYPT_HANDLER, new CipherEncoder( encrypt ) ); @@ -235,7 +235,7 @@ public class ServerConnector extends PacketHandler } @Override - public void handle(PacketFCEncryptionResponse encryptResponse) throws Exception + public void handle(Packet1EncryptionResponse encryptResponse) throws Exception { Preconditions.checkState( thisState == State.ENCRYPT_RESPONSE, "Not expecting ENCRYPT_RESPONSE" ); @@ -249,7 +249,7 @@ public class ServerConnector extends PacketHandler } @Override - public void handle(PacketFFKick kick) throws Exception + public void handle(Packet43Kick kick) throws Exception { ServerInfo def = bungee.getServerInfo( user.getPendingConnection().getListener().getFallbackServer() ); if ( Objects.equals( target, def ) ) @@ -274,7 +274,7 @@ public class ServerConnector extends PacketHandler } @Override - public void handle(PacketFAPluginMessage pluginMessage) throws Exception + public void handle(Packet42PluginMessage pluginMessage) throws Exception { if ( pluginMessage.equals( PacketConstants.I_AM_BUNGEE ) ) { @@ -299,7 +299,7 @@ public class ServerConnector extends PacketHandler user.unsafe().sendPacket( pluginMessage ); // We have to forward these to the user, especially with Forge as stuff might break if ( !sentMessages && user.getPendingConnection().getForgeLogin() != null ) { - for ( PacketFAPluginMessage message : user.getPendingConnection().getLoginMessages() ) + for ( Packet42PluginMessage message : user.getPendingConnection().getLoginMessages() ) { ch.write( message ); } diff --git a/proxy/src/main/java/net/md_5/bungee/UserConnection.java b/proxy/src/main/java/net/md_5/bungee/UserConnection.java index 5d39ff7f..37779bda 100644 --- a/proxy/src/main/java/net/md_5/bungee/UserConnection.java +++ b/proxy/src/main/java/net/md_5/bungee/UserConnection.java @@ -32,11 +32,11 @@ import net.md_5.bungee.netty.ChannelWrapper; import net.md_5.bungee.netty.HandlerBoss; import net.md_5.bungee.netty.PacketWrapper; import net.md_5.bungee.netty.PipelineUtils; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import net.md_5.bungee.protocol.packet.Packet3Chat; -import net.md_5.bungee.protocol.packet.PacketCCSettings; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; -import net.md_5.bungee.protocol.packet.PacketFFKick; +import net.md_5.bungee.protocol.DefinedPacket; +import net.md_5.bungee.protocol.game.Packet2Chat; +import net.md_5.bungee.protocol.game.Packet15Settings; +import net.md_5.bungee.protocol.game.Packet42PluginMessage; +import net.md_5.bungee.protocol.game.Packet43Kick; import net.md_5.bungee.util.CaseInsensitiveSet; @RequiredArgsConstructor @@ -88,7 +88,7 @@ public final class UserConnection implements ProxiedPlayer private int serverEntityId; @Getter @Setter - private PacketCCSettings settings; + private Packet15Settings settings; @Getter private final Scoreboard serverSentScoreboard = new Scoreboard(); /*========================================================================*/ @@ -251,7 +251,7 @@ public final class UserConnection implements ProxiedPlayer if ( ch.getHandle().isActive() ) { bungee.getLogger().log( Level.INFO, "[" + getName() + "] disconnected with: " + reason ); - unsafe().sendPacket( new PacketFFKick( reason ) ); + unsafe().sendPacket( new Packet43Kick( reason ) ); ch.close(); if ( server != null ) { @@ -264,7 +264,7 @@ public final class UserConnection implements ProxiedPlayer public void chat(String message) { Preconditions.checkState( server != null, "Not connected to server" ); - server.getCh().write( new Packet3Chat( message ) ); + server.getCh().write( new Packet2Chat( message ) ); } @Override @@ -272,7 +272,7 @@ public final class UserConnection implements ProxiedPlayer { // TODO: Fix this String encoded = BungeeCord.getInstance().gson.toJson( message ); - unsafe().sendPacket( new Packet3Chat( "{\"text\":" + encoded + "}" ) ); + unsafe().sendPacket( new Packet2Chat( "{\"text\":" + encoded + "}" ) ); } @Override @@ -287,7 +287,7 @@ public final class UserConnection implements ProxiedPlayer @Override public void sendData(String channel, byte[] data) { - unsafe().sendPacket( new PacketFAPluginMessage( channel, data ) ); + unsafe().sendPacket( new Packet42PluginMessage( channel, data ) ); } @Override diff --git a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java index 2e9286d8..42ffb09b 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java @@ -22,14 +22,14 @@ import net.md_5.bungee.api.score.Team; import net.md_5.bungee.netty.ChannelWrapper; import net.md_5.bungee.netty.PacketHandler; import net.md_5.bungee.netty.PacketWrapper; -import net.md_5.bungee.protocol.packet.Packet0KeepAlive; -import net.md_5.bungee.protocol.packet.PacketC9PlayerListItem; -import net.md_5.bungee.protocol.packet.PacketCEScoreboardObjective; -import net.md_5.bungee.protocol.packet.PacketCFScoreboardScore; -import net.md_5.bungee.protocol.packet.PacketD0DisplayScoreboard; -import net.md_5.bungee.protocol.packet.PacketD1Team; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; -import net.md_5.bungee.protocol.packet.PacketFFKick; +import net.md_5.bungee.protocol.game.Packet0KeepAlive; +import net.md_5.bungee.protocol.game.Packet3BPlayerListItem; +import net.md_5.bungee.protocol.game.Packet3EScoreboardObjective; +import net.md_5.bungee.protocol.game.Packet3FScoreboardScore; +import net.md_5.bungee.protocol.game.Packet40DisplayScoreboard; +import net.md_5.bungee.protocol.game.Packet41Team; +import net.md_5.bungee.protocol.game.Packet42PluginMessage; +import net.md_5.bungee.protocol.game.Packet43Kick; @RequiredArgsConstructor public class DownstreamBridge extends PacketHandler @@ -88,7 +88,7 @@ public class DownstreamBridge extends PacketHandler } @Override - public void handle(PacketC9PlayerListItem playerList) throws Exception + public void handle(Packet3BPlayerListItem playerList) throws Exception { if ( !con.getTabList().onListUpdate( playerList.getUsername(), playerList.isOnline(), playerList.getPing() ) ) @@ -98,7 +98,7 @@ public class DownstreamBridge extends PacketHandler } @Override - public void handle(PacketCEScoreboardObjective objective) throws Exception + public void handle(Packet3EScoreboardObjective objective) throws Exception { Scoreboard serverScoreboard = con.getServerSentScoreboard(); switch ( objective.getAction() ) @@ -113,7 +113,7 @@ public class DownstreamBridge extends PacketHandler } @Override - public void handle(PacketCFScoreboardScore score) throws Exception + public void handle(Packet3FScoreboardScore score) throws Exception { Scoreboard serverScoreboard = con.getServerSentScoreboard(); switch ( score.getAction() ) @@ -130,7 +130,7 @@ public class DownstreamBridge extends PacketHandler } @Override - public void handle(PacketD0DisplayScoreboard displayScoreboard) throws Exception + public void handle(Packet40DisplayScoreboard displayScoreboard) throws Exception { Scoreboard serverScoreboard = con.getServerSentScoreboard(); serverScoreboard.setName( displayScoreboard.getName() ); @@ -138,7 +138,7 @@ public class DownstreamBridge extends PacketHandler } @Override - public void handle(PacketD1Team team) throws Exception + public void handle(Packet41Team team) throws Exception { Scoreboard serverScoreboard = con.getServerSentScoreboard(); // Remove team and move on @@ -185,7 +185,7 @@ public class DownstreamBridge extends PacketHandler } @Override - public void handle(PacketFAPluginMessage pluginMessage) throws Exception + public void handle(Packet42PluginMessage pluginMessage) throws Exception { DataInput in = pluginMessage.getStream(); PluginMessageEvent event = new PluginMessageEvent( con.getServer(), con, pluginMessage.getTag(), pluginMessage.getData().clone() ); @@ -330,7 +330,7 @@ public class DownstreamBridge extends PacketHandler } @Override - public void handle(PacketFFKick kick) throws Exception + public void handle(Packet43Kick kick) throws Exception { ServerInfo def = bungee.getServerInfo( con.getPendingConnection().getListener().getFallbackServer() ); if ( Objects.equals( server.getInfo(), def ) ) diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java index e885f311..ef793f67 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java @@ -44,15 +44,15 @@ import net.md_5.bungee.netty.PipelineUtils; import net.md_5.bungee.protocol.Forge; import net.md_5.bungee.protocol.MinecraftInput; import net.md_5.bungee.protocol.Vanilla; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import net.md_5.bungee.protocol.packet.Packet1Login; +import net.md_5.bungee.protocol.DefinedPacket; +import net.md_5.bungee.protocol.game.Packet1Login; import net.md_5.bungee.protocol.packet.Packet2Handshake; -import net.md_5.bungee.protocol.packet.PacketCDClientStatus; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; -import net.md_5.bungee.protocol.packet.PacketFCEncryptionResponse; +import net.md_5.bungee.protocol.game.Packet16ClientStatus; +import net.md_5.bungee.protocol.game.Packet42PluginMessage; +import net.md_5.bungee.protocol.login.Packet1EncryptionResponse; import net.md_5.bungee.protocol.packet.PacketFDEncryptionRequest; import net.md_5.bungee.protocol.packet.PacketFEPing; -import net.md_5.bungee.protocol.packet.PacketFFKick; +import net.md_5.bungee.protocol.game.Packet43Kick; import net.md_5.bungee.api.AbstractReconnectHandler; import net.md_5.bungee.api.event.PlayerHandshakeEvent; @@ -70,9 +70,9 @@ public class InitialHandler extends PacketHandler implements PendingConnection private Packet2Handshake handshake; private PacketFDEncryptionRequest request; @Getter - private List loginMessages = new ArrayList<>(); + private List loginMessages = new ArrayList<>(); @Getter - private List registerMessages = new ArrayList<>(); + private List registerMessages = new ArrayList<>(); private State thisState = State.HANDSHAKE; private SecretKey sharedKey; private final Unsafe unsafe = new Unsafe() @@ -110,7 +110,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection } @Override - public void handle(PacketFAPluginMessage pluginMessage) throws Exception + public void handle(Packet42PluginMessage pluginMessage) throws Exception { if ( pluginMessage.getTag().equals( "MC|PingHost" ) ) { @@ -243,7 +243,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection } @Override - public void handle(final PacketFCEncryptionResponse encryptResponse) throws Exception + public void handle(final Packet1EncryptionResponse encryptResponse) throws Exception { Preconditions.checkState( thisState == State.ENCRYPT, "Not expecting ENCRYPT" ); @@ -323,7 +323,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection { if ( ch.getHandle().isActive() ) { - unsafe().sendPacket( new PacketFCEncryptionResponse( new byte[ 0 ], new byte[ 0 ] ) ); + unsafe().sendPacket( new Packet1EncryptionResponse( new byte[ 0 ], new byte[ 0 ] ) ); try { Cipher encrypt = EncryptionUtil.getCipher( Cipher.ENCRYPT_MODE, sharedKey ); @@ -343,7 +343,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection } @Override - public void handle(PacketCDClientStatus clientStatus) throws Exception + public void handle(Packet16ClientStatus clientStatus) throws Exception { Preconditions.checkState( thisState == State.LOGIN, "Not expecting LOGIN" ); @@ -373,7 +373,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection { if ( !ch.isClosed() ) { - unsafe().sendPacket( new PacketFFKick( reason ) ); + unsafe().sendPacket( new Packet43Kick( reason ) ); ch.close(); } } diff --git a/proxy/src/main/java/net/md_5/bungee/connection/PingHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/PingHandler.java index 20b5abef..dfca6b64 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/PingHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/PingHandler.java @@ -8,7 +8,7 @@ import net.md_5.bungee.api.ServerPing; import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.netty.ChannelWrapper; import net.md_5.bungee.netty.PacketHandler; -import net.md_5.bungee.protocol.packet.PacketFFKick; +import net.md_5.bungee.protocol.game.Packet43Kick; @RequiredArgsConstructor public class PingHandler extends PacketHandler @@ -34,7 +34,7 @@ public class PingHandler extends PacketHandler } @Override - public void handle(PacketFFKick kick) throws Exception + public void handle(Packet43Kick kick) throws Exception { String[] split = kick.getMessage().split( "\00" ); ServerPing ping = new ServerPing( Byte.parseByte( split[1] ), split[2], split[3], Integer.parseInt( split[4] ), Integer.parseInt( split[5] ) ); diff --git a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java index d2e5afef..8648d0e6 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java @@ -11,11 +11,11 @@ import net.md_5.bungee.api.event.PluginMessageEvent; import net.md_5.bungee.netty.ChannelWrapper; import net.md_5.bungee.netty.PacketHandler; import net.md_5.bungee.netty.PacketWrapper; -import net.md_5.bungee.protocol.packet.Packet0KeepAlive; -import net.md_5.bungee.protocol.packet.Packet3Chat; -import net.md_5.bungee.protocol.packet.PacketCBTabComplete; -import net.md_5.bungee.protocol.packet.PacketCCSettings; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; +import net.md_5.bungee.protocol.game.Packet0KeepAlive; +import net.md_5.bungee.protocol.game.Packet2Chat; +import net.md_5.bungee.protocol.game.Packet3DTabComplete; +import net.md_5.bungee.protocol.game.Packet15Settings; +import net.md_5.bungee.protocol.game.Packet42PluginMessage; import java.util.ArrayList; import java.util.List; @@ -78,7 +78,7 @@ public class UpstreamBridge extends PacketHandler } @Override - public void handle(Packet3Chat chat) throws Exception + public void handle(Packet2Chat chat) throws Exception { ChatEvent chatEvent = new ChatEvent( con, con.getServer(), chat.getMessage() ); if ( !bungee.getPluginManager().callEvent( chatEvent ).isCancelled() ) @@ -93,7 +93,7 @@ public class UpstreamBridge extends PacketHandler } @Override - public void handle(PacketCBTabComplete tabComplete) throws Exception + public void handle(Packet3DTabComplete tabComplete) throws Exception { if ( tabComplete.getCursor().startsWith( "/" ) ) { @@ -102,20 +102,20 @@ public class UpstreamBridge extends PacketHandler if ( !results.isEmpty() ) { - con.unsafe().sendPacket( new PacketCBTabComplete( results.toArray( new String[ results.size() ] ) ) ); + con.unsafe().sendPacket( new Packet3DTabComplete( results.toArray( new String[ results.size() ] ) ) ); throw new CancelSendSignal(); } } } @Override - public void handle(PacketCCSettings settings) throws Exception + public void handle(Packet15Settings settings) throws Exception { con.setSettings( settings ); } @Override - public void handle(PacketFAPluginMessage pluginMessage) throws Exception + public void handle(Packet42PluginMessage pluginMessage) throws Exception { if ( pluginMessage.getTag().equals( "BungeeCord" ) ) { diff --git a/proxy/src/main/java/net/md_5/bungee/netty/DefinedPacketEncoder.java b/proxy/src/main/java/net/md_5/bungee/netty/DefinedPacketEncoder.java index cfa34503..c5e8b8ff 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/DefinedPacketEncoder.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/DefinedPacketEncoder.java @@ -4,7 +4,7 @@ import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToByteEncoder; -import net.md_5.bungee.protocol.packet.DefinedPacket; +import net.md_5.bungee.protocol.DefinedPacket; @ChannelHandler.Sharable public class DefinedPacketEncoder extends MessageToByteEncoder diff --git a/proxy/src/main/java/net/md_5/bungee/netty/PacketDecoder.java b/proxy/src/main/java/net/md_5/bungee/netty/PacketDecoder.java index 47043da4..99e959aa 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/PacketDecoder.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/PacketDecoder.java @@ -8,7 +8,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; import net.md_5.bungee.protocol.Protocol; -import net.md_5.bungee.protocol.packet.DefinedPacket; +import net.md_5.bungee.protocol.DefinedPacket; import net.md_5.bungee.protocol.skip.PacketReader; /** diff --git a/proxy/src/main/java/net/md_5/bungee/netty/PacketHandler.java b/proxy/src/main/java/net/md_5/bungee/netty/PacketHandler.java index ca4684ff..e5634c92 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/PacketHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/PacketHandler.java @@ -1,6 +1,6 @@ package net.md_5.bungee.netty; -public abstract class PacketHandler extends net.md_5.bungee.protocol.packet.AbstractPacketHandler +public abstract class PacketHandler extends net.md_5.bungee.protocol.AbstractPacketHandler { @Override diff --git a/proxy/src/main/java/net/md_5/bungee/netty/PacketWrapper.java b/proxy/src/main/java/net/md_5/bungee/netty/PacketWrapper.java index b61cfd04..2d0f66fc 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/PacketWrapper.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/PacketWrapper.java @@ -3,7 +3,7 @@ package net.md_5.bungee.netty; import io.netty.buffer.ByteBuf; import lombok.RequiredArgsConstructor; import lombok.Setter; -import net.md_5.bungee.protocol.packet.DefinedPacket; +import net.md_5.bungee.protocol.DefinedPacket; @RequiredArgsConstructor public class PacketWrapper diff --git a/proxy/src/main/java/net/md_5/bungee/tab/Custom.java b/proxy/src/main/java/net/md_5/bungee/tab/Custom.java index b38ae4b1..86c2a084 100644 --- a/proxy/src/main/java/net/md_5/bungee/tab/Custom.java +++ b/proxy/src/main/java/net/md_5/bungee/tab/Custom.java @@ -7,7 +7,7 @@ import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.tab.CustomTabList; import net.md_5.bungee.api.tab.TabListAdapter; -import net.md_5.bungee.protocol.packet.PacketC9PlayerListItem; +import net.md_5.bungee.protocol.game.Packet3BPlayerListItem; public class Custom extends TabListAdapter implements CustomTabList { @@ -96,7 +96,7 @@ public class Custom extends TabListAdapter implements CustomTabList { String text = ( slots[i][j] != null ) ? slots[i][j] : new StringBuilder().append( base( i ) ).append( base( j ) ).toString(); sent[i][j] = text; - getPlayer().unsafe().sendPacket( new PacketC9PlayerListItem( text, true, (short) 0 ) ); + getPlayer().unsafe().sendPacket( new Packet3BPlayerListItem( text, true, (short) 0 ) ); } } } @@ -112,7 +112,7 @@ public class Custom extends TabListAdapter implements CustomTabList { String text = sent[i][j]; sent[i][j] = null; - getPlayer().unsafe().sendPacket( new PacketC9PlayerListItem( text, false, (short) 9999 ) ); + getPlayer().unsafe().sendPacket( new Packet3BPlayerListItem( text, false, (short) 9999 ) ); } } } diff --git a/proxy/src/main/java/net/md_5/bungee/tab/Global.java b/proxy/src/main/java/net/md_5/bungee/tab/Global.java index ccc4f014..82c327a5 100644 --- a/proxy/src/main/java/net/md_5/bungee/tab/Global.java +++ b/proxy/src/main/java/net/md_5/bungee/tab/Global.java @@ -4,7 +4,7 @@ import net.md_5.bungee.BungeeCord; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.tab.TabListAdapter; -import net.md_5.bungee.protocol.packet.PacketC9PlayerListItem; +import net.md_5.bungee.protocol.game.Packet3BPlayerListItem; public class Global extends TabListAdapter { @@ -16,9 +16,9 @@ public class Global extends TabListAdapter { for ( ProxiedPlayer p : ProxyServer.getInstance().getPlayers() ) { - getPlayer().unsafe().sendPacket( new PacketC9PlayerListItem( p.getDisplayName(), true, (short) p.getPing() ) ); + getPlayer().unsafe().sendPacket( new Packet3BPlayerListItem( p.getDisplayName(), true, (short) p.getPing() ) ); } - BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( getPlayer().getDisplayName(), true, (short) getPlayer().getPing() ) ); + BungeeCord.getInstance().broadcast( new Packet3BPlayerListItem( getPlayer().getDisplayName(), true, (short) getPlayer().getPing() ) ); } @Override @@ -27,14 +27,14 @@ public class Global extends TabListAdapter if ( !sentPing ) { sentPing = true; - BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( getPlayer().getDisplayName(), true, (short) getPlayer().getPing() ) ); + BungeeCord.getInstance().broadcast( new Packet3BPlayerListItem( getPlayer().getDisplayName(), true, (short) getPlayer().getPing() ) ); } } @Override public void onDisconnect() { - BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( getPlayer().getDisplayName(), false, (short) 9999 ) ); + BungeeCord.getInstance().broadcast( new Packet3BPlayerListItem( getPlayer().getDisplayName(), false, (short) 9999 ) ); } @Override diff --git a/proxy/src/main/java/net/md_5/bungee/tab/GlobalPing.java b/proxy/src/main/java/net/md_5/bungee/tab/GlobalPing.java index c7233a2a..15633ff9 100644 --- a/proxy/src/main/java/net/md_5/bungee/tab/GlobalPing.java +++ b/proxy/src/main/java/net/md_5/bungee/tab/GlobalPing.java @@ -2,7 +2,7 @@ package net.md_5.bungee.tab; import net.md_5.bungee.BungeeCord; import net.md_5.bungee.api.connection.ProxiedPlayer; -import net.md_5.bungee.protocol.packet.PacketC9PlayerListItem; +import net.md_5.bungee.protocol.game.Packet3BPlayerListItem; public class GlobalPing extends Global { @@ -17,7 +17,7 @@ public class GlobalPing extends Global if ( ping - PING_THRESHOLD > lastPing && ping + PING_THRESHOLD < lastPing ) { lastPing = ping; - BungeeCord.getInstance().broadcast( new PacketC9PlayerListItem( getPlayer().getDisplayName(), true, (short) ping ) ); + BungeeCord.getInstance().broadcast( new Packet3BPlayerListItem( getPlayer().getDisplayName(), true, (short) ping ) ); } } } diff --git a/proxy/src/main/java/net/md_5/bungee/tab/ServerUnique.java b/proxy/src/main/java/net/md_5/bungee/tab/ServerUnique.java index 722987b1..f2969279 100644 --- a/proxy/src/main/java/net/md_5/bungee/tab/ServerUnique.java +++ b/proxy/src/main/java/net/md_5/bungee/tab/ServerUnique.java @@ -3,7 +3,7 @@ package net.md_5.bungee.tab; import java.util.Collection; import java.util.HashSet; import net.md_5.bungee.api.tab.TabListAdapter; -import net.md_5.bungee.protocol.packet.PacketC9PlayerListItem; +import net.md_5.bungee.protocol.game.Packet3BPlayerListItem; public class ServerUnique extends TabListAdapter { @@ -17,7 +17,7 @@ public class ServerUnique extends TabListAdapter { for ( String username : usernames ) { - getPlayer().unsafe().sendPacket( new PacketC9PlayerListItem( username, false, (short) 9999 ) ); + getPlayer().unsafe().sendPacket( new Packet3BPlayerListItem( username, false, (short) 9999 ) ); } usernames.clear(); }