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.

fix: bug with addign friends and ignores

+24 -5
+22 -5
src/main/java/com/jagex/runescape/Game.java
··· 657 657 } catch (RuntimeException runtimeexception) { 658 658 SignLink.reportError("94629, " + name + ", " + ", " + runtimeexception.toString()); 659 659 } 660 - throw new RuntimeException(); 661 660 } 662 661 663 662 private void addIgnore(long name) { ··· 689 688 } catch (RuntimeException runtimeexception) { 690 689 SignLink.reportError("27939, " + -916 + ", " + name + ", " + runtimeexception.toString()); 691 690 } 692 - throw new RuntimeException(); 693 691 } 694 692 695 693 private void adjustMidiVolume(boolean flag, byte byte0, int volume) { ··· 1204 1202 } 1205 1203 if (row >= 401 && row <= 500) { 1206 1204 menuActionTexts[menuActionRow] = "Remove @whi@" + widget.disabledText; 1207 - menuActionTypes[menuActionRow] = Actions.REMOVE_FRIEND; 1205 + menuActionTypes[menuActionRow] = Actions.REMOVE_IGNORE; 1208 1206 menuActionRow++; 1209 1207 return true; 1210 1208 } else { ··· 1669 1667 int key = readCharacter(); 1670 1668 if (key == -1) 1671 1669 break; 1670 + // F-key sidebar tab switching (F1-F12) 1671 + if (key >= 1008 && key <= 1019) { 1672 + int fkey = key - 1008; // 0=F1, 1=F2, ..., 11=F12 1673 + int[] fkeyToTab = { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12 }; 1674 + if (fkey < fkeyToTab.length) { 1675 + int tab = fkeyToTab[fkey]; 1676 + if (tabWidgetIds[tab] != -1) { 1677 + currentTabId = tab; 1678 + redrawTabArea = true; 1679 + drawTabIcons = true; 1680 + } 1681 + } 1682 + continue; 1683 + } 1672 1684 if (openScreenWidgetId != -1 && openScreenWidgetId == reportAbuseInterfaceID) { 1673 1685 if (key == 8 && reportedName.length() > 0) 1674 1686 reportedName = reportedName.substring(0, reportedName.length() - 1); ··· 4172 4184 } catch (RuntimeException runtimeexception) { 4173 4185 SignLink.reportError("38799, " + l + ", " + runtimeexception.toString()); 4174 4186 } 4175 - throw new RuntimeException(); 4176 4187 } 4177 4188 4178 4189 private void processMenuClick() { ··· 5891 5902 } 5892 5903 } 5893 5904 if (actor.graphic != -1 && pulseCycle >= actor.spotGraphicDelay) { 5905 + if (actor.graphic < 0 || actor.graphic >= SpotAnimation.spotAnimationCount 5906 + || SpotAnimation.cache[actor.graphic] == null 5907 + || SpotAnimation.cache[actor.graphic].sequences == null) { 5908 + actor.graphic = -1; 5909 + } 5910 + } 5911 + if (actor.graphic != -1 && pulseCycle >= actor.spotGraphicDelay) { 5894 5912 if (actor.currentAnimation < 0) 5895 5913 actor.currentAnimation = 0; 5896 5914 AnimationSequence animationSequence = SpotAnimation.cache[actor.graphic].sequences; ··· 7889 7907 } catch (RuntimeException runtimeexception) { 7890 7908 SignLink.reportError("45745, " + 325 + ", " + l + ", " + runtimeexception.toString()); 7891 7909 } 7892 - throw new RuntimeException(); 7893 7910 } 7894 7911 7895 7912 // public String getParameter(String s) {
+2
src/main/java/com/jagex/runescape/util/ChatEncoder.java
··· 63 63 if (chatMessage.length() > 80) 64 64 chatMessage = chatMessage.substring(0, 80); 65 65 66 + chatMessage = chatMessage.toLowerCase(); 67 + 66 68 int chatMessageCharacter = -1; 67 69 68 70 for (int index = 0; index < chatMessage.length(); index++) {