From c5f3b83ced0b4caa1a6ba6978c8dca0f00dcca0f Mon Sep 17 00:00:00 2001 From: Xemorr <31805746+Xemorr@users.noreply.github.com> Date: Sat, 25 Sep 2021 17:44:36 +0100 Subject: [PATCH] Added true itemcondition support hopefully? --- pom.xml | 2 +- .../skillslibrary2/conditions/ConditionList.java | 13 ++++++++++++- .../conditions/ItemComparisonCondition.java | 6 +++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 7eaaf75..01d27f7 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.xemor skillslibrary - 2.4.4 + 2.5.0 jar SkillsLibrary diff --git a/src/main/java/me/xemor/skillslibrary2/conditions/ConditionList.java b/src/main/java/me/xemor/skillslibrary2/conditions/ConditionList.java index 62052f0..934fd2f 100644 --- a/src/main/java/me/xemor/skillslibrary2/conditions/ConditionList.java +++ b/src/main/java/me/xemor/skillslibrary2/conditions/ConditionList.java @@ -6,6 +6,7 @@ import org.bukkit.block.Block; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Entity; +import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -64,6 +65,11 @@ else if (condition instanceof LocationCondition && otherObject instanceof Locati boolean result = locationCondition.isTrue(entity, (Location) objects[0]); if (!result) return false; } + else if (condition instanceof ItemStackCondition && otherObject instanceof ItemStackCondition && condition.getMode().runs(Mode.ITEM)) { + ItemStackCondition itemStackCondition = (ItemStackCondition) condition; + boolean result = itemStackCondition.isTrue(entity, (ItemStack) objects[0]); + if (!result) return false; + } } return true; } @@ -84,7 +90,12 @@ public boolean ORConditions(Entity entity, boolean exact, Object... objects) { else if (condition instanceof LocationCondition && otherObject instanceof Location && condition.getMode().runs(Mode.LOCATION)) { LocationCondition locationCondition = (LocationCondition) condition; boolean result = locationCondition.isTrue(entity, (Location) objects[0]); - if (!result) return true; + if (result) return true; + } + else if (condition instanceof ItemStackCondition && otherObject instanceof ItemStackCondition && condition.getMode().runs(Mode.ITEM)) { + ItemStackCondition itemStackCondition = (ItemStackCondition) condition; + boolean result = itemStackCondition.isTrue(entity, (ItemStack) objects[0]); + if (result) return true; } } return false; diff --git a/src/main/java/me/xemor/skillslibrary2/conditions/ItemComparisonCondition.java b/src/main/java/me/xemor/skillslibrary2/conditions/ItemComparisonCondition.java index 2ea942d..95255d5 100644 --- a/src/main/java/me/xemor/skillslibrary2/conditions/ItemComparisonCondition.java +++ b/src/main/java/me/xemor/skillslibrary2/conditions/ItemComparisonCondition.java @@ -11,7 +11,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; -public class ItemComparisonCondition extends Condition implements EntityCondition, TargetCondition { +public class ItemComparisonCondition extends Condition implements EntityCondition, TargetCondition, ItemStackCondition { private EquipmentSlot equipmentSlot; private int slot; @@ -61,4 +61,8 @@ else if (entity instanceof Player) { return false; } + @Override + public boolean isTrue(Entity entity, ItemStack itemStack) { + return itemComparison.matches(itemStack); + } }