Merge pull request #3016 from zeruth/archive-mixin

mixins: add RSArchiveMixin for cache access
This commit is contained in:
Owain van Brakel
2021-08-02 12:26:44 +02:00
committed by GitHub
2 changed files with 34 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
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,6 +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.RSArchive;
import net.runelite.rs.api.RSAbstractArchive;
import net.runelite.rs.api.RSChatChannel;
import net.runelite.rs.api.RSClient;
@@ -2286,5 +2287,8 @@ public abstract class RSClientMixin implements RSClient
client.getCallbacks().post(new ClanChannelChanged(client.getClanChannel(), false));
}
@Inject
public static RSArchive[] archives = new RSArchive[21];
}