import net.runelite.mapping.Export; import net.runelite.mapping.Implements; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @ObfuscatedName("fv") @Implements("UserComparator3") public class UserComparator3 extends AbstractUserComparator { @ObfuscatedName("h") @Export("reversed") final boolean reversed; public UserComparator3(boolean var1) { this.reversed = var1; } @ObfuscatedName("h") @ObfuscatedSignature( descriptor = "(Lkz;Lkz;B)I", garbageValue = "96" ) @Export("compareBuddy") int compareBuddy(Buddy var1, Buddy var2) { if (var2.world != var1.world) { return this.reversed ? var1.world - var2.world : var2.world - var1.world; } else { return this.compareUser(var1, var2); } } public int compare(Object var1, Object var2) { return this.compareBuddy((Buddy)var1, (Buddy)var2); } @ObfuscatedName("x") @ObfuscatedSignature( descriptor = "(Lky;B)V", garbageValue = "10" ) static final void method3515(PacketBuffer var0) { int var1 = 0; var0.importIndex(); byte[] var10000; int var2; int var4; int var5; for (var2 = 0; var2 < Players.Players_count; ++var2) { var5 = Players.Players_indices[var2]; if ((Players.field1252[var5] & 1) == 0) { if (var1 > 0) { --var1; var10000 = Players.field1252; var10000[var5] = (byte)(var10000[var5] | 2); } else { var4 = var0.readBits(1); if (var4 == 0) { var1 = Skills.method4146(var0); var10000 = Players.field1252; var10000[var5] = (byte)(var10000[var5] | 2); } else { class349.readPlayerUpdate(var0, var5); } } } } var0.exportIndex(); if (var1 != 0) { throw new RuntimeException(); } else { var0.importIndex(); for (var2 = 0; var2 < Players.Players_count; ++var2) { var5 = Players.Players_indices[var2]; if ((Players.field1252[var5] & 1) != 0) { if (var1 > 0) { --var1; var10000 = Players.field1252; var10000[var5] = (byte)(var10000[var5] | 2); } else { var4 = var0.readBits(1); if (var4 == 0) { var1 = Skills.method4146(var0); var10000 = Players.field1252; var10000[var5] = (byte)(var10000[var5] | 2); } else { class349.readPlayerUpdate(var0, var5); } } } } var0.exportIndex(); if (var1 != 0) { throw new RuntimeException(); } else { var0.importIndex(); for (var2 = 0; var2 < Players.Players_emptyIdxCount; ++var2) { var5 = Players.Players_emptyIndices[var2]; if ((Players.field1252[var5] & 1) != 0) { if (var1 > 0) { --var1; var10000 = Players.field1252; var10000[var5] = (byte)(var10000[var5] | 2); } else { var4 = var0.readBits(1); if (var4 == 0) { var1 = Skills.method4146(var0); var10000 = Players.field1252; var10000[var5] = (byte)(var10000[var5] | 2); } else if (WorldMapSection0.updateExternalPlayer(var0, var5)) { var10000 = Players.field1252; var10000[var5] = (byte)(var10000[var5] | 2); } } } } var0.exportIndex(); if (var1 != 0) { throw new RuntimeException(); } else { var0.importIndex(); for (var2 = 0; var2 < Players.Players_emptyIdxCount; ++var2) { var5 = Players.Players_emptyIndices[var2]; if ((Players.field1252[var5] & 1) == 0) { if (var1 > 0) { --var1; var10000 = Players.field1252; var10000[var5] = (byte)(var10000[var5] | 2); } else { var4 = var0.readBits(1); if (var4 == 0) { var1 = Skills.method4146(var0); var10000 = Players.field1252; var10000[var5] = (byte)(var10000[var5] | 2); } else if (WorldMapSection0.updateExternalPlayer(var0, var5)) { var10000 = Players.field1252; var10000[var5] = (byte)(var10000[var5] | 2); } } } } var0.exportIndex(); if (var1 != 0) { throw new RuntimeException(); } else { Players.Players_count = 0; Players.Players_emptyIdxCount = 0; for (var2 = 1; var2 < 2048; ++var2) { var10000 = Players.field1252; var10000[var2] = (byte)(var10000[var2] >> 1); Player var3 = Client.players[var2]; if (var3 != null) { Players.Players_indices[++Players.Players_count - 1] = var2; } else { Players.Players_emptyIndices[++Players.Players_emptyIdxCount - 1] = var2; } } } } } } } }