public void login() { try { long clientKey = ( ( long ) ( Math.random() * 99999999D ) << 32) + ( long ) ( Math.random() * 99999999D ), serverKey; stream.writeByte( 14 ); stream.writeByte( 100 ); flush(); in.skip( 9 ); queue( 8 ); serverKey = stream.readQWord(); System.out.println( "skey: " + serverKey ); int ai[] = new int[4]; ai[0] = ( int ) ( clientKey >> 32 ); ai[1] = ( int ) clientKey; ai[2] = ( int ) ( serverKey >> 32 ); ai[3] = ( int ) serverKey; stream.currentOffset = 0; stream.writeByte( 16 ); stream.writeByte( packetSize + 41 ); stream.writeByte( 255 ); stream.writeWord( 317 ); stream.writeByte( Main.random.nextBoolean() ? 1 : 0 ); for ( int i = 0; i < 9; i++ ) stream.writeDWord( Main.random.nextInt() ); stream.writeByte( packetSize ); stream.writeByte( 10 ); stream.writeQWord( clientKey ); stream.writeQWord( serverKey ); System.out.println( clientKey + ", " + serverKey ); stream.writeDWord( Main.random.nextInt() ); stream.writeString( name ); stream.writeString( name ); stream.packetEncryption = new ISAAC( ai ); flush(); } catch ( IOException e ) { System.err.println( "Error at '" + name + "': " + e.getMessage() ); } }