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);