diff options
Diffstat (limited to 'bukkit')
5 files changed, 24 insertions, 41 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ExecutableItemsQuestItem.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ExecutableItemsQuestItem.java index 3aa31b6a..6da437be 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ExecutableItemsQuestItem.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ExecutableItemsQuestItem.java @@ -21,38 +21,27 @@ public class ExecutableItemsQuestItem extends QuestItem { @Override public ItemStack getItemStack() { ExecutableItemInterface item = getExecutableItem(); - - if (item == null) { - return null; - } - - return item.buildItem(1, Optional.empty()); + return item != null ? item.buildItem(1, Optional.empty()) : null; } @Override - public boolean compareItemStack(ItemStack other) { + public boolean compareItemStack(ItemStack other, boolean exactMatch) { ExecutableItemInterface item = getExecutableItem(); - - Optional<ExecutableItemInterface> otherItemOptional = executableItemsManager.getExecutableItem(other); - if (item == null|| otherItemOptional.isEmpty()) { + if (item == null) { return false; } - ExecutableItemInterface otherItem = otherItemOptional.get(); - - return otherItem.getId().equals(item.getId()); + return executableItemsManager.getExecutableItem(other) + .map(executableItemInterface -> { + final String itemId = item.getId(); + return executableItemInterface.getId().equals(itemId); + }) + .orElse(false); } private ExecutableItemInterface getExecutableItem() { - if (!executableItemsManager.isValidID(executableItemsId)) { - return null; - } - - Optional<ExecutableItemInterface> itemOptional = executableItemsManager.getExecutableItem(executableItemsId); - if (itemOptional.isEmpty()) { - return null; - } - return itemOptional.get(); + return executableItemsManager.isValidID(executableItemsId) + ? executableItemsManager.getExecutableItem(executableItemsId).orElse(null) + : null; } - } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/MMOItemsQuestItem.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/MMOItemsQuestItem.java index 7d5af7f0..1792b1c9 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/MMOItemsQuestItem.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/MMOItemsQuestItem.java @@ -18,17 +18,19 @@ public class MMOItemsQuestItem extends QuestItem { @Override public ItemStack getItemStack() { - return MMOItems.plugin.getItem(Type.get(mmoItemType), mmoItemId); + final Type type = Type.get(mmoItemType); + return MMOItems.plugin.getItem(type, mmoItemId); } @Override - public boolean compareItemStack(ItemStack other) { + public boolean compareItemStack(ItemStack other, boolean exactMatch) { NBTItem item = NBTItem.get(other); - if (!item.hasType()) return false; + if (!item.hasType()) { + return false; + } String type = item.getType(); String id = item.getString("MMOITEMS_ITEM_ID"); return mmoItemType.equals(type) && mmoItemId.equals(id); } - } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ParsedQuestItem.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ParsedQuestItem.java index a6253666..3f6a3f82 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ParsedQuestItem.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ParsedQuestItem.java @@ -17,7 +17,7 @@ public class ParsedQuestItem extends QuestItem { } @Override - public boolean compareItemStack(ItemStack other) { - return other.isSimilar(itemStack); + public boolean compareItemStack(ItemStack other, boolean exactMatch) { + return exactMatch ? other.isSimilar(itemStack) : other.getType() == itemStack.getType(); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/QuestItem.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/QuestItem.java index e4fa40b5..cde6e577 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/QuestItem.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/QuestItem.java @@ -29,5 +29,5 @@ public abstract class QuestItem { public abstract ItemStack getItemStack(); - public abstract boolean compareItemStack(ItemStack other); + public abstract boolean compareItemStack(ItemStack other, boolean exactMatch); } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/SlimefunQuestItem.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/SlimefunQuestItem.java index c8dbeea9..682a5420 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/SlimefunQuestItem.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/SlimefunQuestItem.java @@ -15,20 +15,12 @@ public class SlimefunQuestItem extends QuestItem { @Override public ItemStack getItemStack() { SlimefunItem item = SlimefunItem.getById(slimefunId); - if (item == null) { - return null; - } - return item.getItem(); + return item != null ? item.getItem() : null; } @Override - public boolean compareItemStack(ItemStack other) { + public boolean compareItemStack(ItemStack other, boolean exactMatch) { SlimefunItem item = SlimefunItem.getByItem(other); - - if (item == null) return false; - - String id = item.getId(); - return slimefunId.equals(id); + return item != null && slimefunId.equals(item.getId()); } - } |
