diff --git a/runelite-client/src/main/java/net/runelite/client/util/ItemUtil.java b/runelite-client/src/main/java/net/runelite/client/util/ItemUtil.java index 1a29922ff5..c3cfeb599e 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/ItemUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/util/ItemUtil.java @@ -27,6 +27,7 @@ package net.runelite.client.util; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.Set; import javax.annotation.Nullable; @@ -84,7 +85,23 @@ public class ItemUtil */ public static boolean containsAllItemIds(Item[] itemArray, Set ids) { - return toGameItemMap(itemArray, ids).size() == ids.size(); + final Set found = new HashSet<>(); + for (Item i : itemArray) + { + final int id = i.getId(); + if (ids.contains(id)) + { + found.add(id); + // Early break if possible + if (found.size() == ids.size()) + { + return true; + } + } + + } + + return found.size() == ids.size(); } /**