import java.io.DataInputStream; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.util.LinkedList; import java.util.Queue; import net.runelite.mapping.Export; import net.runelite.mapping.Implements; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @ObfuscatedName("ei") @Implements("UrlRequester") public class UrlRequester implements Runnable { @ObfuscatedName("c") @Export("thread") final Thread thread; @ObfuscatedName("t") @Export("isClosed") volatile boolean isClosed; @ObfuscatedName("o") @Export("requests") Queue requests; public UrlRequester() { this.requests = new LinkedList(); this.thread = new Thread(this); this.thread.setPriority(1); this.thread.start(); } @ObfuscatedName("c") @ObfuscatedSignature( signature = "(Ljava/net/URL;I)Leg;", garbageValue = "-838754437" ) @Export("request") public UrlRequest request(URL var1) { UrlRequest var2 = new UrlRequest(var1); synchronized(this) { this.requests.add(var2); this.notify(); return var2; } } @ObfuscatedName("t") @ObfuscatedSignature( signature = "(I)V", garbageValue = "1550899791" ) @Export("close") public void close() { this.isClosed = true; try { synchronized(this) { this.notify(); } this.thread.join(); } catch (InterruptedException var4) { } } public void run() { while (!this.isClosed) { try { UrlRequest var1; synchronized(this) { var1 = (UrlRequest)this.requests.poll(); if (var1 == null) { try { this.wait(); } catch (InterruptedException var13) { } continue; } } DataInputStream var2 = null; URLConnection var3 = null; try { var3 = var1.url.openConnection(); var3.setConnectTimeout(5000); var3.setReadTimeout(5000); var3.setUseCaches(false); var3.setRequestProperty("Connection", "close"); int var7 = var3.getContentLength(); if (var7 >= 0) { byte[] var5 = new byte[var7]; var2 = new DataInputStream(var3.getInputStream()); var2.readFully(var5); var1.response0 = var5; } var1.isDone0 = true; } catch (IOException var14) { var1.isDone0 = true; } finally { if (var2 != null) { var2.close(); } if (var3 != null && var3 instanceof HttpURLConnection) { ((HttpURLConnection)var3).disconnect(); } } } catch (Exception var17) { class225.RunException_sendStackTrace((String)null, var17); } } } @ObfuscatedName("ih") @ObfuscatedSignature( signature = "(Lhn;IIZI)V", garbageValue = "1992355059" ) @Export("alignWidgetSize") static void alignWidgetSize(Widget var0, int var1, int var2, boolean var3) { int var4 = var0.width; int var5 = var0.height; if (var0.widthAlignment == 0) { var0.width = var0.rawWidth; } else if (var0.widthAlignment == 1) { var0.width = var1 - var0.rawWidth; } else if (var0.widthAlignment == 2) { var0.width = var0.rawWidth * var1 >> 14; } if (var0.heightAlignment == 0) { var0.height = var0.rawHeight; } else if (var0.heightAlignment == 1) { var0.height = var2 - var0.rawHeight; } else if (var0.heightAlignment == 2) { var0.height = var2 * var0.rawHeight >> 14; } if (var0.widthAlignment == 4) { var0.width = var0.field2589 * var0.height / var0.field2590; } if (var0.heightAlignment == 4) { var0.height = var0.field2590 * var0.width / var0.field2589; } if (var0.contentType == 1337) { Client.viewportWidget = var0; } if (var3 && var0.onResize != null && (var4 != var0.width || var5 != var0.height)) { ScriptEvent var6 = new ScriptEvent(); var6.widget = var0; var6.args = var0.onResize; Client.scriptEvents.addFirst(var6); } } @ObfuscatedName("kv") @ObfuscatedSignature( signature = "(Lkp;II)V", garbageValue = "372064004" ) static void method3373(Buffer var0, int var1) { byte[] var2 = var0.array; if (Client.randomDatData == null) { Client.randomDatData = new byte[24]; } class301.writeRandomDat(var2, var1, Client.randomDatData, 0, 24); WorldMapSprite.method427(var0, var1); } }