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> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-shade-plugin</artifactId> | ||||
|                 <version>3.5.1</version> | ||||
|                 <version>3.5.2</version> | ||||
|                 <executions> | ||||
|                     <execution> | ||||
|                         <phase>package</phase> | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| package net.md_5.bungee.protocol; | ||||
|  | ||||
| import java.util.function.Function; | ||||
| import lombok.AccessLevel; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Data; | ||||
| @@ -31,4 +32,26 @@ public final class Either<L, R> | ||||
|     { | ||||
|         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_2 = 764; | ||||
|     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<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_4; | ||||
|         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 ArgumentSerializer<Void> VOID = new ArgumentSerializer<Void>() | ||||
| @@ -799,6 +800,61 @@ public class Commands extends DefinedPacket | ||||
|                 get( "minecraft:uuid", 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) | ||||
| @@ -820,7 +876,10 @@ public class Commands extends DefinedPacket | ||||
|             { | ||||
|                 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]; | ||||
|                 } else if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_19_4 ) | ||||
|   | ||||
| @@ -133,7 +133,13 @@ public class Login extends DefinedPacket | ||||
|         if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_2 ) | ||||
|         { | ||||
|             limitedCrafting = buf.readBoolean(); | ||||
|             if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_5 ) | ||||
|             { | ||||
|                 dimension = readVarInt( buf ); | ||||
|             } else | ||||
|             { | ||||
|                 dimension = readString( buf ); | ||||
|             } | ||||
|             worldName = readString( buf ); | ||||
|             seed = buf.readLong(); | ||||
|             gameMode = buf.readUnsignedByte(); | ||||
| @@ -254,7 +260,13 @@ public class Login extends DefinedPacket | ||||
|         if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_2 ) | ||||
|         { | ||||
|             buf.writeBoolean( limitedCrafting ); | ||||
|             if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_5 ) | ||||
|             { | ||||
|                 writeVarInt( (Integer) dimension, buf ); | ||||
|             } else | ||||
|             { | ||||
|                 writeString( (String) dimension, buf ); | ||||
|             } | ||||
|             writeString( worldName, buf ); | ||||
|             buf.writeLong( seed ); | ||||
|             buf.writeByte( gameMode ); | ||||
|   | ||||
| @@ -36,7 +36,10 @@ public class Respawn extends DefinedPacket | ||||
|     { | ||||
|         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 ); | ||||
|             } else | ||||
| @@ -92,7 +95,10 @@ public class Respawn extends DefinedPacket | ||||
|     { | ||||
|         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 ); | ||||
|             } else | ||||
|   | ||||
| @@ -243,7 +243,7 @@ public class ServerConnector extends PacketHandler | ||||
|             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 | ||||
|             user.setClientEntityId( login.getEntityId() ); | ||||
|   | ||||
| @@ -267,9 +267,9 @@ public class DownstreamBridge extends PacketHandler | ||||
|         { | ||||
|             if ( team.getMode() == 0 || team.getMode() == 2 ) | ||||
|             { | ||||
|                 t.setDisplayName( ComponentSerializer.toString( team.getDisplayName() ) ); | ||||
|                 t.setPrefix( ComponentSerializer.toString( team.getPrefix() ) ); | ||||
|                 t.setSuffix( ComponentSerializer.toString( team.getSuffix() ) ); | ||||
|                 t.setDisplayName( team.getDisplayName().getLeftOrCompute( ComponentSerializer::toString ) ); | ||||
|                 t.setPrefix( team.getPrefix().getLeftOrCompute( ComponentSerializer::toString ) ); | ||||
|                 t.setSuffix( team.getSuffix().getLeftOrCompute( ComponentSerializer::toString ) ); | ||||
|                 t.setFriendlyFire( team.getFriendlyFire() ); | ||||
|                 t.setNameTagVisibility( team.getNameTagVisibility() ); | ||||
|                 t.setCollisionRule( team.getCollisionRule() ); | ||||
|   | ||||
| @@ -17,7 +17,7 @@ public final class AllowedCharacters | ||||
|     { | ||||
|         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 | ||||
|         { | ||||
|             // Don't allow spaces, Yaml config doesn't support them | ||||
|   | ||||
		Reference in New Issue
	
	Block a user