Compare commits

..

No commits in common. "a7dbbc2f0a4bc741d695016fc9597d185b965e5d" and "497c6879e05d168102b3331e55c53ccfd9fef541" have entirely different histories.

13 changed files with 35 additions and 69 deletions

View File

@ -55,7 +55,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.1</version>
<version>3.5.0</version>
<executions>
<execution>
<phase>package</phase>

View File

@ -33,13 +33,6 @@ public final class SelectorComponent extends BaseComponent
*/
private String selector;
/**
* The separator of multiple selected entities.
* <br>
* The default is {@code {"color": "gray", "text": ", "}}.
*/
private BaseComponent separator;
/**
* Creates a selector component from the original to clone it.
*
@ -49,17 +42,6 @@ public final class SelectorComponent extends BaseComponent
{
super( original );
setSelector( original.getSelector() );
setSeparator( original.getSeparator() );
}
/**
* Creates a selector component from the selector
*
* @param selector the selector as a String
*/
public SelectorComponent(String selector)
{
setSelector( selector );
}
@Override

View File

@ -22,12 +22,6 @@ public class SelectorComponentSerializer extends BaseComponentSerializer impleme
throw new JsonParseException( "Could not parse JSON: missing 'selector' property" );
}
SelectorComponent component = new SelectorComponent( object.get( "selector" ).getAsString() );
if ( object.has( "separator" ) )
{
component.setSeparator( ComponentSerializer.deserialize( object.get( "separator" ).getAsString() ) );
}
deserialize( object, component, context );
return component;
}
@ -38,11 +32,6 @@ public class SelectorComponentSerializer extends BaseComponentSerializer impleme
JsonObject object = new JsonObject();
serialize( object, component, context );
object.addProperty( "selector", component.getSelector() );
if ( component.getSeparator() != null )
{
object.addProperty( "separator", ComponentSerializer.toString( component.getSeparator() ) );
}
return object;
}
}

View File

@ -38,7 +38,7 @@ public class CommandSend extends Command implements TabExecutor
this.sender = sender;
for ( ServerConnectRequest.Result result : ServerConnectRequest.Result.values() )
{
results.put( result, Collections.synchronizedList( new ArrayList<>() ) );
results.put( result, new ArrayList<String>() );
}
}

View File

@ -83,7 +83,7 @@
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-bom</artifactId>
<version>4.1.99.Final</version>
<version>4.1.97.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>

View File

@ -31,12 +31,12 @@ public class LegacyDecoder extends ByteToMessageDecoder
if ( packetID == 0xFE )
{
out.add( new PacketWrapper( new LegacyPing( in.isReadable() && in.readUnsignedByte() == 0x01 ), Unpooled.EMPTY_BUFFER, Protocol.STATUS ) );
out.add( new PacketWrapper( new LegacyPing( in.isReadable() && in.readUnsignedByte() == 0x01 ), Unpooled.EMPTY_BUFFER ) );
return;
} else if ( packetID == 0x02 && in.isReadable() )
{
in.skipBytes( in.readableBytes() );
out.add( new PacketWrapper( new LegacyHandshake(), Unpooled.EMPTY_BUFFER, Protocol.STATUS ) );
out.add( new PacketWrapper( new LegacyHandshake(), Unpooled.EMPTY_BUFFER ) );
return;
}

View File

