Compare commits
5 Commits
3e9a7e45c4
...
ffa011c7b1
Author | SHA1 | Date | |
---|---|---|---|
|
ffa011c7b1 | ||
|
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
|
||||||
|
Loading…
Reference in New Issue
Block a user