mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-12 01:21:20 -07:00
354 lines
18 KiB
Java
354 lines
18 KiB
Java
package org.runite.client;
|
|
import org.rs09.client.config.GameConfig;
|
|
|
|
import org.rs09.client.net.Connection;
|
|
|
|
import java.io.IOException;
|
|
import java.net.Socket;
|
|
import java.util.Objects;
|
|
|
|
class LoginHandler {
|
|
|
|
static CacheIndex aClass153_1680;
|
|
static boolean dynamic;
|
|
static int loginStage = 0;
|
|
static long isaacServerKey = 0L;
|
|
|
|
static void handleLogin() {
|
|
try {
|
|
if(0 != loginStage && 5 != loginStage) {
|
|
try {
|
|
if(++Class50.anInt820 > 2000) {
|
|
if(Class3_Sub15.activeConnection != null) {
|
|
Class3_Sub15.activeConnection.close();
|
|
Class3_Sub15.activeConnection = null;
|
|
}
|
|
|
|
if(Class166.anInt2079 >= 1) {
|
|
Class158.anInt2005 = -5;
|
|
loginStage = 0;
|
|
return;
|
|
}
|
|
|
|
Class50.anInt820 = 0;
|
|
if(Class140_Sub6.accRegistryPort == Class162.anInt2036) {
|
|
Class140_Sub6.accRegistryPort = Client.currentPort;
|
|
} else {
|
|
Class140_Sub6.accRegistryPort = Class162.anInt2036;
|
|
}
|
|
|
|
loginStage = 1;
|
|
++Class166.anInt2079;
|
|
}
|
|
if(loginStage == 1) {
|
|
Class3_Sub9.aClass64_2318 = Class38.signlink.method1441((byte)8, Class38_Sub1.accRegistryIp, GameConfig.SERVER_PORT + GameConfig.WORLD);//Class140_Sub6.accRegistryPort);
|
|
loginStage = 2;
|
|
}
|
|
|
|
if(loginStage == 2) {
|
|
if(Objects.requireNonNull(Class3_Sub9.aClass64_2318).anInt978 == 2) {
|
|
throw new IOException();
|
|
}
|
|
|
|
if(1 != Class3_Sub9.aClass64_2318.anInt978) {
|
|
return;
|
|
}
|
|
|
|
Class3_Sub15.activeConnection = new Connection((Socket)Class3_Sub9.aClass64_2318.anObject974, Class38.signlink);
|
|
Class3_Sub9.aClass64_2318 = null;
|
|
long var1 = PacketParser.aLong3202 = Class131.username.toLong();
|
|
Class3_Sub13_Sub1.outgoingBuffer.index = 0;
|
|
Class3_Sub13_Sub1.outgoingBuffer.writeByte(14);
|
|
int nameHash = (int)(var1 >> 16 & 31L);
|
|
Class3_Sub13_Sub1.outgoingBuffer.writeByte(nameHash);
|
|
Class3_Sub15.activeConnection.sendBytes(Class3_Sub13_Sub1.outgoingBuffer.buffer, 2);
|
|
if(WorldListEntry.aClass155_2627 != null) {
|
|
WorldListEntry.aClass155_2627.method2159(106);
|
|
}
|
|
|
|
if(Class3_Sub21.aClass155_2491 != null) {
|
|
Class3_Sub21.aClass155_2491.method2159(79);
|
|
}
|
|
|
|
int var4 = Class3_Sub15.activeConnection.readByte();
|
|
if(WorldListEntry.aClass155_2627 != null) {
|
|
WorldListEntry.aClass155_2627.method2159(68);
|
|
}
|
|
|
|
if(null != Class3_Sub21.aClass155_2491) {
|
|
Class3_Sub21.aClass155_2491.method2159(109);
|
|
}
|
|
|
|
if(var4 != 0) {
|
|
Class158.anInt2005 = var4;
|
|
loginStage = 0;
|
|
Class3_Sub15.activeConnection.close();
|
|
Class3_Sub15.activeConnection = null;
|
|
return;
|
|
}
|
|
|
|
loginStage = 3;
|
|
}
|
|
|
|
if(loginStage == 3) {
|
|
if(Class3_Sub15.activeConnection.availableBytes() < 8) {
|
|
return;
|
|
}
|
|
|
|
Class3_Sub15.activeConnection.readBytes(GraphicDefinition.incomingBuffer.buffer, 0, 8);
|
|
GraphicDefinition.incomingBuffer.index = 0;
|
|
isaacServerKey = GraphicDefinition.incomingBuffer.readLong();
|
|
int[] var9 = new int[4];
|
|
Class3_Sub13_Sub1.outgoingBuffer.index = 0;
|
|
var9[2] = (int)(isaacServerKey >> 32);
|
|
var9[3] = (int) isaacServerKey;
|
|
var9[1] = (int)(Math.random() * 9.9999999E7D);
|
|
var9[0] = (int)(Math.random() * 9.9999999E7D);
|
|
Class3_Sub13_Sub1.outgoingBuffer.writeByte(10);
|
|
Class3_Sub13_Sub1.outgoingBuffer.writeInt(var9[0]);
|
|
Class3_Sub13_Sub1.outgoingBuffer.writeInt(var9[1]);
|
|
Class3_Sub13_Sub1.outgoingBuffer.writeInt(var9[2]);
|
|
Class3_Sub13_Sub1.outgoingBuffer.writeInt(var9[3]);
|
|
Class3_Sub13_Sub1.outgoingBuffer.writeLong(Class131.username.toLong());
|
|
Class3_Sub13_Sub1.outgoingBuffer.writeString(Class131.password);
|
|
Class3_Sub13_Sub1.method229();
|
|
Class3_Sub13_Sub1.outgoingBuffer.rsaEncrypt(Class3_Sub13_Sub37.EXPONENT,Class3_Sub13_Sub14.MODULUS);
|
|
Unsorted.aClass3_Sub30_Sub1_2942.index = 0;
|
|
if(40 == Class143.loadingStage) {
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeByte(18);
|
|
} else {
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeByte(16);
|
|
}
|
|
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeShort(Class3_Sub13_Sub1.outgoingBuffer.index + 163 - -Class3_Sub13_Sub33.method326((byte)111, Class163_Sub2.paramSettings));
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(GameConfig.CLIENT_BUILD);
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeByte(Class7.anInt2161);
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeByte(!Client.paramAdvertisementSuppressed ?0:1);
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeByte(1);
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeByte(Class83.method1411(0));
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeShort(Class23.canvasWidth);
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeShort(Class140_Sub7.canvasHeight);
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeByte(Unsorted.anInt3671);
|
|
Class81.putRandomDataFile(Unsorted.aClass3_Sub30_Sub1_2942, true);
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeString(Class163_Sub2.paramSettings);
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(Class3_Sub26.paramAffid);
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(Class84.method1421());
|
|
CS2Script.aBoolean2705 = true;
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeShort(Class113.interfacePacketCounter);
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.skeletonsIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.skinsIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.configurationsIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.interfacesIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.soundFXIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.landscapesIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.musicIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.modelsIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.spritesIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.texturesIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.huffmanEncodingIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.music2Index.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.interfaceScriptsIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.fontsIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.soundFX2Index.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.soundFX3Index.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.objectConfigIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.clientscriptMaskIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.npcConfigIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.itemConfigIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.animationIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.graphicFXIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.clientScriptConfigIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.worldmapIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.quickchatMessagesIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.quickchatMenusIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.materialsIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.particlesConfigIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.writeInt(CacheIndex.libIndex.getReferenceTableCrc());
|
|
Unsorted.aClass3_Sub30_Sub1_2942.putBytes(Class3_Sub13_Sub1.outgoingBuffer.buffer, Class3_Sub13_Sub1.outgoingBuffer.index);
|
|
Class3_Sub15.activeConnection.sendBytes(Unsorted.aClass3_Sub30_Sub1_2942.buffer, Unsorted.aClass3_Sub30_Sub1_2942.index);
|
|
Class3_Sub13_Sub1.outgoingBuffer.method814(var9);
|
|
|
|
for(int var2 = 0; var2 < 4; ++var2) {
|
|
var9[var2] += 50;
|
|
}
|
|
|
|
GraphicDefinition.incomingBuffer.method814(var9);
|
|
loginStage = 4;
|
|
}
|
|
|
|
if(loginStage == 4) {
|
|
if(Class3_Sub15.activeConnection.availableBytes() < 1) {
|
|
return;
|
|
}
|
|
|
|
int opcode = Class3_Sub15.activeConnection.readByte();
|
|
if(opcode == 21) {
|
|
loginStage = 7;
|
|
} else if (opcode == 29) {
|
|
loginStage = 10;
|
|
} else {
|
|
if (opcode == 1) {
|
|
loginStage = 5;
|
|
Class158.anInt2005 = opcode;
|
|
return;
|
|
}
|
|
|
|
if (2 != opcode) {
|
|
if (opcode != 15) {
|
|
if (23 == opcode && Class166.anInt2079 < 1) {
|
|
loginStage = 1;
|
|
++Class166.anInt2079;
|
|
Class50.anInt820 = 0;
|
|
Class3_Sub15.activeConnection.close();
|
|
Class3_Sub15.activeConnection = null;
|
|
return;
|
|
}
|
|
|
|
Class158.anInt2005 = opcode;
|
|
loginStage = 0;
|
|
Class3_Sub15.activeConnection.close();
|
|
Class3_Sub15.activeConnection = null;
|
|
return;
|
|
}
|
|
|
|
loginStage = 0;
|
|
Class158.anInt2005 = opcode;
|
|
return;
|
|
}
|
|
|
|
loginStage = 8;
|
|
}
|
|
}
|
|
|
|
if(6 == loginStage) {
|
|
Class3_Sub13_Sub1.outgoingBuffer.index = 0;
|
|
Class3_Sub13_Sub1.outgoingBuffer.putOpcode(17);
|
|
Class3_Sub15.activeConnection.sendBytes(Class3_Sub13_Sub1.outgoingBuffer.buffer, Class3_Sub13_Sub1.outgoingBuffer.index);
|
|
loginStage = 4;
|
|
return;
|
|
}
|
|
|
|
if(loginStage == 7) {
|
|
if(Class3_Sub15.activeConnection.availableBytes() >= 1) {
|
|
Class3_Sub13_Sub34.anInt3413 = 60 * (3 + Class3_Sub15.activeConnection.readByte());
|
|
loginStage = 0;
|
|
Class158.anInt2005 = 21;
|
|
Class3_Sub15.activeConnection.close();
|
|
Class3_Sub15.activeConnection = null;
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(loginStage == 10) {
|
|
if(1 <= Class3_Sub15.activeConnection.availableBytes()) {
|
|
Class3_Sub26.anInt2561 = Class3_Sub15.activeConnection.readByte();
|
|
loginStage = 0;
|
|
Class158.anInt2005 = 29;
|
|
Class3_Sub15.activeConnection.close();
|
|
Class3_Sub15.activeConnection = null;
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(loginStage == 8) {
|
|
if(Class3_Sub15.activeConnection.availableBytes() < 14) {
|
|
return;
|
|
}
|
|
|
|
Class3_Sub15.activeConnection.readBytes(GraphicDefinition.incomingBuffer.buffer, 0, 14);
|
|
GraphicDefinition.incomingBuffer.index = 0;
|
|
Player.rights = GraphicDefinition.incomingBuffer.readUnsignedByte();
|
|
if(Player.rights == 2){
|
|
ClientLoader.setModPanelVisible(true);
|
|
} else {
|
|
ClientLoader.setModPanelVisible(false);
|
|
}
|
|
CS2Script.anInt3775 = GraphicDefinition.incomingBuffer.readUnsignedByte();
|
|
Class3_Sub15.aBoolean2433 = GraphicDefinition.incomingBuffer.readUnsignedByte() == 1;
|
|
Class121.aBoolean1641 = 1 == GraphicDefinition.incomingBuffer.readUnsignedByte();
|
|
Unsorted.aBoolean4063 = GraphicDefinition.incomingBuffer.readUnsignedByte() == 1;
|
|
Class3_Sub13_Sub14.aBoolean3166 = 1 == GraphicDefinition.incomingBuffer.readUnsignedByte();
|
|
Unsorted.aBoolean29 = GraphicDefinition.incomingBuffer.readUnsignedByte() == 1;
|
|
Class3_Sub1.localIndex = GraphicDefinition.incomingBuffer.readUnsignedShort();
|
|
Class3_Sub13_Sub29.disableGEBoxes = GraphicDefinition.incomingBuffer.readUnsignedByte() == 1;
|
|
Unsorted.isMember = GraphicDefinition.incomingBuffer.readUnsignedByte() == 1;
|
|
Class113.method1702(Unsorted.isMember);
|
|
Class8.method845(Unsorted.isMember);
|
|
if(!Client.paramAdvertisementSuppressed) {
|
|
if((!Class3_Sub15.aBoolean2433 || Unsorted.aBoolean4063) && !Class3_Sub13_Sub29.disableGEBoxes) {
|
|
try {
|
|
TextCore.aClass94_516.method1577(Class38.signlink.gameApplet);
|
|
} catch (Throwable var5) {
|
|
}
|
|
} else {
|
|
try {
|
|
Class97.aClass94_1374.method1577(Class38.signlink.gameApplet);
|
|
} catch (Throwable var6) {
|
|
}
|
|
}
|
|
}
|
|
|
|
Unsorted.incomingOpcode = GraphicDefinition.incomingBuffer.getOpcode();
|
|
dynamic = Unsorted.incomingOpcode == 214;
|
|
Unsorted.incomingPacketLength = GraphicDefinition.incomingBuffer.readUnsignedShort();
|
|
loginStage = 9;
|
|
}
|
|
|
|
if(loginStage == 9) {
|
|
if(Unsorted.incomingPacketLength > Class3_Sub15.activeConnection.availableBytes()) {
|
|
return;
|
|
}
|
|
|
|
GraphicDefinition.incomingBuffer.index = 0;
|
|
Class3_Sub15.activeConnection.readBytes(GraphicDefinition.incomingBuffer.buffer, 0, Unsorted.incomingPacketLength);
|
|
Class158.anInt2005 = 2;
|
|
loginStage = 0;
|
|
SequenceDefinition.resetAll();
|
|
Unsorted.anInt3606 = -1;
|
|
Class39.updateSceneGraph(dynamic);
|
|
Unsorted.incomingOpcode = -1;
|
|
return;
|
|
}
|
|
} catch (IOException var7) {
|
|
if(null != Class3_Sub15.activeConnection) {
|
|
Class3_Sub15.activeConnection.close();
|
|
Class3_Sub15.activeConnection = null;
|
|
}
|
|
|
|
if(Class166.anInt2079 >= 1) {
|
|
loginStage = 0;
|
|
Class158.anInt2005 = -4;
|
|
} else {
|
|
loginStage = 1;
|
|
Class50.anInt820 = 0;
|
|
++Class166.anInt2079;
|
|
if(Class140_Sub6.accRegistryPort == Class162.anInt2036) {
|
|
Class140_Sub6.accRegistryPort = Client.currentPort;
|
|
} else {
|
|
Class140_Sub6.accRegistryPort = Class162.anInt2036;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
} catch (RuntimeException var8) {
|
|
throw ClientErrorException.clientError(var8, "ri.A(" + ')');
|
|
}
|
|
}
|
|
|
|
static int method1753(int var0, int var1) {
|
|
var1 = var1 * (var0 & 127) >> 7;
|
|
if(var1 < 2) {
|
|
var1 = 2;
|
|
} else if(var1 > 126) {
|
|
var1 = 126;
|
|
}
|
|
|
|
return (var0 & '\uff80') + var1;
|
|
}
|
|
|
|
}
|