Close #938 - re add our register channel manipulation

This commit is contained in:
md_5 2014-03-20 20:11:56 +11:00
parent a8584f81ed
commit 1bbbfdb0d5
3 changed files with 27 additions and 0 deletions

View File

@ -112,6 +112,11 @@ public class ServerConnector extends PacketHandler
}
}
for ( PluginMessage message : user.getPendingConnection().getRegisterMessages() )
{
ch.write( message );
}
if ( user.getSettings() != null )
{
ch.write( user.getSettings() );

View File

@ -6,6 +6,8 @@ import java.math.BigInteger;
import java.net.InetSocketAddress;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import javax.crypto.SecretKey;
import lombok.Getter;
@ -34,6 +36,7 @@ import net.md_5.bungee.netty.cipher.CipherDecoder;
import net.md_5.bungee.netty.cipher.CipherEncoder;
import net.md_5.bungee.protocol.DefinedPacket;
import net.md_5.bungee.protocol.packet.Handshake;
import net.md_5.bungee.protocol.packet.PluginMessage;
import net.md_5.bungee.protocol.packet.EncryptionResponse;
import net.md_5.bungee.protocol.packet.EncryptionRequest;
import net.md_5.bungee.protocol.packet.Kick;
@ -62,6 +65,8 @@ public class InitialHandler extends PacketHandler implements PendingConnection
@Getter
private LoginRequest loginRequest;
private EncryptionRequest request;
@Getter
private final List<PluginMessage> registerMessages = new ArrayList<>();
private State thisState = State.HANDSHAKE;
private final Unsafe unsafe = new Unsafe()
{
@ -96,6 +101,17 @@ public class InitialHandler extends PacketHandler implements PendingConnection
disconnect( ChatColor.RED + Util.exception( t ) );
}
@Override
public void handle(PluginMessage pluginMessage) throws Exception
{
// TODO: Unregister?
if ( pluginMessage.getTag().equals( "REGISTER" ) )
{
Preconditions.checkState( registerMessages.size() < 128, "Too many channels registered" );
registerMessages.add( pluginMessage );
}
}
@Override
public void handle(LegacyHandshake legacyHandshake) throws Exception
{

View File

@ -147,6 +147,12 @@ public class UpstreamBridge extends PacketHandler
{
throw CancelSendSignal.INSTANCE;
}
// TODO: Unregister as well?
if ( pluginMessage.getTag().equals( "REGISTER" ) )
{
con.getPendingConnection().getRegisterMessages().add( pluginMessage );
}
}
@Override