A RuneTek3 client (377) that is deobfuscated, converted to Kotlin, and includes QoL improvements.
0

Configure Feed

Select the types of activity you want to include in your feed.

moved teleports always light up to configuration

+29 -43
+18 -40
src/main/java/com/jagex/runescape/Game.java
··· 1918 1918 1919 1919 private DataInputStream openJaggrabStream(String request) throws IOException { 1920 1920 if (!useJaggrab) { 1921 - if (SignLink.applet != null) 1922 - return SignLink.openURL(request); 1923 - else 1924 - return new DataInputStream((new URL(getCodeBase(), request)).openStream()); 1921 + return SignLink.openURL(request); 1925 1922 } 1926 1923 1927 1924 if (jaggrabSocket != null) { ··· 1943 1940 } 1944 1941 1945 1942 public Socket openSocket(int port) throws IOException { 1946 - if (SignLink.applet != null) 1947 - return SignLink.openSocket(port); 1948 - 1949 1943 return new Socket(InetAddress.getByName(getCodeBase().getHost()), port); 1950 1944 } 1951 1945 ··· 3428 3422 } 3429 3423 } 3430 3424 3431 - public String method37(int i) { 3432 - if (i != -42588) 3433 - opcode = buffer.getUnsignedByte(); 3434 - if (SignLink.applet != null) 3435 - return SignLink.applet.getDocumentBase().getHost().toLowerCase(); 3436 - else 3437 - return "runescape.com"; 3438 - 3439 - } 3440 - 3441 3425 private void method38(int i, int j, int k, Player player) { 3442 3426 if (player == localPlayer) 3443 3427 return; ··· 7343 7327 } 7344 7328 7345 7329 public URL getCodeBase() { 7346 - if (SignLink.applet != null) 7347 - return SignLink.applet.getCodeBase(); 7348 - 7349 - 7350 7330 try { 7351 7331 return new URL("http://" + Configuration.SERVER_ADDRESS + ":" + (Configuration.HTTP_PORT + portOffset)); 7352 7332 } catch (MalformedURLException e) { ··· 8881 8861 public void startRunnable(Runnable runnable, int i) { 8882 8862 if (i > 10) 8883 8863 i = 10; 8884 - if (SignLink.applet != null) { 8885 - SignLink.startThread(runnable, i); 8886 - } else { 8887 - super.startRunnable(runnable, i); 8888 - } 8864 + super.startRunnable(runnable, i); 8889 8865 } 8890 8866 8891 8867 private void processPlayerAdditions(boolean priority) { // renderPlayers ··· 10823 10799 } 10824 10800 10825 10801 public Component getParentComponent() { 10826 - if (SignLink.applet != null) 10827 - return SignLink.applet; 10828 10802 if (super.gameFrame != null) 10829 10803 return super.gameFrame; 10830 10804 else ··· 11196 11170 imageRGB = child.enabledImage; 11197 11171 else 11198 11172 imageRGB = child.disabledImage; 11199 - switch (child.id) { 11200 - case 1164: 11201 - case 1167: 11202 - case 1170: 11203 - case 1174: 11204 - case 1540: 11205 - case 1541: 11206 - case 7455: 11207 - imageRGB = child.enabledImage; 11208 - break; 11209 - default: 11210 - break; 11173 + if (Configuration.FREE_TELEPORTS) { 11174 + 11175 + switch (child.id) { 11176 + case 1164: 11177 + case 1167: 11178 + case 1170: 11179 + case 1174: 11180 + case 1540: 11181 + case 1541: 11182 + case 7455: 11183 + imageRGB = child.enabledImage; 11184 + break; 11185 + default: 11186 + break; 11187 + } 11211 11188 } 11189 + 11212 11190 if (imageRGB != null) 11213 11191 imageRGB.drawImage(k2, l2); 11214 11192 } else if (child.type == 6) {
+8
src/main/java/com/jagex/runescape/config/Configuration.java
··· 8 8 9 9 public class Configuration { 10 10 11 + 11 12 public static void read() { 12 13 try { 13 14 final Yaml yaml = new Yaml(); ··· 33 34 USERNAME = (String) login.get("username"); 34 35 PASSWORD = (String) login.get("password"); 35 36 ROOFS_ENABLED = (boolean) game.get("roofsEnabled"); 37 + FREE_TELEPORTS = (boolean) game.get("freeTeleports"); 36 38 37 39 if(USERNAME == null) { 38 40 USERNAME = ""; ··· 113 115 * Do you want to render roofs 114 116 */ 115 117 public static boolean ROOFS_ENABLED = true; 118 + 119 + /** 120 + * Always light up teleports 121 + */ 122 + public static boolean FREE_TELEPORTS = true; 123 + 116 124 117 125 }
+3 -3
src/main/java/com/jagex/runescape/util/SignLink.java
··· 1 1 package com.jagex.runescape.util; 2 2 3 + import com.jagex.runescape.config.Configuration; 4 + 3 5 import javax.sound.midi.*; 4 6 import javax.sound.sampled.*; 5 - import java.applet.Applet; 6 7 import java.io.*; 7 8 import java.net.InetAddress; 8 9 import java.net.Socket; ··· 18 19 public static int storeId = 32; 19 20 public static RandomAccessFile cacheData = null; 20 21 public static final RandomAccessFile[] cacheIndex = new RandomAccessFile[5]; 21 - public static Applet applet = null; 22 22 private static boolean active; 23 23 private static int threadLiveId; 24 24 private static InetAddress inetAddress; ··· 205 205 try { 206 206 System.out.println("urlStream"); 207 207 208 - urlStream = new DataInputStream((new URL(applet.getCodeBase(), urlRequest)).openStream()); 208 + urlStream = new DataInputStream((new URL(new URL(Configuration.SERVER_ADDRESS), urlRequest)).openStream()); 209 209 } catch (Exception _ex) { 210 210 urlStream = null; 211 211 }