mixins: add RSArchiveMixin for cache access

This commit is contained in:
therealnull
2021-07-30 03:52:18 -04:00
parent c726d477a8
commit ede9a544b6
2 changed files with 31 additions and 23 deletions

View File

@@ -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 = "<init>", 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;
}
}
}

View File

@@ -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];
}