From 8bc6acddb93e4a52ddaafafe43921153aa2308a7 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Wed, 27 Oct 2021 02:47:38 +0200 Subject: [PATCH] project: More mixins --- .../net/runelite/mixins/RSClientMixin.java | 19 +++++++++++++++++++ .../runelite/mixins/RSItemContainerMixin.java | 11 +++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) 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 e66e32b460..03fa001d20 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -950,6 +950,25 @@ public abstract class RSClientMixin implements RSClient return (RSItemContainer) itemContainers.get(inventory.getId()); } + @Inject + @Override + public RSItemContainer getItemContainer(int id) + { + RSNodeHashTable itemContainers = getItemContainers(); + + for (Object itemContainer : itemContainers) + { + RSItemContainer container = ((RSItemContainer) itemContainer); + + if (((RSItemContainer) itemContainer).getId() == id) + { + return container; + } + } + + return null; + } + @Inject @Override public boolean isFriended(String name, boolean mustBeLoggedIn) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSItemContainerMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSItemContainerMixin.java index 69c5652e58..f072ff25f4 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSItemContainerMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSItemContainerMixin.java @@ -44,6 +44,13 @@ public abstract class RSItemContainerMixin implements RSItemContainer @Shadow("changedItemContainers") private static int[] changedItemContainers; + @Inject + @Override + public int getId() + { + return (int) this.getHash(); + } + @Inject @Override public Item[] getItems() @@ -131,7 +138,7 @@ public abstract class RSItemContainerMixin implements RSItemContainer int containerId = changedItemContainers[changedId]; RSNodeHashTable itemContainers = client.getItemContainers(); - + RSItemContainer changedContainer = (RSItemContainer) itemContainers.get(containerId); RSItemContainer changedContainerInvOther = (RSItemContainer) itemContainers.get(containerId | 0x8000); @@ -140,7 +147,7 @@ public abstract class RSItemContainerMixin implements RSItemContainer ItemContainerChanged event = new ItemContainerChanged(containerId, changedContainer); client.getCallbacks().postDeferred(event); } - + if (changedContainerInvOther != null) { ItemContainerChanged event = new ItemContainerChanged(containerId | 0x8000, changedContainerInvOther);