@ -50,7 +50,7 @@ public class MinecraftDecoder extends MessageToMessageDecoder<ByteBuf>
in.skipBytes( in.readableBytes() );
}
out.add( new PacketWrapper( packet, slice, protocol ) );
out.add( new PacketWrapper( packet, slice ) );
slice = null;
} finally
{

View File

@ -10,7 +10,6 @@ public class PacketWrapper
public final DefinedPacket packet;
public final ByteBuf buf;
public final Protocol protocol;
@Setter
private boolean released;

View File

@ -172,7 +172,7 @@ public class BungeeTitle implements Title
{
if ( player.getPendingConnection().getVersion() >= ProtocolConstants.MINECRAFT_1_17 )
{
( (UserConnection) player ).sendPacketQueued( packet.newPacket );
player.unsafe().sendPacket( packet.newPacket );
} else
{
player.unsafe().sendPacket( packet.oldPacket );

View File

@ -43,6 +43,7 @@ import net.md_5.bungee.protocol.packet.GameState;
import net.md_5.bungee.protocol.packet.Handshake;
import net.md_5.bungee.protocol.packet.Kick;
import net.md_5.bungee.protocol.packet.Login;
import net.md_5.bungee.protocol.packet.LoginAcknowledged;
import net.md_5.bungee.protocol.packet.LoginPayloadRequest;
import net.md_5.bungee.protocol.packet.LoginPayloadResponse;
import net.md_5.bungee.protocol.packet.LoginRequest;
@ -333,9 +334,9 @@ public class ServerConnector extends PacketHandler
user.unsafe().sendPacket( new StartConfiguration() );
} else
{
LoginResult loginProfile = user.getPendingConnection().getLoginProfile();
user.unsafe().sendPacket( new LoginSuccess( user.getUniqueId(), user.getName(), ( loginProfile == null ) ? null : loginProfile.getProperties() ) );
user.getCh().setEncodeProtocol( Protocol.CONFIGURATION );
ch.setDecodeProtocol( Protocol.CONFIGURATION );
ch.write( new LoginAcknowledged() );
ch.setEncodeProtocol( Protocol.CONFIGURATION );
}
}

View File

@ -59,6 +59,7 @@ import net.md_5.bungee.protocol.packet.Handshake;
import net.md_5.bungee.protocol.packet.Kick;
import net.md_5.bungee.protocol.packet.LegacyHandshake;
import net.md_5.bungee.protocol.packet.LegacyPing;
import net.md_5.bungee.protocol.packet.LoginAcknowledged;
import net.md_5.bungee.protocol.packet.LoginPayloadResponse;
import net.md_5.bungee.protocol.packet.LoginRequest;
import net.md_5.bungee.protocol.packet.LoginSuccess;
@ -122,12 +123,12 @@ public class InitialHandler extends PacketHandler implements PendingConnection
private enum State
{
HANDSHAKE, STATUS, PING, USERNAME, ENCRYPT, FINISHING;
HANDSHAKE, STATUS, PING, USERNAME, ENCRYPT, FINISHING, CONFIGURING;
}
private boolean canSendKickMessage()
{
return thisState == State.USERNAME || thisState == State.ENCRYPT || thisState == State.FINISHING;
return thisState == State.USERNAME || thisState == State.ENCRYPT || thisState == State.FINISHING || thisState == State.CONFIGURING;
}
@Override
@ -597,12 +598,15 @@ public class InitialHandler extends PacketHandler implements PendingConnection
userCon = new UserConnection( bungee, ch, getName(), InitialHandler.this );
userCon.setCompressionThreshold( BungeeCord.getInstance().config.getCompressionThreshold() );
if ( getVersion() < ProtocolConstants.MINECRAFT_1_20_2 )
unsafe.sendPacket( new LoginSuccess( getUniqueId(), getName(), ( loginProfile == null ) ? null : loginProfile.getProperties() ) );
if ( getVersion() >= ProtocolConstants.MINECRAFT_1_20_2 )
{
thisState = State.CONFIGURING;
} else
{
unsafe.sendPacket( new LoginSuccess( getUniqueId(), getName(), ( loginProfile == null ) ? null : loginProfile.getProperties() ) );
ch.setProtocol( Protocol.GAME );
finish2();
}
finish2();
}
}
} );
@ -613,6 +617,15 @@ public class InitialHandler extends PacketHandler implements PendingConnection
bungee.getPluginManager().callEvent( new LoginEvent( InitialHandler.this, complete ) );
}
@Override
public void handle(LoginAcknowledged loginAcknowledged) throws Exception
{
Preconditions.checkState( thisState == State.CONFIGURING, "Not expecting CONFIGURING" );
finish2();
ch.setEncodeProtocol( Protocol.CONFIGURATION );
}
private void finish2()
{
userCon.init();

View File

@ -10,7 +10,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
import net.md_5.bungee.BungeeCord;
import net.md_5.bungee.ServerConnection;
import net.md_5.bungee.ServerConnection.KeepAliveData;
import net.md_5.bungee.UserConnection;
import net.md_5.bungee.Util;
@ -135,22 +134,14 @@ public class UpstreamBridge extends PacketHandler
@Override
public void handle(PacketWrapper packet) throws Exception
{
ServerConnection server = con.getServer();
if ( server != null && server.isConnected() )
if ( con.getServer() != null )
{
Protocol serverEncode = server.getCh().getEncodeProtocol();
// #3527: May still have old packets from client in game state when switching server to configuration state - discard those
if ( packet.protocol != serverEncode )
{
return;
}
EntityMap rewrite = con.getEntityRewrite();
if ( rewrite != null && serverEncode == Protocol.GAME )
if ( rewrite != null && con.getServer().getCh().getEncodeProtocol() == Protocol.GAME )
{
rewrite.rewriteServerbound( packet.buf, con.getClientEntityId(), con.getServerEntityId(), con.getPendingConnection().getVersion() );
}
server.getCh().write( packet );
con.getServer().getCh().write( packet );
}
}
@ -331,19 +322,8 @@ public class UpstreamBridge extends PacketHandler
con.getPendingConnection().relayMessage( pluginMessage );
}
@Override
public void handle(LoginAcknowledged loginAcknowledged) throws Exception
{
configureServer();
}
@Override
public void handle(StartConfiguration startConfiguration) throws Exception
{
configureServer();
}
private void configureServer()
{
ChannelWrapper ch = con.getServer().getCh();
if ( ch.getDecodeProtocol() == Protocol.LOGIN )
@ -362,6 +342,8 @@ public class UpstreamBridge extends PacketHandler
public void handle(FinishConfiguration finishConfiguration) throws Exception
{
con.sendQueuedPackets();
super.handle( finishConfiguration );
}
@Override

View File

@ -174,7 +174,7 @@ public class HandlerBoss extends ChannelInboundHandlerAdapter
{
ProxyServer.getInstance().getLogger().log( Level.WARNING, "{0} - could not decode packet! {1}", new Object[]
{
handler, cause
handler, cause.getCause() != null ? cause.getCause() : cause
} );
}
} else if ( cause instanceof IOException || ( cause instanceof IllegalStateException && handler instanceof InitialHandler ) )