Compare commits
	
		
			5 Commits
		
	
	
		
			3e9a7e45c4
			...
			ffa011c7b1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | ffa011c7b1 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 22536c11bd | ||
|   | 2394e204fa | ||
|   | 1b88a84710 | ||
|   | 7606d4437b | 
| @@ -55,7 +55,7 @@ | |||||||
|             <plugin> |             <plugin> | ||||||
|                 <groupId>org.apache.maven.plugins</groupId> |                 <groupId>org.apache.maven.plugins</groupId> | ||||||
|                 <artifactId>maven-shade-plugin</artifactId> |                 <artifactId>maven-shade-plugin</artifactId> | ||||||
|                 <version>3.5.1</version> |                 <version>3.5.2</version> | ||||||
|                 <executions> |                 <executions> | ||||||
|                     <execution> |                     <execution> | ||||||
|                         <phase>package</phase> |                         <phase>package</phase> | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| package net.md_5.bungee.protocol; | package net.md_5.bungee.protocol; | ||||||
|  |  | ||||||
|  | import java.util.function.Function; | ||||||
| import lombok.AccessLevel; | import lombok.AccessLevel; | ||||||
| import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||||
| import lombok.Data; | import lombok.Data; | ||||||
| @@ -31,4 +32,26 @@ public final class Either<L, R> | |||||||
|     { |     { | ||||||
|         return new Either<>( null, right ); |         return new Either<>( null, right ); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public L getLeftOrCompute(Function<R, L> function) | ||||||
|  |     { | ||||||
|  |         if ( isLeft() ) | ||||||
|  |         { | ||||||
|  |             return left; | ||||||
|  |         } else | ||||||
|  |         { | ||||||
|  |             return function.apply( right ); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public R getRightOrCompute(Function<L, R> function) | ||||||
|  |     { | ||||||
|  |         if ( isRight() ) | ||||||
|  |         { | ||||||
|  |             return right; | ||||||
|  |         } else | ||||||
|  |         { | ||||||
|  |             return function.apply( left ); | ||||||
|  |         } | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ public class ProtocolConstants | |||||||
|     public static final int MINECRAFT_1_20 = 763; |     public static final int MINECRAFT_1_20 = 763; | ||||||
|     public static final int MINECRAFT_1_20_2 = 764; |     public static final int MINECRAFT_1_20_2 = 764; | ||||||
|     public static final int MINECRAFT_1_20_3 = 765; |     public static final int MINECRAFT_1_20_3 = 765; | ||||||
|     public static final int MINECRAFT_1_20_5 = 1073742000; |     public static final int MINECRAFT_1_20_5 = 1073742003; | ||||||
|     public static final List<String> SUPPORTED_VERSIONS; |     public static final List<String> SUPPORTED_VERSIONS; | ||||||
|     public static final List<Integer> SUPPORTED_VERSION_IDS; |     public static final List<Integer> SUPPORTED_VERSION_IDS; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -311,6 +311,7 @@ public class Commands extends DefinedPacket | |||||||
|         private static final ArgumentSerializer[] IDS_1_19_3; |         private static final ArgumentSerializer[] IDS_1_19_3; | ||||||
|         private static final ArgumentSerializer[] IDS_1_19_4; |         private static final ArgumentSerializer[] IDS_1_19_4; | ||||||
|         private static final ArgumentSerializer[] IDS_1_20_3; |         private static final ArgumentSerializer[] IDS_1_20_3; | ||||||
|  |         private static final ArgumentSerializer[] IDS_1_20_5; | ||||||
|         private static final Map<Class<?>, ProperArgumentSerializer<?>> PROPER_PROVIDERS = new HashMap<>(); |         private static final Map<Class<?>, ProperArgumentSerializer<?>> PROPER_PROVIDERS = new HashMap<>(); | ||||||
|         // |         // | ||||||
|         private static final ArgumentSerializer<Void> VOID = new ArgumentSerializer<Void>() |         private static final ArgumentSerializer<Void> VOID = new ArgumentSerializer<Void>() | ||||||
| @@ -799,6 +800,61 @@ public class Commands extends DefinedPacket | |||||||
|                 get( "minecraft:uuid", VOID ), |                 get( "minecraft:uuid", VOID ), | ||||||
|                 get( "minecraft:heightmap", VOID ) |                 get( "minecraft:heightmap", VOID ) | ||||||
|             }; |             }; | ||||||
|  |  | ||||||
|  |             IDS_1_20_5 = new ArgumentSerializer[] | ||||||
|  |             { | ||||||
|  |                 get( "brigadier:bool", VOID ), | ||||||
|  |                 get( "brigadier:float", FLOAT_RANGE ), | ||||||
|  |                 get( "brigadier:double", DOUBLE_RANGE ), | ||||||
|  |                 get( "brigadier:integer", INTEGER_RANGE ), | ||||||
|  |                 get( "brigadier:long", LONG_RANGE ), | ||||||
|  |                 get( "brigadier:string", STRING ), | ||||||
|  |                 get( "minecraft:entity", BYTE ), | ||||||
|  |                 get( "minecraft:game_profile", VOID ), | ||||||
|  |                 get( "minecraft:block_pos", VOID ), | ||||||
|  |                 get( "minecraft:column_pos", VOID ), | ||||||
|  |                 get( "minecraft:vec3", VOID ), | ||||||
|  |                 get( "minecraft:vec2", VOID ), | ||||||
|  |                 get( "minecraft:block_state", VOID ), | ||||||
|  |                 get( "minecraft:block_predicate", VOID ), | ||||||
|  |                 get( "minecraft:item_stack", VOID ), | ||||||
|  |                 get( "minecraft:item_predicate", VOID ), | ||||||
|  |                 get( "minecraft:color", VOID ), | ||||||
|  |                 get( "minecraft:component", VOID ), | ||||||
|  |                 get( "minecraft:style", VOID ), | ||||||
|  |                 get( "minecraft:message", VOID ), | ||||||
|  |                 get( "minecraft:nbt_compound_tag", VOID ), | ||||||
|  |                 get( "minecraft:nbt_tag", VOID ), | ||||||
|  |                 get( "minecraft:nbt_path", VOID ), | ||||||
|  |                 get( "minecraft:objective", VOID ), | ||||||
|  |                 get( "minecraft:objective_criteria", VOID ), | ||||||
|  |                 get( "minecraft:operation", VOID ), | ||||||
|  |                 get( "minecraft:particle", VOID ), | ||||||
|  |                 get( "minecraft:angle", VOID ), | ||||||
|  |                 get( "minecraft:rotation", VOID ), | ||||||
|  |                 get( "minecraft:scoreboard_slot", VOID ), | ||||||
|  |                 get( "minecraft:score_holder", BYTE ), | ||||||
|  |                 get( "minecraft:swizzle", VOID ), | ||||||
|  |                 get( "minecraft:team", VOID ), | ||||||
|  |                 get( "minecraft:item_slot", VOID ), | ||||||
|  |                 get( "minecraft:item_slots", VOID ), | ||||||
|  |                 get( "minecraft:resource_location", VOID ), | ||||||
|  |                 get( "minecraft:function", VOID ), | ||||||
|  |                 get( "minecraft:entity_anchor", VOID ), | ||||||
|  |                 get( "minecraft:int_range", VOID ), | ||||||
|  |                 get( "minecraft:float_range", VOID ), | ||||||
|  |                 get( "minecraft:dimension", VOID ), | ||||||
|  |                 get( "minecraft:gamemode", VOID ), | ||||||
|  |                 get( "minecraft:time", INTEGER ), | ||||||
|  |                 get( "minecraft:resource_or_tag", RAW_STRING ), | ||||||
|  |                 get( "minecraft:resource_or_tag_key", RAW_STRING ), | ||||||
|  |                 get( "minecraft:resource", RAW_STRING ), | ||||||
|  |                 get( "minecraft:resource_key", RAW_STRING ), | ||||||
|  |                 get( "minecraft:template_mirror", VOID ), | ||||||
|  |                 get( "minecraft:template_rotation", VOID ), | ||||||
|  |                 get( "minecraft:uuid", VOID ), | ||||||
|  |                 get( "minecraft:heightmap", VOID ) | ||||||
|  |             }; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         private static void register(String name, ArgumentSerializer serializer) |         private static void register(String name, ArgumentSerializer serializer) | ||||||
| @@ -820,7 +876,10 @@ public class Commands extends DefinedPacket | |||||||
|             { |             { | ||||||
|                 key = readVarInt( buf ); |                 key = readVarInt( buf ); | ||||||
|  |  | ||||||
|                 if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_3 ) |                 if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_5 ) | ||||||
|  |                 { | ||||||
|  |                     reader = IDS_1_20_5[(Integer) key]; | ||||||
|  |                 } else if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_3 ) | ||||||
|                 { |                 { | ||||||
|                     reader = IDS_1_20_3[(Integer) key]; |                     reader = IDS_1_20_3[(Integer) key]; | ||||||
|                 } else if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_19_4 ) |                 } else if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_19_4 ) | ||||||
|   | |||||||
| @@ -133,7 +133,13 @@ public class Login extends DefinedPacket | |||||||
|         if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_2 ) |         if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_2 ) | ||||||
|         { |         { | ||||||
|             limitedCrafting = buf.readBoolean(); |             limitedCrafting = buf.readBoolean(); | ||||||
|  |             if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_5 ) | ||||||
|  |             { | ||||||
|  |                 dimension = readVarInt( buf ); | ||||||
|  |             } else | ||||||
|  |             { | ||||||
|                 dimension = readString( buf ); |                 dimension = readString( buf ); | ||||||
|  |             } | ||||||
|             worldName = readString( buf ); |             worldName = readString( buf ); | ||||||
|             seed = buf.readLong(); |             seed = buf.readLong(); | ||||||
|             gameMode = buf.readUnsignedByte(); |             gameMode = buf.readUnsignedByte(); | ||||||
| @@ -254,7 +260,13 @@ public class Login extends DefinedPacket | |||||||
|         if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_2 ) |         if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_2 ) | ||||||
|         { |         { | ||||||
|             buf.writeBoolean( limitedCrafting ); |             buf.writeBoolean( limitedCrafting ); | ||||||
|  |             if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_5 ) | ||||||
|  |             { | ||||||
|  |                 writeVarInt( (Integer) dimension, buf ); | ||||||
|  |             } else | ||||||
|  |             { | ||||||
|                 writeString( (String) dimension, buf ); |                 writeString( (String) dimension, buf ); | ||||||
|  |             } | ||||||
|             writeString( worldName, buf ); |             writeString( worldName, buf ); | ||||||
|             buf.writeLong( seed ); |             buf.writeLong( seed ); | ||||||
|             buf.writeByte( gameMode ); |             buf.writeByte( gameMode ); | ||||||
|   | |||||||
| @@ -36,7 +36,10 @@ public class Respawn extends DefinedPacket | |||||||
|     { |     { | ||||||
|         if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_16 ) |         if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_16 ) | ||||||
|         { |         { | ||||||
|             if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_16_2 && protocolVersion < ProtocolConstants.MINECRAFT_1_19 ) |             if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_5 ) | ||||||
|  |             { | ||||||
|  |                 dimension = readVarInt( buf ); | ||||||
|  |             } else if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_16_2 && protocolVersion < ProtocolConstants.MINECRAFT_1_19 ) | ||||||
|             { |             { | ||||||
|                 dimension = readTag( buf, protocolVersion ); |                 dimension = readTag( buf, protocolVersion ); | ||||||
|             } else |             } else | ||||||
| @@ -92,7 +95,10 @@ public class Respawn extends DefinedPacket | |||||||
|     { |     { | ||||||
|         if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_16 ) |         if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_16 ) | ||||||
|         { |         { | ||||||
|             if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_16_2 && protocolVersion < ProtocolConstants.MINECRAFT_1_19 ) |             if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_5 ) | ||||||
|  |             { | ||||||
|  |                 writeVarInt( (Integer) dimension, buf ); | ||||||
|  |             } else if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_16_2 && protocolVersion < ProtocolConstants.MINECRAFT_1_19 ) | ||||||
|             { |             { | ||||||
|                 writeTag( (Tag) dimension, buf, protocolVersion ); |                 writeTag( (Tag) dimension, buf, protocolVersion ); | ||||||
|             } else |             } else | ||||||
|   | |||||||
| @@ -243,7 +243,7 @@ public class ServerConnector extends PacketHandler | |||||||
|             user.getForgeClientHandler().setHandshakeComplete(); |             user.getForgeClientHandler().setHandshakeComplete(); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if ( user.getServer() == null || !( login.getDimension() instanceof Integer ) ) |         if ( user.getServer() == null || user.getPendingConnection().getVersion() >= ProtocolConstants.MINECRAFT_1_16 ) | ||||||
|         { |         { | ||||||
|             // Once again, first connection |             // Once again, first connection | ||||||
|             user.setClientEntityId( login.getEntityId() ); |             user.setClientEntityId( login.getEntityId() ); | ||||||
|   | |||||||
| @@ -267,9 +267,9 @@ public class DownstreamBridge extends PacketHandler | |||||||
|         { |         { | ||||||
|             if ( team.getMode() == 0 || team.getMode() == 2 ) |             if ( team.getMode() == 0 || team.getMode() == 2 ) | ||||||
|             { |             { | ||||||
|                 t.setDisplayName( ComponentSerializer.toString( team.getDisplayName() ) ); |                 t.setDisplayName( team.getDisplayName().getLeftOrCompute( ComponentSerializer::toString ) ); | ||||||
|                 t.setPrefix( ComponentSerializer.toString( team.getPrefix() ) ); |                 t.setPrefix( team.getPrefix().getLeftOrCompute( ComponentSerializer::toString ) ); | ||||||
|                 t.setSuffix( ComponentSerializer.toString( team.getSuffix() ) ); |                 t.setSuffix( team.getSuffix().getLeftOrCompute( ComponentSerializer::toString ) ); | ||||||
|                 t.setFriendlyFire( team.getFriendlyFire() ); |                 t.setFriendlyFire( team.getFriendlyFire() ); | ||||||
|                 t.setNameTagVisibility( team.getNameTagVisibility() ); |                 t.setNameTagVisibility( team.getNameTagVisibility() ); | ||||||
|                 t.setCollisionRule( team.getCollisionRule() ); |                 t.setCollisionRule( team.getCollisionRule() ); | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ public final class AllowedCharacters | |||||||
|     { |     { | ||||||
|         if ( onlineMode ) |         if ( onlineMode ) | ||||||
|         { |         { | ||||||
|             return ( c >= 'a' && c <= 'z' ) || ( c >= '0' && c <= '9' ) || ( c >= 'A' && c <= 'Z' ) || c == '_' || c == '.' || c == '-'; |             return ( c >= 'a' && c <= 'z' ) || ( c >= '0' && c <= '9' ) || ( c >= 'A' && c <= 'Z' ) || c == '_'; | ||||||
|         } else |         } else | ||||||
|         { |         { | ||||||
|             // Don't allow spaces, Yaml config doesn't support them |             // Don't allow spaces, Yaml config doesn't support them | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user