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