Fix forge support - #111

This commit is contained in:
md_5 2013-02-14 18:30:48 +11:00
parent 0451c35bf8
commit bef2818537
2 changed files with 7 additions and 3 deletions

View File

@ -61,7 +61,11 @@ public class DataInputPacketReader
private static void readPacket(int packetId, DataInput in, byte[] buffer, int protocol) throws IOException private static void readPacket(int packetId, DataInput in, byte[] buffer, int protocol) throws IOException
{ {
Instruction[] packetDef = instructions[packetId + protocol]; Instruction[] packetDef = null;
if ( packetId + protocol < instructions.length )
{
packetDef = instructions[packetId + protocol];
}
if ( packetDef == null ) if ( packetDef == null )
{ {

View File

@ -61,7 +61,7 @@ public class InitialHandler extends PacketHandler implements Runnable, PendingCo
@Override @Override
public void handle(Packet1Login login) throws Exception public void handle(Packet1Login login) throws Exception
{ {
Preconditions.checkState( thisState == State.HANDSHAKE, "Not expecting FORGE LOGIN" ); Preconditions.checkState( thisState == State.LOGIN, "Not expecting FORGE LOGIN" );
Preconditions.checkState( forgeLogin == null, "Already received FORGE LOGIN" ); Preconditions.checkState( forgeLogin == null, "Already received FORGE LOGIN" );
forgeLogin = login; forgeLogin = login;
stream.setProtocol( PacketDefinitions.FORGE_PROTOCOL ); stream.setProtocol( PacketDefinitions.FORGE_PROTOCOL );
@ -149,7 +149,7 @@ public class InitialHandler extends PacketHandler implements Runnable, PendingCo
{ {
Preconditions.checkState( thisState == State.LOGIN, "Not expecting LOGIN" ); Preconditions.checkState( thisState == State.LOGIN, "Not expecting LOGIN" );
UserConnection userCon = new UserConnection( socket, this, stream, handshake,forgeLogin,loginMessages ); UserConnection userCon = new UserConnection( socket, this, stream, handshake, forgeLogin, loginMessages );
String server = ProxyServer.getInstance().getReconnectHandler().getServer( userCon ); String server = ProxyServer.getInstance().getReconnectHandler().getServer( userCon );
ServerInfo s = BungeeCord.getInstance().config.getServers().get( server ); ServerInfo s = BungeeCord.getInstance().config.getServers().get( server );
userCon.connect( s, true ); userCon.connect( s, true );