From cd5155c4b1053b4250d9618f6d34c1f488934cf7 Mon Sep 17 00:00:00 2001 From: raiyni Date: Fri, 12 Oct 2018 09:18:23 -0500 Subject: [PATCH] Add fulfilledBy(int itemId) to item requirements --- .../clues/emote/AllRequirementsCollection.java | 14 ++++++++++++++ .../clues/emote/AnyRequirementCollection.java | 14 ++++++++++++++ .../cluescrolls/clues/emote/ItemRequirement.java | 2 ++ .../clues/emote/RangeItemRequirement.java | 6 ++++++ .../clues/emote/SingleItemRequirement.java | 6 ++++++ .../clues/emote/SlotLimitationRequirement.java | 6 ++++++ 6 files changed, 48 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/AllRequirementsCollection.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/AllRequirementsCollection.java index 73ce1c8bcb..2efe470b84 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/AllRequirementsCollection.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/AllRequirementsCollection.java @@ -36,6 +36,20 @@ public class AllRequirementsCollection implements ItemRequirement this.requirements = requirements; } + @Override + public boolean fulfilledBy(int itemId) + { + for (ItemRequirement requirement : requirements) + { + if (requirement.fulfilledBy(itemId)) + { + return true; + } + } + + return false; + } + @Override public boolean fulfilledBy(Item[] items) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/AnyRequirementCollection.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/AnyRequirementCollection.java index b412952767..02a713f7b0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/AnyRequirementCollection.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/AnyRequirementCollection.java @@ -38,6 +38,20 @@ public class AnyRequirementCollection implements ItemRequirement this.requirements = requirements; } + @Override + public boolean fulfilledBy(int itemId) + { + for (ItemRequirement requirement : requirements) + { + if (requirement.fulfilledBy(itemId)) + { + return true; + } + } + + return false; + } + @Override public boolean fulfilledBy(Item[] items) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/ItemRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/ItemRequirement.java index aebd3aba1b..ba70f45871 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/ItemRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/ItemRequirement.java @@ -29,6 +29,8 @@ import net.runelite.api.Item; public interface ItemRequirement { + boolean fulfilledBy(int itemId); + boolean fulfilledBy(Item[] items); String getCollectiveName(Client client); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/RangeItemRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/RangeItemRequirement.java index 833de8ca74..92d1f14de8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/RangeItemRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/RangeItemRequirement.java @@ -40,6 +40,12 @@ public class RangeItemRequirement implements ItemRequirement this.endItemId = endItemId; } + @Override + public boolean fulfilledBy(int itemId) + { + return itemId >= startItemId && itemId <= endItemId; + } + @Override public boolean fulfilledBy(Item[] items) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/SingleItemRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/SingleItemRequirement.java index ea164374e5..5c768b38c7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/SingleItemRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/SingleItemRequirement.java @@ -37,6 +37,12 @@ public class SingleItemRequirement implements ItemRequirement this.itemId = itemId; } + @Override + public boolean fulfilledBy(int itemId) + { + return this.itemId == itemId; + } + @Override public boolean fulfilledBy(Item[] items) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/SlotLimitationRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/SlotLimitationRequirement.java index 36e9183970..1fae03dde5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/SlotLimitationRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/SlotLimitationRequirement.java @@ -39,6 +39,12 @@ public class SlotLimitationRequirement implements ItemRequirement this.slots = slots; } + @Override + public boolean fulfilledBy(int itemId) + { + return false; + } + @Override public boolean fulfilledBy(Item[] items) {