Replace direction strings with concrete enums
This commit is contained in:
parent
bc2b4db419
commit
1a1a51b38d
@ -119,7 +119,7 @@ public abstract class DefinedPacket
|
||||
throw new UnsupportedOperationException( "Packet must implement read method" );
|
||||
}
|
||||
|
||||
public void read(ByteBuf buf, Protocol.ProtocolDirection direction, int protocolVersion)
|
||||
public void read(ByteBuf buf, ProtocolConstants.Direction direction, int protocolVersion)
|
||||
{
|
||||
read( buf );
|
||||
}
|
||||
@ -129,7 +129,7 @@ public abstract class DefinedPacket
|
||||
throw new UnsupportedOperationException( "Packet must implement write method" );
|
||||
}
|
||||
|
||||
public void write(ByteBuf buf, Protocol.ProtocolDirection direction, int protocolVersion)
|
||||
public void write(ByteBuf buf, ProtocolConstants.Direction direction, int protocolVersion)
|
||||
{
|
||||
write( buf );
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ public class MinecraftDecoder extends ByteToMessageDecoder
|
||||
@Override
|
||||
protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception
|
||||
{
|
||||
Protocol.ProtocolDirection prot = ( server ) ? protocol.TO_SERVER : protocol.TO_CLIENT;
|
||||
Protocol.DirectionData prot = ( server ) ? protocol.TO_SERVER : protocol.TO_CLIENT;
|
||||
ByteBuf copy = in.copy(); // TODO
|
||||
|
||||
int packetId = DefinedPacket.readVarInt( in );
|
||||
@ -29,7 +29,7 @@ public class MinecraftDecoder extends ByteToMessageDecoder
|
||||
if ( prot.hasPacket( packetId ) )
|
||||
{
|
||||
packet = prot.createPacket( packetId );
|
||||
packet.read( in, prot, protocolVersion );
|
||||
packet.read( in, prot.getDirection(), protocolVersion );
|
||||
if ( in.readableBytes() != 0 )
|
||||
{
|
||||
throw new BadPacketException( "Did not read all bytes from packet " + packet.getClass() + " " + packetId + " Protocol " + protocol + " Direction " + prot );
|
||||
|
@ -19,8 +19,8 @@ public class MinecraftEncoder extends MessageToByteEncoder<DefinedPacket>
|
||||
@Override
|
||||
protected void encode(ChannelHandlerContext ctx, DefinedPacket msg, ByteBuf out) throws Exception
|
||||
{
|
||||
Protocol.ProtocolDirection prot = ( server ) ? protocol.TO_CLIENT : protocol.TO_SERVER;
|
||||
Protocol.DirectionData prot = ( server ) ? protocol.TO_CLIENT : protocol.TO_SERVER;
|
||||
DefinedPacket.writeVarInt( prot.getId( msg.getClass() ), out );
|
||||
msg.write( out, prot, protocolVersion );
|
||||
msg.write( out, prot.getDirection(), protocolVersion );
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import gnu.trove.map.hash.TObjectIntHashMap;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.md_5.bungee.protocol.packet.Chat;
|
||||
import net.md_5.bungee.protocol.packet.ClientSettings;
|
||||
@ -95,14 +96,15 @@ public enum Protocol
|
||||
public static final int MAX_PACKET_ID = 0xFF;
|
||||
public static List<Integer> supportedVersions = Arrays.asList( ProtocolConstants.MINECRAFT_1_7_2, ProtocolConstants.MINECRAFT_1_7_6 );
|
||||
/*========================================================================*/
|
||||
public final ProtocolDirection TO_SERVER = new ProtocolDirection( "TO_SERVER" );
|
||||
public final ProtocolDirection TO_CLIENT = new ProtocolDirection( "TO_CLIENT" );
|
||||
public final DirectionData TO_SERVER = new DirectionData( ProtocolConstants.Direction.TO_SERVER );
|
||||
public final DirectionData TO_CLIENT = new DirectionData( ProtocolConstants.Direction.TO_CLIENT );
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class ProtocolDirection
|
||||
public class DirectionData
|
||||
{
|
||||
|
||||
private final String name;
|
||||
@Getter
|
||||
private final ProtocolConstants.Direction direction;
|
||||
private final TObjectIntMap<Class<? extends DefinedPacket>> packetMap = new TObjectIntHashMap<>( MAX_PACKET_ID );
|
||||
private final Class<? extends DefinedPacket>[] packetClasses = new Class[ MAX_PACKET_ID ];
|
||||
private final Constructor<? extends DefinedPacket>[] packetConstructors = new Constructor[ MAX_PACKET_ID ];
|
||||
@ -112,12 +114,6 @@ public enum Protocol
|
||||
return id < MAX_PACKET_ID && packetConstructors[id] != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
public final DefinedPacket createPacket(int id)
|
||||
{
|
||||
if ( id > MAX_PACKET_ID )
|
||||
|
@ -6,4 +6,10 @@ public class ProtocolConstants
|
||||
public static int MINECRAFT_1_7_2 = 4;
|
||||
public static int MINECRAFT_1_7_6 = 5;
|
||||
public static int MINECRAFT_14_11_a = 14;
|
||||
|
||||
public enum Direction
|
||||
{
|
||||
|
||||
TO_CLIENT, TO_SERVER;
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import net.md_5.bungee.protocol.AbstractPacketHandler;
|
||||
import net.md_5.bungee.protocol.Protocol;
|
||||
import net.md_5.bungee.protocol.ProtocolConstants;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@ -25,20 +26,20 @@ public class Chat extends DefinedPacket
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteBuf buf, Protocol.ProtocolDirection direction, int protocolVersion)
|
||||
public void read(ByteBuf buf, ProtocolConstants.Direction direction, int protocolVersion)
|
||||
{
|
||||
message = readString( buf );
|
||||
if ( direction.toString().equals( "TO_CLIENT" ) && protocolVersion >= 7 )
|
||||
if ( direction == ProtocolConstants.Direction.TO_CLIENT && protocolVersion >= ProtocolConstants.MINECRAFT_14_11_a )
|
||||
{
|
||||
position = buf.readByte();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buf, Protocol.ProtocolDirection direction, int protocolVersion)
|
||||
public void write(ByteBuf buf, ProtocolConstants.Direction direction, int protocolVersion)
|
||||
{
|
||||
writeString( message, buf );
|
||||
if ( direction.toString().equals( "TO_CLIENT" ) && protocolVersion >= 7 )
|
||||
if ( direction == ProtocolConstants.Direction.TO_CLIENT && protocolVersion >= ProtocolConstants.MINECRAFT_14_11_a )
|
||||
{
|
||||
buf.writeByte( position );
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import net.md_5.bungee.protocol.AbstractPacketHandler;
|
||||
import net.md_5.bungee.protocol.Protocol;
|
||||
import net.md_5.bungee.protocol.ProtocolConstants;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@ -24,13 +24,13 @@ public class ClientSettings extends DefinedPacket
|
||||
private byte showCape;
|
||||
|
||||
@Override
|
||||
public void read(ByteBuf buf, Protocol.ProtocolDirection direction, int protocolVersion)
|
||||
public void read(ByteBuf buf, ProtocolConstants.Direction direction, int protocolVersion)
|
||||
{
|
||||
locale = readString( buf );
|
||||
viewDistance = buf.readByte();
|
||||
chatFlags = buf.readByte();
|
||||
unknown = buf.readBoolean();
|
||||
if ( protocolVersion < 6 )
|
||||
if ( protocolVersion <= ProtocolConstants.MINECRAFT_1_7_6 )
|
||||
{
|
||||
difficulty = buf.readByte();
|
||||
}
|
||||
@ -38,13 +38,13 @@ public class ClientSettings extends DefinedPacket
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buf, Protocol.ProtocolDirection direction, int protocolVersion)
|
||||
public void write(ByteBuf buf, ProtocolConstants.Direction direction, int protocolVersion)
|
||||
{
|
||||
writeString( locale, buf );
|
||||
buf.writeByte( viewDistance );
|
||||
buf.writeByte( chatFlags );
|
||||
buf.writeBoolean( unknown );
|
||||
if ( protocolVersion < 6 )
|
||||
if ( protocolVersion <= ProtocolConstants.MINECRAFT_1_7_6 )
|
||||
{
|
||||
buf.writeByte( difficulty );
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import net.md_5.bungee.protocol.AbstractPacketHandler;
|
||||
import net.md_5.bungee.protocol.Protocol;
|
||||
import net.md_5.bungee.protocol.ProtocolConstants;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@ -25,14 +25,14 @@ public class ScoreboardScore extends DefinedPacket
|
||||
private int value;
|
||||
|
||||
@Override
|
||||
public void read(ByteBuf buf, Protocol.ProtocolDirection direction, int protocolVersion)
|
||||
public void read(ByteBuf buf, ProtocolConstants.Direction direction, int protocolVersion)
|
||||
{
|
||||
itemName = readString( buf );
|
||||
action = buf.readByte();
|
||||
if ( action != 1 )
|
||||
{
|
||||
scoreName = readString( buf );
|
||||
if ( protocolVersion >= 7 )
|
||||
if ( protocolVersion >= ProtocolConstants.MINECRAFT_14_11_a )
|
||||
{
|
||||
value = readVarInt( buf );
|
||||
} else
|
||||
@ -43,14 +43,14 @@ public class ScoreboardScore extends DefinedPacket
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buf, Protocol.ProtocolDirection direction, int protocolVersion)
|
||||
public void write(ByteBuf buf, ProtocolConstants.Direction direction, int protocolVersion)
|
||||
{
|
||||
writeString( itemName, buf );
|
||||
buf.writeByte( action );
|
||||
if ( action != 1 )
|
||||
{
|
||||
writeString( scoreName, buf );
|
||||
if ( protocolVersion >= 7 )
|
||||
if ( protocolVersion >= ProtocolConstants.MINECRAFT_14_11_a )
|
||||
{
|
||||
writeVarInt( value, buf );
|
||||
} else
|
||||
|
@ -7,7 +7,7 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import net.md_5.bungee.protocol.AbstractPacketHandler;
|
||||
import net.md_5.bungee.protocol.Protocol;
|
||||
import net.md_5.bungee.protocol.ProtocolConstants;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@ -40,7 +40,7 @@ public class Team extends DefinedPacket
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(ByteBuf buf, Protocol.ProtocolDirection direction, int protocolVersion)
|
||||
public void read(ByteBuf buf, ProtocolConstants.Direction direction, int protocolVersion)
|
||||
{
|
||||
name = readString( buf );
|
||||
mode = buf.readByte();
|
||||
@ -53,7 +53,7 @@ public class Team extends DefinedPacket
|
||||
}
|
||||
if ( mode == 0 || mode == 3 || mode == 4 )
|
||||
{
|
||||
int len = ( protocolVersion >= 7 ) ? readVarInt( buf ) : buf.readShort();
|
||||
int len = ( protocolVersion >= ProtocolConstants.MINECRAFT_14_11_a ) ? readVarInt( buf ) : buf.readShort();
|
||||
players = new String[ len ];
|
||||
for ( int i = 0; i < len; i++ )
|
||||
{
|
||||
@ -63,7 +63,7 @@ public class Team extends DefinedPacket
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buf, Protocol.ProtocolDirection direction, int protocolVersion)
|
||||
public void write(ByteBuf buf, ProtocolConstants.Direction direction, int protocolVersion)
|
||||
{
|
||||
writeString( name, buf );
|
||||
buf.writeByte( mode );
|
||||
@ -76,7 +76,7 @@ public class Team extends DefinedPacket
|
||||
}
|
||||
if ( mode == 0 || mode == 3 || mode == 4 )
|
||||
{
|
||||
if ( protocolVersion >= 7 )
|
||||
if ( protocolVersion >= ProtocolConstants.MINECRAFT_14_11_a )
|
||||
{
|
||||
writeVarInt( players.length, buf );
|
||||
} else
|
||||
|
Loading…
Reference in New Issue
Block a user