From ede9a544b6da6a128ad510ed479b08cee2eaa143 Mon Sep 17 00:00:00 2001 From: therealnull Date: Fri, 30 Jul 2021 03:52:18 -0400 Subject: [PATCH 1/3] mixins: add RSArchiveMixin for cache access --- .../net/runelite/mixins/RSArchiveMixin.java | 27 +++++++++++++++++++ .../net/runelite/mixins/RSClientMixin.java | 27 +++---------------- 2 files changed, 31 insertions(+), 23 deletions(-) create mode 100644 runelite-mixins/src/main/java/net/runelite/mixins/RSArchiveMixin.java diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSArchiveMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSArchiveMixin.java new file mode 100644 index 0000000000..90cf53251c --- /dev/null +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSArchiveMixin.java @@ -0,0 +1,27 @@ +package net.runelite.mixins; + +import net.runelite.api.mixins.Inject; +import net.runelite.api.mixins.MethodHook; +import net.runelite.api.mixins.Mixin; +import net.runelite.api.mixins.Shadow; +import net.runelite.rs.api.RSArchive; +import net.runelite.rs.api.RSArchiveDisk; +import net.runelite.rs.api.RSClient; + +@Mixin(RSArchive.class) +public abstract class RSArchiveMixin implements RSArchive { + + @Shadow("client") + private static RSClient client; + + @Shadow("archives") + private static RSArchive[] archives; + + @MethodHook(value = "", end = true) + @Inject + private void rl$init(RSArchiveDisk var1, RSArchiveDisk var2, int archive, boolean var4, boolean var5, boolean var6) { + if (archive >= 0 && archive < 21) { + archives[archive] = this; + } + } +} diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index 6a26df384e..62d490571d 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -123,29 +123,7 @@ import net.runelite.api.widgets.WidgetConfig; import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.api.widgets.WidgetType; -import net.runelite.rs.api.RSAbstractArchive; -import net.runelite.rs.api.RSChatChannel; -import net.runelite.rs.api.RSClient; -import net.runelite.rs.api.RSEnumComposition; -import net.runelite.rs.api.RSFriendSystem; -import net.runelite.rs.api.RSIndexedSprite; -import net.runelite.rs.api.RSInterfaceParent; -import net.runelite.rs.api.RSItemContainer; -import net.runelite.rs.api.RSNPC; -import net.runelite.rs.api.RSNode; -import net.runelite.rs.api.RSNodeDeque; -import net.runelite.rs.api.RSNodeHashTable; -import net.runelite.rs.api.RSPacketBuffer; -import net.runelite.rs.api.RSPlayer; -import net.runelite.rs.api.RSScene; -import net.runelite.rs.api.RSScriptEvent; -import net.runelite.rs.api.RSSpritePixels; -import net.runelite.rs.api.RSStructComposition; -import net.runelite.rs.api.RSTile; -import net.runelite.rs.api.RSTileItem; -import net.runelite.rs.api.RSUsername; -import net.runelite.rs.api.RSWidget; -import net.runelite.rs.api.RSWorld; +import net.runelite.rs.api.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -2286,5 +2264,8 @@ public abstract class RSClientMixin implements RSClient client.getCallbacks().post(new ClanChannelChanged(client.getClanChannel(), false)); } + + @Inject + public static RSArchive[] archives = new RSArchive[21]; } From 806bd66f949bc6990a177dcb28c915a22ea7c7ba Mon Sep 17 00:00:00 2001 From: therealnull Date: Fri, 30 Jul 2021 03:54:38 -0400 Subject: [PATCH 2/3] mixins: fucking wildcards YEEEEEEHAWWW --- .../net/runelite/mixins/RSClientMixin.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index 62d490571d..daccfc62ff 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -123,7 +123,30 @@ import net.runelite.api.widgets.WidgetConfig; import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.api.widgets.WidgetType; -import net.runelite.rs.api.*; +import net.runelite.rs.api.RSArchive; +import net.runelite.rs.api.RSAbstractArchive; +import net.runelite.rs.api.RSChatChannel; +import net.runelite.rs.api.RSClient; +import net.runelite.rs.api.RSEnumComposition; +import net.runelite.rs.api.RSFriendSystem; +import net.runelite.rs.api.RSIndexedSprite; +import net.runelite.rs.api.RSInterfaceParent; +import net.runelite.rs.api.RSItemContainer; +import net.runelite.rs.api.RSNPC; +import net.runelite.rs.api.RSNode; +import net.runelite.rs.api.RSNodeDeque; +import net.runelite.rs.api.RSNodeHashTable; +import net.runelite.rs.api.RSPacketBuffer; +import net.runelite.rs.api.RSPlayer; +import net.runelite.rs.api.RSScene; +import net.runelite.rs.api.RSScriptEvent; +import net.runelite.rs.api.RSSpritePixels; +import net.runelite.rs.api.RSStructComposition; +import net.runelite.rs.api.RSTile; +import net.runelite.rs.api.RSTileItem; +import net.runelite.rs.api.RSUsername; +import net.runelite.rs.api.RSWidget; +import net.runelite.rs.api.RSWorld; import org.slf4j.Logger; import org.slf4j.LoggerFactory; From e60a41c355f4fc5b94a0b7bf20af9b3f4c97fc53 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Mon, 2 Aug 2021 12:18:30 +0200 Subject: [PATCH 3/3] mixins: Checkstyle --- .../net/runelite/mixins/RSArchiveMixin.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSArchiveMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSArchiveMixin.java index 90cf53251c..545176e05f 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSArchiveMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSArchiveMixin.java @@ -9,19 +9,22 @@ import net.runelite.rs.api.RSArchiveDisk; import net.runelite.rs.api.RSClient; @Mixin(RSArchive.class) -public abstract class RSArchiveMixin implements RSArchive { +public abstract class RSArchiveMixin implements RSArchive +{ - @Shadow("client") - private static RSClient client; + @Shadow("client") + private static RSClient client; - @Shadow("archives") - private static RSArchive[] archives; + @Shadow("archives") + private static RSArchive[] archives; - @MethodHook(value = "", end = true) - @Inject - private void rl$init(RSArchiveDisk var1, RSArchiveDisk var2, int archive, boolean var4, boolean var5, boolean var6) { - if (archive >= 0 && archive < 21) { - archives[archive] = this; - } - } + @MethodHook(value = "", end = true) + @Inject + private void rl$init(RSArchiveDisk var1, RSArchiveDisk var2, int archive, boolean var4, boolean var5, boolean var6) + { + if (archive >= 0 && archive < 21) + { + archives[archive] = this; + } + } }