Files
runelite/runescape-client/src/main/java/UserComparator8.java
Owain van Brakel 5e9375bc8b project: rev 200
2021-10-06 13:56:56 +02:00

193 lines
5.0 KiB
Java

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.Random;
import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("cb")
@Implements("UserComparator8")
public class UserComparator8 extends AbstractUserComparator {
@ObfuscatedName("er")
@ObfuscatedSignature(
descriptor = "Lky;"
)
@Export("archive10")
static Archive archive10;
@ObfuscatedName("gz")
@ObfuscatedSignature(
descriptor = "Llt;"
)
@Export("fontPlain11")
static Font fontPlain11;
@ObfuscatedName("l")
@Export("reversed")
final boolean reversed;
public UserComparator8(boolean var1) {
this.reversed = var1;
}
@ObfuscatedName("l")
@ObfuscatedSignature(
descriptor = "(Lmi;Lmi;B)I",
garbageValue = "16"
)
@Export("compareBuddy")
int compareBuddy(Buddy var1, Buddy var2) {
if (Client.worldId == var1.world) {
if (var2.world != Client.worldId) {
return this.reversed ? -1 : 1;
}
} else if (var2.world == Client.worldId) {
return this.reversed ? 1 : -1;
}
return this.compareUser(var1, var2);
}
public int compare(Object var1, Object var2) {
return this.compareBuddy((Buddy)var1, (Buddy)var2);
}
@ObfuscatedName("l")
@ObfuscatedSignature(
descriptor = "(JLjava/lang/String;B)I",
garbageValue = "7"
)
static final int method2413(long var0, String var2) {
Random var3 = new Random();
Buffer var4 = new Buffer(128);
Buffer var5 = new Buffer(128);
int[] var6 = new int[]{var3.nextInt(), var3.nextInt(), (int)(var0 >> 32), (int)var0};
var4.writeByte(10);
int var7;
for (var7 = 0; var7 < 4; ++var7) {
var4.writeInt(var3.nextInt());
}
var4.writeInt(var6[0]);
var4.writeInt(var6[1]);
var4.writeLong(var0);
var4.writeLong(0L);
for (var7 = 0; var7 < 4; ++var7) {
var4.writeInt(var3.nextInt());
}
var4.encryptRsa(class65.field856, class65.field852);
var5.writeByte(10);
for (var7 = 0; var7 < 3; ++var7) {
var5.writeInt(var3.nextInt());
}
var5.writeLong(var3.nextLong());
var5.writeLongMedium(var3.nextLong());
if (Client.randomDatData != null) {
var5.writeBytes(Client.randomDatData, 0, Client.randomDatData.length);
} else {
byte[] var8 = new byte[24];
try {
JagexCache.JagexCache_randomDat.seek(0L);
JagexCache.JagexCache_randomDat.readFully(var8);
int var9;
for (var9 = 0; var9 < 24 && var8[var9] == 0; ++var9) {
}
if (var9 >= 24) {
throw new IOException();
}
} catch (Exception var23) {
for (int var10 = 0; var10 < 24; ++var10) {
var8[var10] = -1;
}
}
var5.writeBytes(var8, 0, var8.length);
}
var5.writeLong(var3.nextLong());
var5.encryptRsa(class65.field856, class65.field852);
var7 = class113.stringCp1252NullTerminatedByteSize(var2);
if (var7 % 8 != 0) {
var7 += 8 - var7 % 8;
}
Buffer var24 = new Buffer(var7);
var24.writeStringCp1252NullTerminated(var2);
var24.offset = var7;
var24.xteaEncryptAll(var6);
Buffer var18 = new Buffer(var5.offset + var4.offset + var24.offset + 5);
var18.writeByte(2);
var18.writeByte(var4.offset);
var18.writeBytes(var4.array, 0, var4.offset);
var18.writeByte(var5.offset);
var18.writeBytes(var5.array, 0, var5.offset);
var18.writeShort(var24.offset);
var18.writeBytes(var24.array, 0, var24.offset);
byte[] var11 = var18.array;
String var20 = WallDecoration.method4580(var11, 0, var11.length);
String var12 = var20;
try {
URL var13 = new URL(HitSplatDefinition.method3168("services", false) + "m=accountappeal/login.ws");
URLConnection var14 = var13.openConnection();
var14.setDoInput(true);
var14.setDoOutput(true);
var14.setConnectTimeout(5000);
OutputStreamWriter var15 = new OutputStreamWriter(var14.getOutputStream());
var15.write("data2=" + Language.method5476(var12) + "&dest=" + Language.method5476("passwordchoice.ws"));
var15.flush();
InputStream var16 = var14.getInputStream();
var18 = new Buffer(new byte[1000]);
do {
int var17 = var16.read(var18.array, var18.offset, 1000 - var18.offset);
if (var17 == -1) {
var15.close();
var16.close();
String var21 = new String(var18.array);
if (var21.startsWith("OFFLINE")) {
return 4;
} else if (var21.startsWith("WRONG")) {
return 7;
} else if (var21.startsWith("RELOAD")) {
return 3;
} else if (var21.startsWith("Not permitted for social network accounts.")) {
return 6;
} else {
var18.xteaDecryptAll(var6);
while (var18.offset > 0 && var18.array[var18.offset - 1] == 0) {
--var18.offset;
}
var21 = new String(var18.array, 0, var18.offset);
if (GrandExchangeOffer.method5406(var21)) {
LoginScreenAnimation.openURL(var21, true, false);
return 2;
} else {
return 5;
}
}
}
var18.offset += var17;
} while(var18.offset < 1000);
return 5;
} catch (Throwable var22) {
var22.printStackTrace();
return 5;
}
}
}