diff --git a/pom.xml b/pom.xml
index 124d9f5..9142182 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,8 +24,9 @@
maven-compiler-plugin
3.8.1
- 14
- 14
+ 17
+ 17
+ --enable-preview
diff --git a/src/main/java/me/tud/diskuise/Diskuise.java b/src/main/java/me/tud/diskuise/Diskuise.java
index f459108..6348f95 100644
--- a/src/main/java/me/tud/diskuise/Diskuise.java
+++ b/src/main/java/me/tud/diskuise/Diskuise.java
@@ -16,7 +16,7 @@ public final class Diskuise extends JavaPlugin {
private static Diskuise instance;
private static SkriptAddon addon;
- private static int resourceId = 101529;
+ private static final int resourceId = 101529;
@Override
public void onEnable() {
diff --git a/src/main/java/me/tud/diskuise/elements/expressions/ExprDisguiseClone.java b/src/main/java/me/tud/diskuise/elements/expressions/ExprDisguiseClone.java
new file mode 100644
index 0000000..4abe1a2
--- /dev/null
+++ b/src/main/java/me/tud/diskuise/elements/expressions/ExprDisguiseClone.java
@@ -0,0 +1,63 @@
+package me.tud.diskuise.elements.expressions;
+
+import ch.njol.skript.Skript;
+import ch.njol.skript.bukkitutil.EntityUtils;
+import ch.njol.skript.doc.*;
+import ch.njol.skript.entity.EntityData;
+import ch.njol.skript.lang.Expression;
+import ch.njol.skript.lang.ExpressionType;
+import ch.njol.skript.lang.SkriptParser;
+import ch.njol.skript.lang.util.SimpleExpression;
+import ch.njol.util.Kleenean;
+import me.libraryaddict.disguise.disguisetypes.*;
+import org.bukkit.entity.EntityType;
+import org.bukkit.event.Event;
+import org.jetbrains.annotations.Nullable;
+
+import java.security.InvalidParameterException;
+
+@Name("Clone disguise")
+@Description("Clones an already existing disguise")
+@Examples({"set {anotherDisguise} to clone of {disguise}"})
+@Since("0.1")
+@RequiredPlugins({"LibsDisguises"})
+public class ExprDisguiseClone extends SimpleExpression {
+
+ static {
+ Skript.registerExpression(ExprDisguiseClone.class, Disguise.class, ExpressionType.PROPERTY,
+ "clone[d] [of] %disguise% [dis(g|k)uise]");
+ }
+
+ Expression toClone;
+
+ @Override
+ protected @Nullable
+ Disguise[] get(Event e) {
+ Disguise toClone = this.toClone.getSingle(e);
+ if (toClone == null) return null;
+ Disguise disguise = toClone.clone();
+ return new Disguise[]{disguise};
+ }
+
+ @Override
+ public boolean isSingle() {
+ return true;
+ }
+
+ @Override
+ public Class extends Disguise> getReturnType() {
+ return Disguise.class;
+ }
+
+ @Override
+ public String toString(@Nullable Event e, boolean debug) {
+ return null;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
+ toClone = (Expression) exprs[0];
+ return true;
+ }
+}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/ageable/conditions/CondIsAdult.java b/src/main/java/me/tud/diskuise/elements/watchers/ageable/conditions/CondIsAdult.java
index 98d2324..9adfe08 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/ageable/conditions/CondIsAdult.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/ageable/conditions/CondIsAdult.java
@@ -7,6 +7,7 @@
import ch.njol.skript.lang.SkriptParser;
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.FlagWatcher;
import me.libraryaddict.disguise.disguisetypes.MobDisguise;
import me.libraryaddict.disguise.disguisetypes.watchers.*;
import org.bukkit.event.Event;
@@ -30,22 +31,13 @@ public class CondIsAdult extends Condition {
@Override
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
- MobDisguise mobDisguise = (MobDisguise) disguise;
- assert mobDisguise != null;
- LivingWatcher watcher = mobDisguise.getWatcher();
- try {
- return ((AgeableWatcher) watcher).isBaby() != isNegated();
- } catch (ClassCastException ignore) {}
- try {
- return ((ZombieWatcher) watcher).isBaby() != isNegated();
- } catch (ClassCastException ignore) {}
- try {
- return ((PiglinWatcher) watcher).isBaby() != isNegated();
- } catch (ClassCastException ignore) {}
- try {
- return ((ZoglinWatcher) watcher).isBaby() != isNegated();
- } catch (ClassCastException ignore) {}
- return false;
+ boolean isBaby = false;
+ FlagWatcher watcher = disguise.getWatcher();
+ if (watcher instanceof AgeableWatcher) isBaby = ((AgeableWatcher) watcher).isBaby();
+ else if (watcher instanceof ZombieWatcher) isBaby = ((ZombieWatcher) watcher).isBaby();
+ else if (watcher instanceof PiglinWatcher) isBaby = ((PiglinWatcher) watcher).isBaby();
+ else if (watcher instanceof ZoglinWatcher) isBaby = ((ZoglinWatcher) watcher).isBaby();
+ return isBaby != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/ageable/conditions/CondIsBaby.java b/src/main/java/me/tud/diskuise/elements/watchers/ageable/conditions/CondIsBaby.java
index 6226a5a..25359f1 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/ageable/conditions/CondIsBaby.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/ageable/conditions/CondIsBaby.java
@@ -7,6 +7,7 @@
import ch.njol.skript.lang.SkriptParser;
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.FlagWatcher;
import me.libraryaddict.disguise.disguisetypes.MobDisguise;
import me.libraryaddict.disguise.disguisetypes.watchers.*;
import org.bukkit.event.Event;
@@ -30,22 +31,13 @@ public class CondIsBaby extends Condition {
@Override
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
- MobDisguise mobDisguise = (MobDisguise) disguise;
- assert mobDisguise != null;
- LivingWatcher watcher = mobDisguise.getWatcher();
- try {
- return ((AgeableWatcher) watcher).isBaby() == isNegated();
- } catch (ClassCastException ignore) {}
- try {
- return ((ZombieWatcher) watcher).isBaby() == isNegated();
- } catch (ClassCastException ignore) {}
- try {
- return ((PiglinWatcher) watcher).isBaby() == isNegated();
- } catch (ClassCastException ignore) {}
- try {
- return ((ZoglinWatcher) watcher).isBaby() == isNegated();
- } catch (ClassCastException ignore) {}
- return false;
+ boolean isBaby = false;
+ FlagWatcher watcher = disguise.getWatcher();
+ if (watcher instanceof AgeableWatcher) isBaby = ((AgeableWatcher) watcher).isBaby();
+ else if (watcher instanceof ZombieWatcher) isBaby = ((ZombieWatcher) watcher).isBaby();
+ else if (watcher instanceof PiglinWatcher) isBaby = ((PiglinWatcher) watcher).isBaby();
+ else if (watcher instanceof ZoglinWatcher) isBaby = ((ZoglinWatcher) watcher).isBaby();
+ return isBaby == isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/ageable/effects/EffDisguiseSetAge.java b/src/main/java/me/tud/diskuise/elements/watchers/ageable/effects/EffDisguiseSetAge.java
index 4a7f8ac..b950c56 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/ageable/effects/EffDisguiseSetAge.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/ageable/effects/EffDisguiseSetAge.java
@@ -7,6 +7,7 @@
import ch.njol.skript.lang.SkriptParser;
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.FlagWatcher;
import me.libraryaddict.disguise.disguisetypes.MobDisguise;
import me.libraryaddict.disguise.disguisetypes.watchers.*;
import me.tud.diskuise.utils.DisguiseUtil;
@@ -37,26 +38,18 @@ public class EffDisguiseSetAge extends Effect {
@Override
protected void execute(Event e) {
Disguise disguise = this.disguise.getSingle(e);
- MobDisguise mobDisguise = (MobDisguise) disguise;
- assert mobDisguise != null;
+ if (disguise == null) return;
boolean isAdult;
if (pattern == 0) isAdult = Boolean.TRUE.equals(this.bool.getSingle(e));
else isAdult = false;
isAdult = isAdult == isNegated;
- LivingWatcher watcher = mobDisguise.getWatcher();
- try {
- ((AgeableWatcher) watcher).setBaby(!isAdult);
- } catch (ClassCastException ignore) {}
- try {
- ((ZombieWatcher) watcher).setBaby(!isAdult);
- } catch (ClassCastException ignore) {}
- try {
- ((PiglinWatcher) watcher).setBaby(!isAdult);
- } catch (ClassCastException ignore) {}
- try {
- ((ZoglinWatcher) watcher).setBaby(!isAdult);
- } catch (ClassCastException ignore) {}
+ FlagWatcher watcher = disguise.getWatcher();
+ if (watcher instanceof AgeableWatcher) ((AgeableWatcher) watcher).setBaby(!isAdult);
+ else if (watcher instanceof ZombieWatcher) ((ZombieWatcher) watcher).setBaby(!isAdult);
+ else if (watcher instanceof PiglinWatcher) ((PiglinWatcher) watcher).setBaby(!isAdult);
+ else if (watcher instanceof ZoglinWatcher) ((ZoglinWatcher) watcher).setBaby(!isAdult);
+ else return;
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/ageable/expressions/ExprDisguiseAge.java b/src/main/java/me/tud/diskuise/elements/watchers/ageable/expressions/ExprDisguiseAge.java
index 08bc136..270a9b5 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/ageable/expressions/ExprDisguiseAge.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/ageable/expressions/ExprDisguiseAge.java
@@ -8,6 +8,7 @@
import ch.njol.skript.lang.util.SimpleExpression;
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.FlagWatcher;
import me.libraryaddict.disguise.disguisetypes.MobDisguise;
import me.libraryaddict.disguise.disguisetypes.watchers.*;
import org.bukkit.event.Event;
@@ -27,27 +28,18 @@ public class ExprDisguiseAge extends SimpleExpression {
}
Expression disguise;
- boolean isBaby = false;
@Override
protected @Nullable
String[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
- MobDisguise mobDisguise = (MobDisguise) disguise;
- assert mobDisguise != null;
- LivingWatcher watcher = mobDisguise.getWatcher();
- try {
- if (((AgeableWatcher) watcher).isBaby()) isBaby = true;
- } catch (ClassCastException ignore) {}
- try {
- if (((ZombieWatcher) watcher).isBaby()) isBaby = true;
- } catch (ClassCastException ignore) {}
- try {
- if (((PiglinWatcher) watcher).isBaby()) isBaby = true;
- } catch (ClassCastException ignore) {}
- try {
- if (((ZoglinWatcher) watcher).isBaby()) isBaby = true;
- } catch (ClassCastException ignore) {}
+ if (disguise == null) return null;
+ FlagWatcher watcher = disguise.getWatcher();
+ boolean isBaby = false;
+ if (watcher instanceof AgeableWatcher) isBaby = ((AgeableWatcher) watcher).isBaby();
+ else if (watcher instanceof ZombieWatcher) isBaby = ((ZombieWatcher) watcher).isBaby();
+ else if (watcher instanceof PiglinWatcher) isBaby = ((PiglinWatcher) watcher).isBaby();
+ else if (watcher instanceof ZoglinWatcher) isBaby = ((ZoglinWatcher) watcher).isBaby();
String age = (isBaby) ? "baby" : "adult";
return new String[]{age};
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseColor.java b/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseColor.java
index 704eeab..25faed1 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseColor.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseColor.java
@@ -37,12 +37,8 @@ public class ExprDisguiseColor extends SimpleExpression {
protected SkriptColor[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- AreaEffectCloudWatcher watcher;
- try {
- watcher = (AreaEffectCloudWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- Bukkit.broadcastMessage(watcher.getColor().toString());
- return new SkriptColor[]{SkriptColor.fromBukkitColor(watcher.getColor())};
+ return new SkriptColor[]{SkriptColor.fromBukkitColor(disguise.getWatcher() instanceof AreaEffectCloudWatcher ?
+ ((AreaEffectCloudWatcher) disguise.getWatcher()).getColor() : null)};
}
@Override
@@ -70,8 +66,8 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
@Override
public @Nullable
Class>[] acceptChange(Changer.ChangeMode mode) {
- if (mode == Changer.ChangeMode.SET ||
- mode == Changer.ChangeMode.RESET) return CollectionUtils.array(Color.class);
+ if (mode == Changer.ChangeMode.SET)
+ return CollectionUtils.array(Color.class);
return null;
}
@@ -80,16 +76,12 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
AreaEffectCloudWatcher watcher;
- try {
- watcher = (AreaEffectCloudWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof AreaEffectCloudWatcher) watcher = (AreaEffectCloudWatcher) disguise.getWatcher();
+ else return;
- org.bukkit.Color color = org.bukkit.Color.WHITE;
- if (mode == Changer.ChangeMode.SET) {
- if (delta[0] != null) {
- color = ((SkriptColor) delta[0]).asBukkitColor();
- }
- }
+ org.bukkit.Color color;
+ if (mode == Changer.ChangeMode.SET && delta[0] != null) color = ((SkriptColor) delta[0]).asBukkitColor();
+ else return;
watcher.setColor(color);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseParticleType.java b/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseParticleType.java
index 1ef9bc9..c5caba9 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseParticleType.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseParticleType.java
@@ -35,11 +35,8 @@ public class ExprDisguiseParticleType extends SimpleExpression {
protected Particle[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- AreaEffectCloudWatcher watcher;
- try {
- watcher = (AreaEffectCloudWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new Particle[]{watcher.getParticleType()};
+ return new Particle[]{disguise.getWatcher() instanceof AreaEffectCloudWatcher ?
+ ((AreaEffectCloudWatcher) disguise.getWatcher()).getParticleType() : null};
}
@Override
@@ -67,8 +64,9 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
@Override
public @Nullable
Class>[] acceptChange(Changer.ChangeMode mode) {
- if (mode == Changer.ChangeMode.SET ||
- mode == Changer.ChangeMode.RESET) return CollectionUtils.array(Particle.class);
+ switch (mode) {
+ case SET, RESET -> { return CollectionUtils.array(Particle.class); }
+ }
return null;
}
@@ -77,16 +75,11 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
AreaEffectCloudWatcher watcher;
- try {
- watcher = (AreaEffectCloudWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof AreaEffectCloudWatcher) watcher = (AreaEffectCloudWatcher) disguise.getWatcher();
+ else return;
Particle particle = Particle.SPELL_MOB;
- if (mode == Changer.ChangeMode.SET) {
- if (delta[0] != null) {
- particle = (Particle) delta[0];
- }
- }
+ if (mode == Changer.ChangeMode.SET && delta[0] != null) particle = (Particle) delta[0];
watcher.setParticleType(particle);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseRadius.java b/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseRadius.java
index 362e5c7..08f86ca 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseRadius.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/areaeffectcloud/expressions/ExprDisguiseRadius.java
@@ -11,6 +11,7 @@
import ch.njol.util.coll.CollectionUtils;
import me.libraryaddict.disguise.disguisetypes.Disguise;
import me.libraryaddict.disguise.disguisetypes.watchers.AreaEffectCloudWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.AxolotlWatcher;
import me.tud.diskuise.utils.DisguiseUtil;
import org.bukkit.event.Event;
import org.jetbrains.annotations.Nullable;
@@ -34,11 +35,8 @@ public class ExprDisguiseRadius extends SimpleExpression {
protected Number[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- AreaEffectCloudWatcher watcher;
- try {
- watcher = (AreaEffectCloudWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new Number[]{watcher.getRadius()};
+ return new Number[]{disguise.getWatcher() instanceof AreaEffectCloudWatcher ?
+ ((AreaEffectCloudWatcher) disguise.getWatcher()).getRadius() : null};
}
@Override
@@ -66,32 +64,32 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
@Override
public @Nullable
Class>[] acceptChange(Changer.ChangeMode mode) {
- if (mode == Changer.ChangeMode.SET ||
- mode == Changer.ChangeMode.ADD ||
- mode == Changer.ChangeMode.REMOVE ||
- mode == Changer.ChangeMode.RESET) return CollectionUtils.array(Number.class);
+ switch (mode) {
+ case SET, ADD, REMOVE, RESET -> { return CollectionUtils.array(Number.class); }
+ }
return null;
}
@Override
public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
- if (delta[0] == null) return;
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
AreaEffectCloudWatcher watcher;
- try {
- watcher = (AreaEffectCloudWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof AreaEffectCloudWatcher) watcher = (AreaEffectCloudWatcher) disguise.getWatcher();
+ else return;
- float value = ((Number) delta[0]).floatValue();
+ float value = 0;
+ if (mode != Changer.ChangeMode.RESET) value = ((Number) delta[0]).floatValue();
float radius = watcher.getRadius();
- if (mode != Changer.ChangeMode.SET && mode != Changer.ChangeMode.RESET) {
- if (mode == Changer.ChangeMode.REMOVE) value *= -1;
- radius += value;
+ switch (mode) {
+ case SET -> radius = value;
+ case RESET -> radius = 3f;
+ case ADD, REMOVE -> {
+ if (mode == Changer.ChangeMode.REMOVE) value *= -1;
+ radius += value;
+ }
}
- else if (mode == Changer.ChangeMode.RESET) radius = 3f;
- else radius = value;
watcher.setRadius(radius);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/arrow/conditions/CondIsCritical.java b/src/main/java/me/tud/diskuise/elements/watchers/arrow/conditions/CondIsCritical.java
index a836ea4..29e0d27 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/arrow/conditions/CondIsCritical.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/arrow/conditions/CondIsCritical.java
@@ -7,7 +7,9 @@
import ch.njol.skript.lang.SkriptParser;
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.AreaEffectCloudWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.ArrowWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.FallingBlockWatcher;
import org.bukkit.event.Event;
import org.jetbrains.annotations.Nullable;
@@ -30,11 +32,8 @@ public class CondIsCritical extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- ArrowWatcher watcher;
- try {
- watcher = (ArrowWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isCritical() != isNegated();
+ return disguise.getWatcher() instanceof ArrowWatcher &&
+ ((ArrowWatcher) disguise.getWatcher()).isCritical() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/arrow/effects/EffDisguiseMakeCritical.java b/src/main/java/me/tud/diskuise/elements/watchers/arrow/effects/EffDisguiseMakeCritical.java
index 637041d..ad37da3 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/arrow/effects/EffDisguiseMakeCritical.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/arrow/effects/EffDisguiseMakeCritical.java
@@ -32,9 +32,8 @@ protected void execute(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
ArrowWatcher watcher;
- try {
- watcher = (ArrowWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof ArrowWatcher) watcher = (ArrowWatcher) disguise.getWatcher();
+ else return;
watcher.setCritical(bool);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/arrow/expressions/ExprDisguiseCritical.java b/src/main/java/me/tud/diskuise/elements/watchers/arrow/expressions/ExprDisguiseCritical.java
index f400678..877e865 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/arrow/expressions/ExprDisguiseCritical.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/arrow/expressions/ExprDisguiseCritical.java
@@ -10,6 +10,7 @@
import ch.njol.util.Kleenean;
import ch.njol.util.coll.CollectionUtils;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.AreaEffectCloudWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.ArrowWatcher;
import me.tud.diskuise.utils.DisguiseUtil;
import org.bukkit.event.Event;
@@ -34,12 +35,8 @@ public class ExprDisguiseCritical extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- ArrowWatcher watcher;
- try {
- watcher = (ArrowWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isCritical()};
+ return new Boolean[]{disguise.getWatcher() instanceof ArrowWatcher ?
+ ((ArrowWatcher) disguise.getWatcher()).isCritical() : null};
}
@Override
@@ -76,9 +73,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
ArrowWatcher watcher;
- try {
- watcher = (ArrowWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof ArrowWatcher) watcher = (ArrowWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setCritical(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/axolotl/conditions/CondIsPlayingDead.java b/src/main/java/me/tud/diskuise/elements/watchers/axolotl/conditions/CondIsPlayingDead.java
index 6c5f4e4..b484f66 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/axolotl/conditions/CondIsPlayingDead.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/axolotl/conditions/CondIsPlayingDead.java
@@ -7,7 +7,9 @@
import ch.njol.skript.lang.SkriptParser;
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.ArrowWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.AxolotlWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.FallingBlockWatcher;
import org.bukkit.event.Event;
import org.jetbrains.annotations.Nullable;
@@ -30,11 +32,8 @@ public class CondIsPlayingDead extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- AxolotlWatcher watcher;
- try {
- watcher = (AxolotlWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isPlayingDead() != isNegated();
+ return disguise.getWatcher() instanceof AxolotlWatcher &&
+ ((AxolotlWatcher) disguise.getWatcher()).isPlayingDead() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/axolotl/effects/EffDisguiseMakePlayDead.java b/src/main/java/me/tud/diskuise/elements/watchers/axolotl/effects/EffDisguiseMakePlayDead.java
index 2034a7d..7e48897 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/axolotl/effects/EffDisguiseMakePlayDead.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/axolotl/effects/EffDisguiseMakePlayDead.java
@@ -32,9 +32,8 @@ protected void execute(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
AxolotlWatcher watcher;
- try {
- watcher = (AxolotlWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof AxolotlWatcher) watcher = (AxolotlWatcher) disguise.getWatcher();
+ else return;
watcher.setPlayingDead(bool);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/axolotl/expressions/ExprDisguisePlayingDead.java b/src/main/java/me/tud/diskuise/elements/watchers/axolotl/expressions/ExprDisguisePlayingDead.java
index 7333856..ffaed91 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/axolotl/expressions/ExprDisguisePlayingDead.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/axolotl/expressions/ExprDisguisePlayingDead.java
@@ -34,12 +34,8 @@ public class ExprDisguisePlayingDead extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- AxolotlWatcher watcher;
- try {
- watcher = (AxolotlWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isPlayingDead()};
+ return new Boolean[]{disguise.getWatcher() instanceof AxolotlWatcher ?
+ ((AxolotlWatcher) disguise.getWatcher()).isPlayingDead() : null};
}
@Override
@@ -76,9 +72,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
AxolotlWatcher watcher;
- try {
- watcher = (AxolotlWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof AxolotlWatcher) watcher = (AxolotlWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setPlayingDead(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/axolotl/expressions/ExprDisguiseVariant.java b/src/main/java/me/tud/diskuise/elements/watchers/axolotl/expressions/ExprDisguiseVariant.java
index 1f057bc..f84a191 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/axolotl/expressions/ExprDisguiseVariant.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/axolotl/expressions/ExprDisguiseVariant.java
@@ -35,12 +35,8 @@ public class ExprDisguiseVariant extends SimpleExpression {
protected Axolotl.Variant[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- AxolotlWatcher watcher;
- try {
- watcher = (AxolotlWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Axolotl.Variant[]{watcher.getVariant()};
+ return new Axolotl.Variant[]{disguise.getWatcher() instanceof AxolotlWatcher ?
+ ((AxolotlWatcher) disguise.getWatcher()).getVariant() : null};
}
@Override
@@ -77,9 +73,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
AxolotlWatcher watcher;
- try {
- watcher = (AxolotlWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof AxolotlWatcher) watcher = (AxolotlWatcher) disguise.getWatcher();
+ else return;
assert delta[0] != null;
watcher.setVariant((Axolotl.Variant) delta[0]);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/droppeditem/expressions/ExprDisguiseItemStack.java b/src/main/java/me/tud/diskuise/elements/watchers/droppeditem/expressions/ExprDisguiseItemStack.java
index c1d0c74..d7289c2 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/droppeditem/expressions/ExprDisguiseItemStack.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/droppeditem/expressions/ExprDisguiseItemStack.java
@@ -10,6 +10,8 @@
import ch.njol.util.Kleenean;
import ch.njol.util.coll.CollectionUtils;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.AreaEffectCloudWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.AxolotlWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.DroppedItemWatcher;
import me.tud.diskuise.utils.DisguiseUtil;
import org.bukkit.event.Event;
@@ -35,11 +37,8 @@ public class ExprDisguiseItemStack extends SimpleExpression {
protected ItemStack[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- DroppedItemWatcher watcher;
- try {
- watcher = (DroppedItemWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new ItemStack[]{watcher.getItemStack()};
+ return new ItemStack[]{disguise.getWatcher() instanceof DroppedItemWatcher ?
+ ((DroppedItemWatcher) disguise.getWatcher()).getItemStack() : null};
}
@Override
@@ -76,9 +75,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
DroppedItemWatcher watcher;
- try {
- watcher = (DroppedItemWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof DroppedItemWatcher) watcher = (DroppedItemWatcher) disguise.getWatcher();
+ else return;
ItemStack itemStack = (ItemStack) delta[0];
watcher.setItemStack(itemStack);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/conditions/CondIsGridLocked.java b/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/conditions/CondIsGridLocked.java
index 2e5c1c7..992e9e5 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/conditions/CondIsGridLocked.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/conditions/CondIsGridLocked.java
@@ -30,11 +30,8 @@ public class CondIsGridLocked extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- FallingBlockWatcher watcher;
- try {
- watcher = (FallingBlockWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isGridLocked() != isNegated();
+ return disguise.getWatcher() instanceof FallingBlockWatcher &&
+ ((FallingBlockWatcher) disguise.getWatcher()).isGridLocked() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/effects/EffDisguiseLockGrid.java b/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/effects/EffDisguiseLockGrid.java
index 2ad67ae..e17bc7c 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/effects/EffDisguiseLockGrid.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/effects/EffDisguiseLockGrid.java
@@ -7,6 +7,7 @@
import ch.njol.skript.lang.SkriptParser;
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.AxolotlWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.FallingBlockWatcher;
import me.tud.diskuise.utils.DisguiseUtil;
import org.bukkit.event.Event;
@@ -34,9 +35,8 @@ protected void execute(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
FallingBlockWatcher watcher;
- try {
- watcher = (FallingBlockWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof FallingBlockWatcher) watcher = (FallingBlockWatcher) disguise.getWatcher();
+ else return;
watcher.setGridLocked(bool);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseBlock.java b/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseBlock.java
index 6de529b..86edf90 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseBlock.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseBlock.java
@@ -10,6 +10,7 @@
import ch.njol.util.Kleenean;
import ch.njol.util.coll.CollectionUtils;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.AxolotlWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.FallingBlockWatcher;
import me.tud.diskuise.utils.DisguiseUtil;
import org.bukkit.block.data.BlockData;
@@ -36,11 +37,8 @@ public class ExprDisguiseBlock extends SimpleExpression {
protected ItemStack[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- FallingBlockWatcher watcher;
- try {
- watcher = (FallingBlockWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new ItemStack[]{watcher.getBlock()};
+ return new ItemStack[]{disguise.getWatcher() instanceof FallingBlockWatcher ?
+ ((FallingBlockWatcher) disguise.getWatcher()).getBlock() : null};
}
@Override
@@ -77,18 +75,15 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
FallingBlockWatcher watcher;
- try {
- watcher = (FallingBlockWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof FallingBlockWatcher) watcher = (FallingBlockWatcher) disguise.getWatcher();
+ else return;
- if (delta[0] instanceof ItemStack) {
- ItemStack block = (ItemStack) delta[0];
+ if (delta[0] instanceof ItemStack block) {
if (!block.getType().isBlock()) return;
watcher.setBlock(block);
}
- else if (delta[0] instanceof BlockData) {
- BlockData blockData = (BlockData) delta[0];
+ else if (delta[0] instanceof BlockData blockData) {
watcher.setBlockData(blockData);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseBlockData.java b/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseBlockData.java
index d7a88cf..f235cab 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseBlockData.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseBlockData.java
@@ -35,11 +35,8 @@ public class ExprDisguiseBlockData extends SimpleExpression {
protected BlockData[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- FallingBlockWatcher watcher;
- try {
- watcher = (FallingBlockWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new BlockData[]{watcher.getBlockData()};
+ return new BlockData[]{disguise.getWatcher() instanceof FallingBlockWatcher ?
+ ((FallingBlockWatcher) disguise.getWatcher()).getBlockData() : null};
}
@Override
@@ -76,9 +73,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
FallingBlockWatcher watcher;
- try {
- watcher = (FallingBlockWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof FallingBlockWatcher) watcher = (FallingBlockWatcher) disguise.getWatcher();
+ else return;
BlockData blockData = (BlockData) delta[0];
watcher.setBlockData(blockData);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseGridLocked.java b/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseGridLocked.java
index 1b9222c..4160f1d 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseGridLocked.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/fallingblock/expressions/ExprDisguiseGridLocked.java
@@ -34,12 +34,8 @@ public class ExprDisguiseGridLocked extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- FallingBlockWatcher watcher;
- try {
- watcher = (FallingBlockWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isGridLocked()};
+ return new Boolean[]{disguise.getWatcher() instanceof FallingBlockWatcher ?
+ ((FallingBlockWatcher) disguise.getWatcher()).isGridLocked() : null};
}
@Override
@@ -76,9 +72,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
FallingBlockWatcher watcher;
- try {
- watcher = (FallingBlockWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof FallingBlockWatcher) watcher = (FallingBlockWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setGridLocked(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondHasCustomName.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondHasCustomName.java
index 229da3b..e019d54 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondHasCustomName.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondHasCustomName.java
@@ -31,10 +31,8 @@ public class CondHasCustomName extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- if (!disguise.isMobDisguise()) return false;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return false;
- return watcher.hasCustomName() != isNegated();
+ return disguise.getWatcher() != null &&
+ disguise.getWatcher().hasCustomName() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsBurning.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsBurning.java
index 98c4d0c..fb87d14 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsBurning.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsBurning.java
@@ -30,10 +30,8 @@ public class CondIsBurning extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- if (!disguise.isMobDisguise()) return false;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return false;
- return watcher.isBurning() != isNegated();
+ return disguise.getWatcher() != null &&
+ disguise.getWatcher().isBurning() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsCustomNameVisible.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsCustomNameVisible.java
index 604ca94..a5bd762 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsCustomNameVisible.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsCustomNameVisible.java
@@ -30,10 +30,8 @@ public class CondIsCustomNameVisible extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- if (!disguise.isMobDisguise()) return false;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return false;
- return watcher.isCustomNameVisible() != isNegated();
+ return disguise.getWatcher() != null &&
+ disguise.getWatcher().isCustomNameVisible() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsGlowing.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsGlowing.java
index 2366b44..520ce93 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsGlowing.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsGlowing.java
@@ -34,15 +34,12 @@ public class CondIsGlowing extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
SkriptColor color = this.color != null ? (SkriptColor) this.color.getSingle(e) : null;
- if (disguise == null) return false;
- if (!disguise.isMobDisguise()) return false;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return false;
- if (color != null && watcher.isGlowing()) {
- if (color.asChatColor() == watcher.getGlowColor()) return watcher.isGlowing() != isNegated();
- return watcher.isGlowing() == isNegated();
+ if (disguise == null || disguise.getWatcher() == null) return false;
+ if (color != null && disguise.getWatcher().isGlowing()) {
+ if (color.asChatColor() == disguise.getWatcher().getGlowColor()) return disguise.getWatcher().isGlowing() != isNegated();
+ return disguise.getWatcher().isGlowing() == isNegated();
}
- return watcher.isGlowing() != isNegated();
+ return disguise.getWatcher().isGlowing() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsInvisible.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsInvisible.java
index d1a5cda..92e1c57 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsInvisible.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsInvisible.java
@@ -31,10 +31,8 @@ public class CondIsInvisible extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- if (!disguise.isMobDisguise()) return false;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return false;
- return watcher.isInvisible() != isNegated();
+ return disguise.getWatcher() != null &&
+ disguise.getWatcher().isInvisible() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsSneaking.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsSneaking.java
index 63f1239..2a9650a 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsSneaking.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsSneaking.java
@@ -30,10 +30,8 @@ public class CondIsSneaking extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- if (!disguise.isMobDisguise()) return false;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return false;
- return watcher.isSneaking() != isNegated();
+ return disguise.getWatcher() != null &&
+ disguise.getWatcher().isSneaking() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsSwimming.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsSwimming.java
new file mode 100644
index 0000000..c6f6d8c
--- /dev/null
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsSwimming.java
@@ -0,0 +1,49 @@
+package me.tud.diskuise.elements.watchers.flag.conditions;
+
+import ch.njol.skript.Skript;
+import ch.njol.skript.doc.*;
+import ch.njol.skript.lang.Condition;
+import ch.njol.skript.lang.Expression;
+import ch.njol.skript.lang.SkriptParser;
+import ch.njol.util.Kleenean;
+import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.FlagWatcher;
+import org.bukkit.event.Event;
+import org.jetbrains.annotations.Nullable;
+
+@Name("Disguise - Is Burning")
+@Description("Checks if a disguise appears to be burning")
+@Examples({"if {dis} is burning:",
+ "\tset burning state of {dis} to false"})
+@Since("0.2-beta0")
+@RequiredPlugins({"LibsDisguises"})
+public class CondIsSwimming extends Condition {
+
+ static {
+ Skript.registerCondition(CondIsSwimming.class,
+ "[dis(k|g)uise] %disguise% (1¦is|2¦is(n't| not)) swim[(ing|s)]");
+ }
+
+ Expression disguise;
+
+ @Override
+ public boolean check(Event e) {
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return false;
+ return disguise.getWatcher() != null &&
+ disguise.getWatcher().isSwimming() != isNegated();
+ }
+
+ @Override
+ public String toString(@Nullable Event e, boolean debug) {
+ return null;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
+ if (parseResult.mark == 2) setNegated(true);
+ disguise = (Expression) exprs[0];
+ return true;
+ }
+}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsUpsideDown.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsUpsideDown.java
index 27396a7..849fae5 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsUpsideDown.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/conditions/CondIsUpsideDown.java
@@ -30,10 +30,8 @@ public class CondIsUpsideDown extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- if (!disguise.isMobDisguise()) return false;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return false;
- return watcher.isUpsideDown() != isNegated();
+ return disguise.getWatcher() != null &&
+ disguise.getWatcher().isUpsideDown() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/effects/EffDisguiseMakeSwim.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/effects/EffDisguiseMakeSwim.java
new file mode 100644
index 0000000..44ee7b7
--- /dev/null
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/effects/EffDisguiseMakeSwim.java
@@ -0,0 +1,52 @@
+package me.tud.diskuise.elements.watchers.flag.effects;
+
+import ch.njol.skript.Skript;
+import ch.njol.skript.doc.*;
+import ch.njol.skript.lang.Effect;
+import ch.njol.skript.lang.Expression;
+import ch.njol.skript.lang.SkriptParser;
+import ch.njol.util.Kleenean;
+import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.FlagWatcher;
+import me.tud.diskuise.utils.DisguiseUtil;
+import org.bukkit.event.Event;
+import org.jetbrains.annotations.Nullable;
+
+@Name("Disguise - Make Swim")
+@Description("Sets if a disguise appears to be swimming")
+@Examples("make player's disguise swim")
+@Since("0.2-beta3")
+@RequiredPlugins({"LibsDisguises"})
+public class EffDisguiseMakeSwim extends Effect {
+
+ static {
+ Skript.registerEffect(EffDisguiseMakeSwim.class,
+ "make [dis(k|g)uise] %disguise% [1¦not] swim[(ing|s)]");
+ }
+
+ Expression disguise;
+ boolean bool;
+
+ @Override
+ protected void execute(Event e) {
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return;
+ FlagWatcher watcher = disguise.getWatcher();
+ if (watcher == null) return;
+ watcher.setSwimming(bool);
+ DisguiseUtil.update(disguise);
+ }
+
+ @Override
+ public String toString(@Nullable Event e, boolean debug) {
+ return null;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
+ disguise = (Expression) exprs[0];
+ bool = parseResult.mark != 1;
+ return true;
+ }
+}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseBurning.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseBurning.java
index 0e4f7d7..10424be 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseBurning.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseBurning.java
@@ -34,9 +34,8 @@ public class ExprDisguiseBurning extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return null;
- return new Boolean[]{watcher.isBurning()};
+ return new Boolean[]{disguise.getWatcher() != null ?
+ disguise.getWatcher().isBurning() : null};
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseCustomName.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseCustomName.java
index 67c3d98..8fe347c 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseCustomName.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseCustomName.java
@@ -34,9 +34,8 @@ public class ExprDisguiseCustomName extends SimpleExpression {
protected String[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return null;
- return new String[]{watcher.getCustomName()};
+ return new String[]{disguise.getWatcher() != null ?
+ disguise.getWatcher().getCustomName() : null};
}
@Override
@@ -64,7 +63,9 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
@Override
public @Nullable
Class>[] acceptChange(Changer.ChangeMode mode) {
- if (mode == Changer.ChangeMode.SET || mode == Changer.ChangeMode.RESET || mode == Changer.ChangeMode.DELETE) return CollectionUtils.array(String.class);
+ switch (mode) {
+ case SET, RESET, DELETE -> { return CollectionUtils.array(String.class); }
+ }
return null;
}
@@ -72,11 +73,10 @@ Class>[] acceptChange(Changer.ChangeMode mode) {
public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
- if (mode != Changer.ChangeMode.SET) {
- disguise.getWatcher().setCustomName(null);
- return;
+ switch (mode) {
+ case RESET, DELETE -> disguise.getWatcher().setCustomName(null);
+ case SET -> disguise.getWatcher().setCustomName((String) delta[0]);
}
- disguise.getWatcher().setCustomName((String) delta[0]);
DisguiseUtil.update(disguise);
}
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseCustomNameVisible.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseCustomNameVisible.java
index 0287c94..553e2e0 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseCustomNameVisible.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseCustomNameVisible.java
@@ -34,9 +34,8 @@ public class ExprDisguiseCustomNameVisible extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return null;
- return new Boolean[]{watcher.isCustomNameVisible()};
+ return new Boolean[]{disguise.getWatcher() != null ?
+ disguise.getWatcher().isCustomNameVisible() : null};
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseGlowColor.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseGlowColor.java
index 79fdee5..24e13cc 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseGlowColor.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseGlowColor.java
@@ -36,9 +36,8 @@ public class ExprDisguiseGlowColor extends SimpleExpression {
protected SkriptColor[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return null;
- return new SkriptColor[]{SkriptColor.valueOf(watcher.getGlowColor().name())};
+ return new SkriptColor[]{SkriptColor.valueOf(disguise.getWatcher() != null ?
+ disguise.getWatcher().getGlowColor().name() : null)};
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseGlowing.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseGlowing.java
index edf1232..80faacd 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseGlowing.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseGlowing.java
@@ -34,9 +34,8 @@ public class ExprDisguiseGlowing extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return null;
- return new Boolean[]{watcher.isGlowing()};
+ return new Boolean[]{disguise.getWatcher() != null ?
+ disguise.getWatcher().isGlowing() : null};
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseInvisible.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseInvisible.java
index d3cf988..b521ce4 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseInvisible.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseInvisible.java
@@ -35,10 +35,8 @@ public class ExprDisguiseInvisible extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- if (!disguise.isMobDisguise()) return null;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return null;
- return new Boolean[]{watcher.isInvisible() != isNegated};
+ return new Boolean[]{disguise.getWatcher() != null ?
+ disguise.getWatcher().isInvisible() : null};
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseItemMainHand.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseItemMainHand.java
index a9ad171..4817708 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseItemMainHand.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseItemMainHand.java
@@ -37,9 +37,8 @@ public class ExprDisguiseItemMainHand extends SimpleExpression {
ItemStack[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- if (!disguise.isMobDisguise()) return null;
- FlagWatcher watcher = disguise.getWatcher();
- return new ItemStack[]{(watcher.getItemInMainHand() != null ? watcher.getItemInMainHand() : new ItemStack(Material.AIR))};
+ return new ItemStack[]{disguise.getWatcher() != null ?
+ disguise.getWatcher().getItemInMainHand() : null};
}
@Override
@@ -64,26 +63,23 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
}
@Override
- public Class>[] acceptChange(final Changer.ChangeMode changeMode) {
- if (
- changeMode != Changer.ChangeMode.SET &&
- changeMode != Changer.ChangeMode.DELETE &&
- changeMode != Changer.ChangeMode.REMOVE_ALL &&
- changeMode != Changer.ChangeMode.RESET) return null;
- return CollectionUtils.array(ItemStack.class);
+ public Class>[] acceptChange(final Changer.ChangeMode mode) {
+ switch (mode) {
+ case SET, DELETE, REMOVE_ALL, RESET -> { return CollectionUtils.array(ItemStack.class); }
+ }
+ return null;
}
@Override
- public void change(Event e, Object[] delta, Changer.ChangeMode changeMode) {
+ public void change(Event e, Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
if (!disguise.isMobDisguise()) return;
FlagWatcher watcher = disguise.getWatcher();
- if (changeMode != Changer.ChangeMode.SET) {
- watcher.setItemInMainHand(new ItemStack(Material.AIR));
- return;
+ switch (mode) {
+ case SET -> watcher.setItemInMainHand((ItemStack) delta[0]);
+ case DELETE, REMOVE_ALL, RESET -> watcher.setItemInMainHand(new ItemStack(Material.AIR));
}
- watcher.setItemInMainHand((ItemStack) delta[0]);
DisguiseUtil.update(disguise);
}
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseItemOffhand.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseItemOffhand.java
index 15606e1..096de9a 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseItemOffhand.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseItemOffhand.java
@@ -37,9 +37,8 @@ public class ExprDisguiseItemOffhand extends SimpleExpression {
ItemStack[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- if (!disguise.isMobDisguise()) return null;
- FlagWatcher watcher = disguise.getWatcher();
- return new ItemStack[]{(watcher.getItemInOffHand() != null ? watcher.getItemInOffHand() : new ItemStack(Material.AIR))};
+ return new ItemStack[]{disguise.getWatcher() != null ?
+ disguise.getWatcher().getItemInOffHand() : null};
}
@Override
@@ -64,26 +63,23 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
}
@Override
- public Class>[] acceptChange(final Changer.ChangeMode changeMode) {
- if (
- changeMode != Changer.ChangeMode.SET &&
- changeMode != Changer.ChangeMode.DELETE &&
- changeMode != Changer.ChangeMode.REMOVE_ALL &&
- changeMode != Changer.ChangeMode.RESET) return null;
- return CollectionUtils.array(ItemStack.class);
+ public Class>[] acceptChange(final Changer.ChangeMode mode) {
+ switch (mode) {
+ case SET, DELETE, REMOVE_ALL, RESET -> { return CollectionUtils.array(ItemStack.class); }
+ }
+ return null;
}
@Override
- public void change(Event e, Object[] delta, Changer.ChangeMode changeMode) {
+ public void change(Event e, Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
if (!disguise.isMobDisguise()) return;
FlagWatcher watcher = disguise.getWatcher();
- if (changeMode != Changer.ChangeMode.SET) {
- watcher.setItemInOffHand(new ItemStack(Material.AIR));
- return;
+ switch (mode) {
+ case SET -> watcher.setItemInOffHand((ItemStack) delta[0]);
+ case DELETE, REMOVE_ALL, RESET -> watcher.setItemInOffHand(new ItemStack(Material.AIR));
}
- watcher.setItemInOffHand((ItemStack) delta[0]);
DisguiseUtil.update(disguise);
}
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseSlot.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseSlot.java
index a767f6f..17b8b9b 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseSlot.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseSlot.java
@@ -39,34 +39,17 @@ public class ExprDisguiseSlot extends SimpleExpression {
ItemStack[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- if (!disguise.isMobDisguise()) return null;
- FlagWatcher watcher = disguise.getWatcher();
- ItemStack itemStack;
- EquipmentSlot slot;
+ EquipmentSlot slot = null;
switch (mark) {
- case 1:
- slot = EquipmentSlot.HEAD;
- break;
- case 2:
- slot = EquipmentSlot.CHEST;
- break;
- case 3:
- slot = EquipmentSlot.LEGS;
- break;
- case 4:
- slot = EquipmentSlot.FEET;
- break;
- case 5:
- slot = EquipmentSlot.HAND;
- break;
- case 6:
- slot = EquipmentSlot.OFF_HAND;
- break;
- default:
- return new ItemStack[]{new ItemStack(Material.AIR, 1)};
+ case 1 -> slot = EquipmentSlot.HEAD;
+ case 2 -> slot = EquipmentSlot.CHEST;
+ case 3 -> slot = EquipmentSlot.LEGS;
+ case 4 -> slot = EquipmentSlot.FEET;
+ case 5 -> slot = EquipmentSlot.HAND;
+ case 6 -> slot = EquipmentSlot.OFF_HAND;
}
- itemStack = watcher.getItemStack(slot);
- return new ItemStack[]{itemStack != null ? itemStack : new ItemStack(Material.AIR, 1)};
+ return new ItemStack[]{disguise.getWatcher() != null ?
+ disguise.getWatcher().getItemStack(slot) : null};
}
@Override
@@ -92,47 +75,30 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
}
@Override
- public Class>[] acceptChange(final Changer.ChangeMode changeMode) {
- if (
- changeMode != Changer.ChangeMode.SET &&
- changeMode != Changer.ChangeMode.DELETE &&
- changeMode != Changer.ChangeMode.REMOVE_ALL &&
- changeMode != Changer.ChangeMode.RESET) return null;
- return CollectionUtils.array(ItemStack.class);
+ public Class>[] acceptChange(final Changer.ChangeMode mode) {
+ switch (mode) {
+ case SET, DELETE, REMOVE_ALL, RESET -> { return CollectionUtils.array(ItemStack.class); }
+ }
+ return null;
}
@Override
- public void change(Event e, Object[] delta, Changer.ChangeMode changeMode) {
+ public void change(Event e, Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
- if (!disguise.isMobDisguise()) return;
FlagWatcher watcher = disguise.getWatcher();
ItemStack itemStack = new ItemStack(Material.AIR, 1);
try {
itemStack = (ItemStack) delta[0];
} catch (NullPointerException ignore) {}
- EquipmentSlot slot;
+ EquipmentSlot slot = null;
switch (mark) {
- case 1:
- slot = EquipmentSlot.HEAD;
- break;
- case 2:
- slot = EquipmentSlot.CHEST;
- break;
- case 3:
- slot = EquipmentSlot.LEGS;
- break;
- case 4:
- slot = EquipmentSlot.FEET;
- break;
- case 5:
- slot = EquipmentSlot.HAND;
- break;
- case 6:
- slot = EquipmentSlot.OFF_HAND;
- break;
- default:
- return;
+ case 1 -> slot = EquipmentSlot.HEAD;
+ case 2 -> slot = EquipmentSlot.CHEST;
+ case 3 -> slot = EquipmentSlot.LEGS;
+ case 4 -> slot = EquipmentSlot.FEET;
+ case 5 -> slot = EquipmentSlot.HAND;
+ case 6 -> slot = EquipmentSlot.OFF_HAND;
}
watcher.setItemStack(slot, itemStack);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseSneaking.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseSneaking.java
index 68a1e65..5b621d1 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseSneaking.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseSneaking.java
@@ -34,9 +34,8 @@ public class ExprDisguiseSneaking extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return null;
- return new Boolean[]{watcher.isSneaking()};
+ return new Boolean[]{disguise.getWatcher() != null ?
+ disguise.getWatcher().isSneaking() : null};
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseSwimming.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseSwimming.java
new file mode 100644
index 0000000..ca828a7
--- /dev/null
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseSwimming.java
@@ -0,0 +1,78 @@
+package me.tud.diskuise.elements.watchers.flag.expressions;
+
+import ch.njol.skript.Skript;
+import ch.njol.skript.classes.Changer;
+import ch.njol.skript.doc.*;
+import ch.njol.skript.lang.Expression;
+import ch.njol.skript.lang.ExpressionType;
+import ch.njol.skript.lang.SkriptParser;
+import ch.njol.skript.lang.util.SimpleExpression;
+import ch.njol.util.Kleenean;
+import ch.njol.util.coll.CollectionUtils;
+import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.FlagWatcher;
+import me.tud.diskuise.utils.DisguiseUtil;
+import org.bukkit.event.Event;
+import org.jetbrains.annotations.Nullable;
+
+@Name("Disguise - Swimming")
+@Description("Set or get if a disguise appears to be swimming")
+@Examples("set swim of disguise {dis} to true")
+@Since("0.2-beta3")
+@RequiredPlugins({"LibsDisguises"})
+public class ExprDisguiseSwimming extends SimpleExpression {
+
+ static {
+ Skript.registerExpression(ExprDisguiseSwimming.class, Boolean.class, ExpressionType.PROPERTY,
+ "[the] swim[(ing|s)] [(value|option|state)] of [dis(k|g)uise] %disguise%",
+ "[dis(k|g)uise] %disguise%'s swim[(ing|s)] [(value|option|state)]");
+ }
+
+ Expression disguise;
+
+ @Override
+ protected Boolean[] get(Event e) {
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return null;
+ return new Boolean[]{disguise.getWatcher() != null ?
+ disguise.getWatcher().isSwimming() : null};
+ }
+
+ @Override
+ public boolean isSingle() {
+ return true;
+ }
+
+ @Override
+ public Class extends Boolean> getReturnType() {
+ return Boolean.class;
+ }
+
+ @Override
+ public String toString(@Nullable Event e, boolean debug) {
+ return null;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
+ disguise = (Expression) exprs[0];
+ return true;
+ }
+
+ @Override
+ public @Nullable
+ Class>[] acceptChange(Changer.ChangeMode mode) {
+ if (mode == Changer.ChangeMode.SET) return CollectionUtils.array(Boolean.class);
+ return null;
+ }
+
+ @Override
+ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return;
+ boolean bool = Boolean.TRUE.equals(delta[0]);
+ disguise.getWatcher().setSwimming(bool);
+ DisguiseUtil.update(disguise);
+ }
+}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseUpsideDown.java b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseUpsideDown.java
index 09ea383..8fa5ffb 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseUpsideDown.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/flag/expressions/ExprDisguiseUpsideDown.java
@@ -34,9 +34,8 @@ public class ExprDisguiseUpsideDown extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- FlagWatcher watcher = disguise.getWatcher();
- if (watcher == null) return null;
- return new Boolean[]{watcher.isUpsideDown()};
+ return new Boolean[]{disguise.getWatcher() != null ?
+ disguise.getWatcher().isUpsideDown() : null};
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/enderman/conditions/CondIsAggressive.java b/src/main/java/me/tud/diskuise/elements/watchers/insentient/conditions/CondIsAggressive.java
similarity index 68%
rename from src/main/java/me/tud/diskuise/elements/watchers/enderman/conditions/CondIsAggressive.java
rename to src/main/java/me/tud/diskuise/elements/watchers/insentient/conditions/CondIsAggressive.java
index fbe0bc0..d9364e7 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/enderman/conditions/CondIsAggressive.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/insentient/conditions/CondIsAggressive.java
@@ -1,4 +1,4 @@
-package me.tud.diskuise.elements.watchers.enderman.conditions;
+package me.tud.diskuise.elements.watchers.insentient.conditions;
import ch.njol.skript.Skript;
import ch.njol.skript.doc.*;
@@ -8,14 +8,15 @@
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
import me.libraryaddict.disguise.disguisetypes.watchers.EndermanWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.GhastWatcher;
import org.bukkit.event.Event;
import org.jetbrains.annotations.Nullable;
-@Name("Enderman Disguise - Is Aggressive")
-@Description("Checks if an enderman disguise is aggressive")
+@Name("Insentient Disguise - Is Aggressive")
+@Description("Checks if an insentient disguise is aggressive")
@Examples({"if {dis} is aggressive:",
"\tset aggressive state of {dis} to false"})
-@Since("0.2-beta1")
+@Since("0.2-beta3")
@RequiredPlugins({"LibsDisguises"})
public class CondIsAggressive extends Condition {
@@ -30,11 +31,10 @@ public class CondIsAggressive extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- EndermanWatcher watcher;
- try {
- watcher = (EndermanWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isAggressive() != isNegated();
+ boolean isAggressive = false;
+ if (disguise.getWatcher() instanceof EndermanWatcher) isAggressive = ((EndermanWatcher) disguise.getWatcher()).isAggressive();
+ else if (disguise.getWatcher() instanceof GhastWatcher) isAggressive = ((GhastWatcher) disguise.getWatcher()).isAggressive();
+ return isAggressive != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/insentient/effects/EffDisguiseMakeAI.java b/src/main/java/me/tud/diskuise/elements/watchers/insentient/effects/EffDisguiseMakeAI.java
new file mode 100644
index 0000000..fa5ff3a
--- /dev/null
+++ b/src/main/java/me/tud/diskuise/elements/watchers/insentient/effects/EffDisguiseMakeAI.java
@@ -0,0 +1,54 @@
+package me.tud.diskuise.elements.watchers.insentient.effects;
+
+import ch.njol.skript.Skript;
+import ch.njol.skript.doc.*;
+import ch.njol.skript.lang.Effect;
+import ch.njol.skript.lang.Expression;
+import ch.njol.skript.lang.SkriptParser;
+import ch.njol.util.Kleenean;
+import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.InsentientWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.PlayerWatcher;
+import me.tud.diskuise.utils.DisguiseUtil;
+import org.bukkit.event.Event;
+import org.jetbrains.annotations.Nullable;
+
+@Name("Insentient Disguise - Make AI")
+@Description("Sets if an insentient disguise has AI")
+@Examples("make player's disguise have ai")
+@Since("0.2-beta2")
+@RequiredPlugins({"LibsDisguises"})
+public class EffDisguiseMakeAI extends Effect {
+
+ static {
+ Skript.registerEffect(EffDisguiseMakeAI.class,
+ "make [dis(k|g)uise] %disguise% [1¦not] have (ai|artificial intelligence)");
+ }
+
+ Expression disguise;
+ boolean bool;
+
+ @Override
+ protected void execute(Event e) {
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return;
+ InsentientWatcher watcher;
+ if (disguise.getWatcher() instanceof InsentientWatcher) watcher = (InsentientWatcher) disguise.getWatcher();
+ else return;
+ watcher.setAI(bool);
+ DisguiseUtil.update(disguise);
+ }
+
+ @Override
+ public String toString(@Nullable Event e, boolean debug) {
+ return null;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
+ disguise = (Expression) exprs[0];
+ bool = parseResult.mark != 1;
+ return true;
+ }
+}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/enderman/effects/EffDisguiseMakeAggressive.java b/src/main/java/me/tud/diskuise/elements/watchers/insentient/effects/EffDisguiseMakeAggressive.java
similarity index 73%
rename from src/main/java/me/tud/diskuise/elements/watchers/enderman/effects/EffDisguiseMakeAggressive.java
rename to src/main/java/me/tud/diskuise/elements/watchers/insentient/effects/EffDisguiseMakeAggressive.java
index 6ec219c..3bc2241 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/enderman/effects/EffDisguiseMakeAggressive.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/insentient/effects/EffDisguiseMakeAggressive.java
@@ -1,4 +1,4 @@
-package me.tud.diskuise.elements.watchers.enderman.effects;
+package me.tud.diskuise.elements.watchers.insentient.effects;
import ch.njol.skript.Skript;
import ch.njol.skript.doc.*;
@@ -8,12 +8,13 @@
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
import me.libraryaddict.disguise.disguisetypes.watchers.EndermanWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.GhastWatcher;
import me.tud.diskuise.utils.DisguiseUtil;
import org.bukkit.event.Event;
import org.jetbrains.annotations.Nullable;
-@Name("Enderman Disguise - Make Aggressive")
-@Description("Sets if an enderman disguise appears to be aggressive")
+@Name("Insentient Disguise - Make Aggressive")
+@Description("Sets if an insentient disguise appears to be aggressive")
@Examples({"make player's disguise aggressive"})
@Since("0.2-beta3")
@RequiredPlugins({"LibsDisguises"})
@@ -31,11 +32,9 @@ public class EffDisguiseMakeAggressive extends Effect {
protected void execute(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
- EndermanWatcher watcher;
- try {
- watcher = (EndermanWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
- watcher.setAggressive(bool);
+ if (disguise.getWatcher() instanceof EndermanWatcher) ((EndermanWatcher) disguise.getWatcher()).setAggressive(bool);
+ else if (disguise.getWatcher() instanceof GhastWatcher) ((GhastWatcher) disguise.getWatcher()).setAggressive(bool);
+ else return;
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/insentient/effects/EffDisguiseMakeEnraged.java b/src/main/java/me/tud/diskuise/elements/watchers/insentient/effects/EffDisguiseMakeEnraged.java
new file mode 100644
index 0000000..6a542a2
--- /dev/null
+++ b/src/main/java/me/tud/diskuise/elements/watchers/insentient/effects/EffDisguiseMakeEnraged.java
@@ -0,0 +1,53 @@
+package me.tud.diskuise.elements.watchers.insentient.effects;
+
+import ch.njol.skript.Skript;
+import ch.njol.skript.doc.*;
+import ch.njol.skript.lang.Effect;
+import ch.njol.skript.lang.Expression;
+import ch.njol.skript.lang.SkriptParser;
+import ch.njol.util.Kleenean;
+import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.InsentientWatcher;
+import me.tud.diskuise.utils.DisguiseUtil;
+import org.bukkit.event.Event;
+import org.jetbrains.annotations.Nullable;
+
+@Name("Insentient Disguise - Make Enraged")
+@Description("Sets if an insentient disguise appears to be enraged")
+@Examples("make player's disguise enraged")
+@Since("0.2-beta2")
+@RequiredPlugins({"LibsDisguises"})
+public class EffDisguiseMakeEnraged extends Effect {
+
+ static {
+ Skript.registerEffect(EffDisguiseMakeEnraged.class,
+ "make [dis(k|g)uise] %disguise% [1¦not] enrage[d]");
+ }
+
+ Expression disguise;
+ boolean bool;
+
+ @Override
+ protected void execute(Event e) {
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return;
+ InsentientWatcher watcher;
+ if (disguise.getWatcher() instanceof InsentientWatcher) watcher = (InsentientWatcher) disguise.getWatcher();
+ else return;
+ watcher.setEnraged(bool);
+ DisguiseUtil.update(disguise);
+ }
+
+ @Override
+ public String toString(@Nullable Event e, boolean debug) {
+ return null;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
+ disguise = (Expression) exprs[0];
+ bool = parseResult.mark != 1;
+ return true;
+ }
+}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/insentient/expressions/ExprDisguiseAI.java b/src/main/java/me/tud/diskuise/elements/watchers/insentient/expressions/ExprDisguiseAI.java
new file mode 100644
index 0000000..763a7aa
--- /dev/null
+++ b/src/main/java/me/tud/diskuise/elements/watchers/insentient/expressions/ExprDisguiseAI.java
@@ -0,0 +1,82 @@
+package me.tud.diskuise.elements.watchers.insentient.expressions;
+
+import ch.njol.skript.Skript;
+import ch.njol.skript.classes.Changer;
+import ch.njol.skript.doc.*;
+import ch.njol.skript.lang.Expression;
+import ch.njol.skript.lang.ExpressionType;
+import ch.njol.skript.lang.SkriptParser;
+import ch.njol.skript.lang.util.SimpleExpression;
+import ch.njol.util.Kleenean;
+import ch.njol.util.coll.CollectionUtils;
+import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.InsentientWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.PlayerWatcher;
+import me.tud.diskuise.utils.DisguiseUtil;
+import org.bukkit.event.Event;
+import org.jetbrains.annotations.Nullable;
+
+@Name("Insentient Disguise - AI")
+@Description("Set or get if an insentient disguise has AI")
+@Examples("set ai of disguise {dis} to true")
+@Since("0.2-beta3")
+@RequiredPlugins({"LibsDisguises"})
+public class ExprDisguiseAI extends SimpleExpression {
+
+ static {
+ Skript.registerExpression(ExprDisguiseAI.class, Boolean.class, ExpressionType.PROPERTY,
+ "[the] [(is|has)] (ai|artificial intelligence) [(value|option|state)] of [dis(k|g)uise] %disguise%",
+ "[dis(k|g)uise] %disguise%'s [(is|has)] (ai|artificial intelligence) [(value|option|state)]");
+ }
+
+ Expression disguise;
+
+ @Override
+ protected Boolean[] get(Event e) {
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return null;
+ return new Boolean[]{disguise.getWatcher() instanceof InsentientWatcher ?
+ ((InsentientWatcher) disguise.getWatcher()).isAI() : null};
+ }
+
+ @Override
+ public boolean isSingle() {
+ return true;
+ }
+
+ @Override
+ public Class extends Boolean> getReturnType() {
+ return Boolean.class;
+ }
+
+ @Override
+ public String toString(@Nullable Event e, boolean debug) {
+ return null;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
+ disguise = (Expression) exprs[0];
+ return true;
+ }
+
+ @Override
+ public @Nullable
+ Class>[] acceptChange(Changer.ChangeMode mode) {
+ if (mode == Changer.ChangeMode.SET) return CollectionUtils.array(Boolean.class);
+ return null;
+ }
+
+ @Override
+ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return;
+ InsentientWatcher watcher;
+ if (disguise.getWatcher() instanceof InsentientWatcher) watcher = (InsentientWatcher) disguise.getWatcher();
+ else return;
+ boolean bool = Boolean.TRUE.equals(delta[0]);
+ watcher.setAI(bool);
+ DisguiseUtil.update(disguise);
+ }
+}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/enderman/expressions/ExprDisguiseAggressive.java b/src/main/java/me/tud/diskuise/elements/watchers/insentient/expressions/ExprDisguiseAggressive.java
similarity index 71%
rename from src/main/java/me/tud/diskuise/elements/watchers/enderman/expressions/ExprDisguiseAggressive.java
rename to src/main/java/me/tud/diskuise/elements/watchers/insentient/expressions/ExprDisguiseAggressive.java
index b5b575c..29263f2 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/enderman/expressions/ExprDisguiseAggressive.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/insentient/expressions/ExprDisguiseAggressive.java
@@ -1,4 +1,4 @@
-package me.tud.diskuise.elements.watchers.enderman.expressions;
+package me.tud.diskuise.elements.watchers.insentient.expressions;
import ch.njol.skript.Skript;
import ch.njol.skript.classes.Changer;
@@ -11,12 +11,14 @@
import ch.njol.util.coll.CollectionUtils;
import me.libraryaddict.disguise.disguisetypes.Disguise;
import me.libraryaddict.disguise.disguisetypes.watchers.EndermanWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.GhastWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.InsentientWatcher;
import me.tud.diskuise.utils.DisguiseUtil;
import org.bukkit.event.Event;
import org.jetbrains.annotations.Nullable;
-@Name("Enderman Disguise - Aggressive")
-@Description("Set or get if an enderman disguise appears to be aggressive")
+@Name("Insentient Disguise - Aggressive")
+@Description("Set or get if an insentient disguise appears to be aggressive")
@Examples("set aggressiveness of disguise {dis} to true")
@Since("0.2-beta3")
@RequiredPlugins({"LibsDisguises"})
@@ -34,12 +36,10 @@ public class ExprDisguiseAggressive extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- EndermanWatcher watcher;
- try {
- watcher = (EndermanWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isAggressive()};
+ boolean isAggressive = false;
+ if (disguise.getWatcher() instanceof EndermanWatcher) isAggressive = ((EndermanWatcher) disguise.getWatcher()).isAggressive();
+ else if (disguise.getWatcher() instanceof GhastWatcher) isAggressive = ((GhastWatcher) disguise.getWatcher()).isAggressive();
+ return new Boolean[]{isAggressive};
}
@Override
@@ -75,12 +75,10 @@ Class>[] acceptChange(Changer.ChangeMode mode) {
public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
- EndermanWatcher watcher;
- try {
- watcher = (EndermanWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
boolean bool = Boolean.TRUE.equals(delta[0]);
- watcher.setAggressive(bool);
+ if (disguise.getWatcher() instanceof EndermanWatcher) ((EndermanWatcher) disguise.getWatcher()).setAggressive(bool);
+ else if (disguise.getWatcher() instanceof GhastWatcher) ((GhastWatcher) disguise.getWatcher()).setAggressive(bool);
+ else return;
DisguiseUtil.update(disguise);
}
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/insentient/expressions/ExprDisguiseEnraged.java b/src/main/java/me/tud/diskuise/elements/watchers/insentient/expressions/ExprDisguiseEnraged.java
new file mode 100644
index 0000000..18ca678
--- /dev/null
+++ b/src/main/java/me/tud/diskuise/elements/watchers/insentient/expressions/ExprDisguiseEnraged.java
@@ -0,0 +1,81 @@
+package me.tud.diskuise.elements.watchers.insentient.expressions;
+
+import ch.njol.skript.Skript;
+import ch.njol.skript.classes.Changer;
+import ch.njol.skript.doc.*;
+import ch.njol.skript.lang.Expression;
+import ch.njol.skript.lang.ExpressionType;
+import ch.njol.skript.lang.SkriptParser;
+import ch.njol.skript.lang.util.SimpleExpression;
+import ch.njol.util.Kleenean;
+import ch.njol.util.coll.CollectionUtils;
+import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.InsentientWatcher;
+import me.tud.diskuise.utils.DisguiseUtil;
+import org.bukkit.event.Event;
+import org.jetbrains.annotations.Nullable;
+
+@Name("Insentient Disguise - Enraged")
+@Description("Set or get if an insentient disguise appears to be enraged")
+@Examples("set enraged of disguise {dis} to true")
+@Since("0.2-beta3")
+@RequiredPlugins({"LibsDisguises"})
+public class ExprDisguiseEnraged extends SimpleExpression {
+
+ static {
+ Skript.registerExpression(ExprDisguiseEnraged.class, Boolean.class, ExpressionType.PROPERTY,
+ "[the] [is] enrage[d] [(value|option|state)] of [dis(k|g)uise] %disguise%",
+ "[dis(k|g)uise] %disguise%'s [is] enrage[d] [(value|option|state)]");
+ }
+
+ Expression disguise;
+
+ @Override
+ protected Boolean[] get(Event e) {
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return null;
+ return new Boolean[]{disguise.getWatcher() instanceof InsentientWatcher ?
+ ((InsentientWatcher) disguise.getWatcher()).isEnraged() : null};
+ }
+
+ @Override
+ public boolean isSingle() {
+ return true;
+ }
+
+ @Override
+ public Class extends Boolean> getReturnType() {
+ return Boolean.class;
+ }
+
+ @Override
+ public String toString(@Nullable Event e, boolean debug) {
+ return null;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
+ disguise = (Expression) exprs[0];
+ return true;
+ }
+
+ @Override
+ public @Nullable
+ Class>[] acceptChange(Changer.ChangeMode mode) {
+ if (mode == Changer.ChangeMode.SET) return CollectionUtils.array(Boolean.class);
+ return null;
+ }
+
+ @Override
+ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return;
+ InsentientWatcher watcher;
+ if (disguise.getWatcher() instanceof InsentientWatcher) watcher = (InsentientWatcher) disguise.getWatcher();
+ else return;
+ boolean bool = Boolean.TRUE.equals(delta[0]);
+ watcher.setEnraged(bool);
+ DisguiseUtil.update(disguise);
+ }
+}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/irongolem/expressions/ExprDisguiseCracks.java b/src/main/java/me/tud/diskuise/elements/watchers/irongolem/expressions/ExprDisguiseCracks.java
new file mode 100644
index 0000000..d62e7e8
--- /dev/null
+++ b/src/main/java/me/tud/diskuise/elements/watchers/irongolem/expressions/ExprDisguiseCracks.java
@@ -0,0 +1,105 @@
+package me.tud.diskuise.elements.watchers.irongolem.expressions;
+
+import ch.njol.skript.Skript;
+import ch.njol.skript.classes.Changer;
+import ch.njol.skript.doc.*;
+import ch.njol.skript.lang.Expression;
+import ch.njol.skript.lang.ExpressionType;
+import ch.njol.skript.lang.SkriptParser;
+import ch.njol.skript.lang.util.SimpleExpression;
+import ch.njol.util.Kleenean;
+import ch.njol.util.coll.CollectionUtils;
+import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.GolemCrack;
+import me.libraryaddict.disguise.disguisetypes.watchers.InsentientWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.IronGolemWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.ItemFrameWatcher;
+import me.tud.diskuise.utils.DisguiseUtil;
+import org.bukkit.event.Event;
+import org.jetbrains.annotations.Nullable;
+
+@Name("Iron Golem Disguise - Cracks")
+@Description({"Set or get the cracks in an iron golem disguise", "The stages go from 1-4 (1 being no cracks and 4 being full of cracks)"})
+@Examples("set the golem cracks of {_dis} to 3")
+@Since("0.2-beta3")
+@RequiredPlugins({"LibsDisguises"})
+public class ExprDisguiseCracks extends SimpleExpression {
+
+ static {
+ Skript.registerExpression(ExprDisguiseCracks.class, Number.class, ExpressionType.PROPERTY,
+ "[the] [[iron[ ]]golem] crack[s] [stage] of [dis(k|g)uise] %disguise%",
+ "[dis(k|g)uise] %disguise%'s [[iron[ ]]golem] crack[s] [stage]");
+ }
+
+ Expression disguise;
+
+ @Override
+ protected Number[] get(Event e) {
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return null;
+ IronGolemWatcher watcher;
+ if (disguise.getWatcher() instanceof IronGolemWatcher) watcher = (IronGolemWatcher) disguise.getWatcher();
+ else return null;
+ if (watcher.getCracks() == null) return new Number[]{1};
+ Integer stage = null;
+ switch (watcher.getCracks()) {
+ case HEALTH_100 -> stage = 1;
+ case HEALTH_75 -> stage = 2;
+ case HEALTH_50 -> stage = 3;
+ case HEALTH_25 -> stage = 4;
+ }
+ return new Number[]{stage};
+ }
+
+ @Override
+ public boolean isSingle() {
+ return true;
+ }
+
+ @Override
+ public Class extends Number> getReturnType() {
+ return Number.class;
+ }
+
+ @Override
+ public String toString(@Nullable Event e, boolean debug) {
+ return null;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
+ disguise = (Expression) exprs[0];
+ return true;
+ }
+
+ @Override
+ public @Nullable
+ Class>[] acceptChange(Changer.ChangeMode mode) {
+ switch (mode) {
+ case SET, RESET, REMOVE_ALL -> { return CollectionUtils.array(Number.class); }
+ }
+ return null;
+ }
+
+ @Override
+ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
+ if (delta[0] == null) return;
+ Disguise disguise = this.disguise.getSingle(e);
+ if (disguise == null) return;
+ IronGolemWatcher watcher;
+ if (disguise.getWatcher() instanceof IronGolemWatcher) watcher = (IronGolemWatcher) disguise.getWatcher();
+ else return;
+ GolemCrack crack = GolemCrack.HEALTH_100;
+ if (mode == Changer.ChangeMode.SET) {
+ switch (((Number) delta[0]).intValue()) {
+ case 2 -> crack = GolemCrack.HEALTH_75;
+ case 3 -> crack = GolemCrack.HEALTH_50;
+ case 4 -> crack = GolemCrack.HEALTH_25;
+ }
+ }
+
+ watcher.setCracks(crack);
+ DisguiseUtil.update(disguise);
+ }
+}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/itemframe/expressions/ExprDisguiseItem.java b/src/main/java/me/tud/diskuise/elements/watchers/itemframe/expressions/ExprDisguiseItem.java
index 5d42d17..578b593 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/itemframe/expressions/ExprDisguiseItem.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/itemframe/expressions/ExprDisguiseItem.java
@@ -10,6 +10,8 @@
import ch.njol.util.Kleenean;
import ch.njol.util.coll.CollectionUtils;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.InsentientWatcher;
+import me.libraryaddict.disguise.disguisetypes.watchers.IronGolemWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.ItemFrameWatcher;
import me.tud.diskuise.utils.DisguiseUtil;
import org.bukkit.event.Event;
@@ -35,11 +37,8 @@ public class ExprDisguiseItem extends SimpleExpression {
protected ItemStack[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- ItemFrameWatcher watcher;
- try {
- watcher = (ItemFrameWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new ItemStack[]{watcher.getItem()};
+ return new ItemStack[]{disguise.getWatcher() instanceof ItemFrameWatcher ?
+ ((ItemFrameWatcher) disguise.getWatcher()).getItem() : null};
}
@Override
@@ -76,9 +75,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
ItemFrameWatcher watcher;
- try {
- watcher = (ItemFrameWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof ItemFrameWatcher) watcher = (ItemFrameWatcher) disguise.getWatcher();
+ else return;
ItemStack itemStack = (ItemStack) delta[0];
watcher.setItem(itemStack);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/itemframe/expressions/ExprDisguiseRotation.java b/src/main/java/me/tud/diskuise/elements/watchers/itemframe/expressions/ExprDisguiseRotation.java
index bdceeab..1a95b42 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/itemframe/expressions/ExprDisguiseRotation.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/itemframe/expressions/ExprDisguiseRotation.java
@@ -34,11 +34,8 @@ public class ExprDisguiseRotation extends SimpleExpression {
protected Number[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- ItemFrameWatcher watcher;
- try {
- watcher = (ItemFrameWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new Number[]{watcher.getRotation()};
+ return new Number[]{disguise.getWatcher() instanceof ItemFrameWatcher ?
+ ((ItemFrameWatcher) disguise.getWatcher()).getRotation() : null};
}
@Override
@@ -66,7 +63,9 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
@Override
public @Nullable
Class>[] acceptChange(Changer.ChangeMode mode) {
- if (mode == Changer.ChangeMode.SET || mode == Changer.ChangeMode.ADD || mode == Changer.ChangeMode.REMOVE) return CollectionUtils.array(Number.class);
+ switch (mode) {
+ case SET, ADD, REMOVE -> { return CollectionUtils.array(Number.class); }
+ }
return null;
}
@@ -76,18 +75,20 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
ItemFrameWatcher watcher;
- try {
- watcher = (ItemFrameWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof ItemFrameWatcher) watcher = (ItemFrameWatcher) disguise.getWatcher();
+ else return;
int value = ((Number) delta[0]).intValue();
int rotation = watcher.getRotation();
- if (mode != Changer.ChangeMode.SET) {
- if (mode == Changer.ChangeMode.REMOVE) value *= -1;
- rotation += value;
+ switch (mode) {
+ case SET -> rotation = value;
+ case ADD, REMOVE -> {
+ if (mode == Changer.ChangeMode.REMOVE) value *= -1;
+ rotation += value;
+ }
}
- else rotation = value;
+
watcher.setRotation(rotation);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsHandRaised.java b/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsHandRaised.java
index 6e25104..b98ae10 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsHandRaised.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsHandRaised.java
@@ -7,6 +7,7 @@
import ch.njol.skript.lang.SkriptParser;
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.ArrowWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.LivingWatcher;
import org.bukkit.event.Event;
import org.jetbrains.annotations.Nullable;
@@ -32,12 +33,10 @@ public class CondIsHandRaised extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- if (!isMainHand) return watcher.isOffhandRaised() != isNegated();
- return watcher.isMainHandRaised() != isNegated();
+ if (!isMainHand) return disguise.getWatcher() instanceof LivingWatcher &&
+ ((LivingWatcher) disguise.getWatcher()).isOffhandRaised() != isNegated();
+ return disguise.getWatcher() instanceof LivingWatcher &&
+ disguise.getWatcher().isMainHandRaised() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsParticlesAmbient.java b/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsParticlesAmbient.java
index 98252db..7163f44 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsParticlesAmbient.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsParticlesAmbient.java
@@ -30,11 +30,8 @@ public class CondIsParticlesAmbient extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isPotionParticlesAmbient() != isNegated();
+ return disguise.getWatcher() instanceof LivingWatcher &&
+ ((LivingWatcher) disguise.getWatcher()).isPotionParticlesAmbient() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsSpinning.java b/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsSpinning.java
index d43bb5d..d5451be 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsSpinning.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/conditions/CondIsSpinning.java
@@ -30,11 +30,8 @@ public class CondIsSpinning extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isSpinning() != isNegated();
+ return disguise.getWatcher() instanceof LivingWatcher &&
+ ((LivingWatcher) disguise.getWatcher()).isSpinning() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseMakeParticlesAmbient.java b/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseMakeParticlesAmbient.java
index 75f53ca..a15d3f1 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseMakeParticlesAmbient.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseMakeParticlesAmbient.java
@@ -32,9 +32,8 @@ protected void execute(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof LivingWatcher) watcher = (LivingWatcher) disguise.getWatcher();
+ else return;
watcher.setPotionParticlesAmbient(bool);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseMakeSpin.java b/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseMakeSpin.java
index 4bdc116..8697d24 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseMakeSpin.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseMakeSpin.java
@@ -32,9 +32,8 @@ protected void execute(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof LivingWatcher) watcher = (LivingWatcher) disguise.getWatcher();
+ else return;
watcher.setSpinning(bool);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseRaiseHand.java b/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseRaiseHand.java
index 1092174..f28f76c 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseRaiseHand.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/effects/EffDisguiseRaiseHand.java
@@ -34,9 +34,8 @@ protected void execute(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof LivingWatcher) watcher = (LivingWatcher) disguise.getWatcher();
+ else return;
if (!isMainHand) watcher.setOffhandRaised(bool);
else watcher.setMainHandRaised(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseArrowsStuck.java b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseArrowsStuck.java
index 475e02c..d660390 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseArrowsStuck.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseArrowsStuck.java
@@ -10,6 +10,7 @@
import ch.njol.util.Kleenean;
import ch.njol.util.coll.CollectionUtils;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.FallingBlockWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.LivingWatcher;
import me.tud.diskuise.utils.DisguiseUtil;
import org.bukkit.event.Event;
@@ -33,11 +34,8 @@ public class ExprDisguiseArrowsStuck extends SimpleExpression {
protected Number[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new Number[]{watcher.getArrowsSticking()};
+ return new Number[]{disguise.getWatcher() instanceof LivingWatcher ?
+ ((LivingWatcher) disguise.getWatcher()).getArrowsSticking() : null};
}
@Override
@@ -65,7 +63,9 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
@Override
public @Nullable
Class>[] acceptChange(Changer.ChangeMode mode) {
- if (mode == Changer.ChangeMode.SET || mode == Changer.ChangeMode.ADD || mode == Changer.ChangeMode.REMOVE) return CollectionUtils.array(Number.class);
+ switch (mode) {
+ case SET, ADD, REMOVE, REMOVE_ALL -> { return CollectionUtils.array(Number.class); }
+ }
return null;
}
@@ -75,18 +75,21 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof LivingWatcher) watcher = (LivingWatcher) disguise.getWatcher();
+ else return;
- int value = ((Number) delta[0]).intValue();
+ int value = mode != Changer.ChangeMode.REMOVE_ALL ? ((Number) delta[0]).intValue() : 0;
int arrows = watcher.getArrowsSticking();
- if (mode != Changer.ChangeMode.SET) {
- if (mode == Changer.ChangeMode.REMOVE) value *= -1;
- arrows += value;
+ switch (mode) {
+ case SET -> arrows = value;
+ case REMOVE_ALL -> arrows = 0;
+ case ADD, REMOVE -> {
+ if (mode == Changer.ChangeMode.REMOVE) value *= -1;
+ arrows += value;
+ }
}
- else arrows = value;
+
watcher.setArrowsSticking(arrows);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseHandRaised.java b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseHandRaised.java
index be6c0a4..55aa84c 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseHandRaised.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseHandRaised.java
@@ -38,13 +38,10 @@ public class ExprDisguiseHandRaised extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- if (!isMainHand) return new Boolean[]{watcher.isOffhandRaised()};
- return new Boolean[]{watcher.isMainHandRaised()};
+ if (!isMainHand) return new Boolean[]{disguise.getWatcher() instanceof LivingWatcher ?
+ ((LivingWatcher) disguise.getWatcher()).isOffhandRaised() : null};
+ return new Boolean[]{disguise.getWatcher() instanceof LivingWatcher ?
+ disguise.getWatcher().isMainHandRaised() : null};
}
@Override
@@ -82,9 +79,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof LivingWatcher) watcher = (LivingWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
if (!isMainHand) watcher.setOffhandRaised(bool);
else watcher.setMainHandRaised(bool);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseHealth.java b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseHealth.java
index 02d4e00..0c555ec 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseHealth.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseHealth.java
@@ -34,11 +34,8 @@ public class ExprDisguiseHealth extends SimpleExpression {
protected Number[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new Number[]{watcher.getHealth()};
+ return new Number[]{disguise.getWatcher() instanceof LivingWatcher ?
+ ((LivingWatcher) disguise.getWatcher()).getHealth() : null};
}
@Override
@@ -66,7 +63,9 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
@Override
public @Nullable
Class>[] acceptChange(Changer.ChangeMode mode) {
- if (mode == Changer.ChangeMode.SET || mode == Changer.ChangeMode.ADD || mode == Changer.ChangeMode.REMOVE) return CollectionUtils.array(Number.class);
+ switch (mode) {
+ case SET, ADD, REMOVE -> { return CollectionUtils.array(Number.class); }
+ }
return null;
}
@@ -76,18 +75,20 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof LivingWatcher) watcher = (LivingWatcher) disguise.getWatcher();
+ else return;
float value = ((Number) delta[0]).floatValue();
float health = watcher.getHealth();
- if (mode != Changer.ChangeMode.SET) {
- if (mode == Changer.ChangeMode.REMOVE) value *= -1;
- health += value;
+ switch (mode) {
+ case SET -> health = value;
+ case ADD, REMOVE -> {
+ if (mode == Changer.ChangeMode.REMOVE) value *= -1;
+ health += value;
+ }
}
- else health = value;
+
watcher.setHealth(health);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseMaxHealth.java b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseMaxHealth.java
index 6d0b473..9fba071 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseMaxHealth.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseMaxHealth.java
@@ -34,11 +34,8 @@ public class ExprDisguiseMaxHealth extends SimpleExpression {
protected Number[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new Number[]{watcher.getMaxHealth()};
+ return new Number[]{disguise.getWatcher() instanceof LivingWatcher ?
+ ((LivingWatcher) disguise.getWatcher()).getMaxHealth() : null};
}
@Override
@@ -66,7 +63,9 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
@Override
public @Nullable
Class>[] acceptChange(Changer.ChangeMode mode) {
- if (mode == Changer.ChangeMode.SET || mode == Changer.ChangeMode.ADD || mode == Changer.ChangeMode.REMOVE) return CollectionUtils.array(Number.class);
+ switch (mode) {
+ case SET, ADD, REMOVE -> { return CollectionUtils.array(Number.class); }
+ }
return null;
}
@@ -83,11 +82,14 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
double value = ((Number) delta[0]).doubleValue();
double maxHealth = watcher.getMaxHealth();
- if (mode != Changer.ChangeMode.SET) {
- if (mode == Changer.ChangeMode.REMOVE) value *= -1;
- maxHealth += value;
+ switch (mode) {
+ case SET -> maxHealth = value;
+ case ADD, REMOVE -> {
+ if (mode == Changer.ChangeMode.REMOVE) value *= -1;
+ maxHealth += value;
+ }
}
- else maxHealth = value;
+
watcher.setMaxHealth(maxHealth);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseParticleColor.java b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseParticleColor.java
index 9e5cd84..da56227 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseParticleColor.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseParticleColor.java
@@ -36,11 +36,8 @@ public class ExprDisguiseParticleColor extends SimpleExpression {
protected SkriptColor[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new SkriptColor[]{SkriptColor.fromBukkitColor(watcher.getParticlesColor())};
+ return new SkriptColor[]{SkriptColor.fromBukkitColor(disguise.getWatcher() instanceof LivingWatcher ?
+ ((LivingWatcher) disguise.getWatcher()).getParticlesColor() : null)};
}
@Override
@@ -68,9 +65,9 @@ public boolean init(Expression>[] exprs, int matchedPattern, Kleenean isDelaye
@Override
public @Nullable
Class>[] acceptChange(Changer.ChangeMode mode) {
- if (mode == Changer.ChangeMode.SET ||
- mode == Changer.ChangeMode.RESET ||
- mode == Changer.ChangeMode.DELETE) return CollectionUtils.array(Color.class);
+ switch (mode) {
+ case SET, RESET, DELETE -> { return CollectionUtils.array(Color.class); }
+ }
return null;
}
@@ -79,16 +76,11 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof LivingWatcher) watcher = (LivingWatcher) disguise.getWatcher();
+ else return;
org.bukkit.Color color = org.bukkit.Color.fromRGB(0);
- if (mode == Changer.ChangeMode.SET) {
- if (delta[0] != null) {
- color = ((SkriptColor) delta[0]).asBukkitColor();
- }
- }
+ if (mode == Changer.ChangeMode.SET && delta[0] != null) color = ((SkriptColor) delta[0]).asBukkitColor();
watcher.setParticlesColor(color);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseParticlesAmbient.java b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseParticlesAmbient.java
index 168b92a..4f15017 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseParticlesAmbient.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseParticlesAmbient.java
@@ -34,12 +34,8 @@ public class ExprDisguiseParticlesAmbient extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isPotionParticlesAmbient()};
+ return new Boolean[]{disguise.getWatcher() instanceof LivingWatcher ?
+ ((LivingWatcher) disguise.getWatcher()).isPotionParticlesAmbient() : null};
}
@Override
@@ -76,9 +72,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof LivingWatcher) watcher = (LivingWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setPotionParticlesAmbient(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseSpinning.java b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseSpinning.java
index 7783033..251448c 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseSpinning.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/living/expressions/ExprDisguiseSpinning.java
@@ -34,12 +34,8 @@ public class ExprDisguiseSpinning extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isSpinning()};
+ return new Boolean[]{disguise.getWatcher() instanceof LivingWatcher ?
+ ((LivingWatcher) disguise.getWatcher()).isSpinning() : null};
}
@Override
@@ -76,9 +72,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
LivingWatcher watcher;
- try {
- watcher = (LivingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof LivingWatcher) watcher = (LivingWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setSpinning(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/painting/expressions/ExprDisguiseArt.java b/src/main/java/me/tud/diskuise/elements/watchers/painting/expressions/ExprDisguiseArt.java
index fdc4ce0..291c304 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/painting/expressions/ExprDisguiseArt.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/painting/expressions/ExprDisguiseArt.java
@@ -35,11 +35,8 @@ public class ExprDisguiseArt extends SimpleExpression {
protected Art[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PaintingWatcher watcher;
- try {
- watcher = (PaintingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- return new Art[]{watcher.getArt()};
+ return new Art[]{disguise.getWatcher() instanceof PaintingWatcher ?
+ ((PaintingWatcher) disguise.getWatcher()).getArt() : null};
}
@Override
@@ -77,9 +74,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PaintingWatcher watcher;
- try {
- watcher = (PaintingWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PaintingWatcher) watcher = (PaintingWatcher) disguise.getWatcher();
+ else return;
watcher.setArt((Art) delta[0]);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondHasShoulderParrot.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondHasShoulderParrot.java
index f76543c..5663625 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondHasShoulderParrot.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondHasShoulderParrot.java
@@ -7,6 +7,7 @@
import ch.njol.skript.lang.SkriptParser;
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.ArrowWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.PlayerWatcher;
import org.bukkit.event.Event;
import org.jetbrains.annotations.Nullable;
@@ -32,12 +33,10 @@ public class CondHasShoulderParrot extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- if (isRight) return watcher.isRightShoulderHasParrot() != isNegated();
- else return watcher.isLeftShoulderHasParrot() != isNegated();
+ if (isRight) return disguise.getWatcher() instanceof PlayerWatcher &&
+ ((PlayerWatcher) disguise.getWatcher()).isRightShoulderHasParrot() != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ ((PlayerWatcher) disguise.getWatcher()).isLeftShoulderHasParrot() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsCapeEnabled.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsCapeEnabled.java
index 4cacbec..f0a7ee5 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsCapeEnabled.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsCapeEnabled.java
@@ -31,11 +31,8 @@ public class CondIsCapeEnabled extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isCapeEnabled() != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ ((PlayerWatcher) disguise.getWatcher()).isCapeEnabled() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsDisplayedInTab.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsDisplayedInTab.java
index 0b02fd1..36a41f7 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsDisplayedInTab.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsDisplayedInTab.java
@@ -30,11 +30,8 @@ public class CondIsDisplayedInTab extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isDisplayedInTab() != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ ((PlayerWatcher) disguise.getWatcher()).isDisplayedInTab() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsHatEnabled.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsHatEnabled.java
index 7ad7eab..477e523 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsHatEnabled.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsHatEnabled.java
@@ -31,11 +31,8 @@ public class CondIsHatEnabled extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isHatEnabled() != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ ((PlayerWatcher) disguise.getWatcher()).isHatEnabled() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsJacketEnabled.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsJacketEnabled.java
index af7f046..7cdc7c5 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsJacketEnabled.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsJacketEnabled.java
@@ -31,11 +31,8 @@ public class CondIsJacketEnabled extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isJacketEnabled() != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ ((PlayerWatcher) disguise.getWatcher()).isJacketEnabled() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftHanded.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftHanded.java
index 24fedef..b93a74c 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftHanded.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftHanded.java
@@ -31,11 +31,8 @@ public class CondIsLeftHanded extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return (watcher.getMainHand() == MainHand.LEFT) != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ (((PlayerWatcher) disguise.getWatcher()).getMainHand() == MainHand.LEFT) != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftPantsEnabled.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftPantsEnabled.java
index 7045bcb..e48e211 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftPantsEnabled.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftPantsEnabled.java
@@ -31,11 +31,8 @@ public class CondIsLeftPantsEnabled extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isLeftPantsEnabled() != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ ((PlayerWatcher) disguise.getWatcher()).isLeftPantsEnabled() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftSleeveEnabled.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftSleeveEnabled.java
index b3e88b5..9b39ab9 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftSleeveEnabled.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsLeftSleeveEnabled.java
@@ -31,11 +31,8 @@ public class CondIsLeftSleeveEnabled extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isLeftSleeveEnabled() != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ ((PlayerWatcher) disguise.getWatcher()).isLeftSleeveEnabled() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsPlayerNameVisible.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsPlayerNameVisible.java
index 59203de..0f9a6a8 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsPlayerNameVisible.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsPlayerNameVisible.java
@@ -30,11 +30,8 @@ public class CondIsPlayerNameVisible extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isNameVisible() != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ ((PlayerWatcher) disguise.getWatcher()).isNameVisible() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightHanded.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightHanded.java
index 2ae55a9..ed92d4b 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightHanded.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightHanded.java
@@ -31,11 +31,8 @@ public class CondIsRightHanded extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return (watcher.getMainHand() == MainHand.RIGHT) != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ (((PlayerWatcher) disguise.getWatcher()).getMainHand() == MainHand.RIGHT) != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightPantsEnabled.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightPantsEnabled.java
index a4c15b0..9465209 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightPantsEnabled.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightPantsEnabled.java
@@ -31,11 +31,8 @@ public class CondIsRightPantsEnabled extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isRightPantsEnabled() != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ ((PlayerWatcher) disguise.getWatcher()).isRightPantsEnabled() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightSleeveEnabled.java b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightSleeveEnabled.java
index 4541e4c..8c86578 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightSleeveEnabled.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/conditions/CondIsRightSleeveEnabled.java
@@ -31,11 +31,8 @@ public class CondIsRightSleeveEnabled extends Condition {
public boolean check(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return false;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return false; }
- return watcher.isRightSleeveEnabled() != isNegated();
+ return disguise.getWatcher() instanceof PlayerWatcher &&
+ ((PlayerWatcher) disguise.getWatcher()).isRightSleeveEnabled() != isNegated();
}
@Override
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakeDisplayInTab.java b/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakeDisplayInTab.java
index 107be91..55b88f3 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakeDisplayInTab.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakeDisplayInTab.java
@@ -7,6 +7,7 @@
import ch.njol.skript.lang.SkriptParser;
import ch.njol.util.Kleenean;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.PaintingWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.PlayerWatcher;
import me.tud.diskuise.utils.DisguiseUtil;
import org.bukkit.event.Event;
@@ -32,9 +33,8 @@ protected void execute(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
watcher.setDisplayedInTab(bool);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakePlayerNameVisible.java b/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakePlayerNameVisible.java
index 33e0c73..76db2fb 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakePlayerNameVisible.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakePlayerNameVisible.java
@@ -32,9 +32,8 @@ protected void execute(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
watcher.setNameVisible(bool);
DisguiseUtil.update(disguise);
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakePreferredHand.java b/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakePreferredHand.java
index 0d5b67d..14554fb 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakePreferredHand.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseMakePreferredHand.java
@@ -33,9 +33,8 @@ protected void execute(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
if (isRightHanded) watcher.setMainHand(MainHand.RIGHT);
else watcher.setMainHand(MainHand.LEFT);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseSetSkin.java b/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseSetSkin.java
index 72c4088..d75c521 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseSetSkin.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/effects/EffDisguiseSetSkin.java
@@ -34,13 +34,10 @@ protected void execute(Event e) {
Object object = this.object.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
String skin;
- if (object instanceof OfflinePlayer) {
- skin = ((OfflinePlayer) object).getName();
- }
+ if (object instanceof OfflinePlayer) skin = ((OfflinePlayer) object).getName();
else skin = (String) object;
watcher.setSkin(skin);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseCape.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseCape.java
index 21593e8..5447130 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseCape.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseCape.java
@@ -10,6 +10,7 @@
import ch.njol.util.Kleenean;
import ch.njol.util.coll.CollectionUtils;
import me.libraryaddict.disguise.disguisetypes.Disguise;
+import me.libraryaddict.disguise.disguisetypes.watchers.LivingWatcher;
import me.libraryaddict.disguise.disguisetypes.watchers.PlayerWatcher;
import me.tud.diskuise.utils.DisguiseUtil;
import org.bukkit.event.Event;
@@ -34,12 +35,8 @@ public class ExprDisguiseCape extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isCapeEnabled()};
+ return new Boolean[]{disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).isCapeEnabled() : null};
}
@Override
@@ -76,9 +73,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setCapeEnabled(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseDisplayedInTab.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseDisplayedInTab.java
index f0f8cbe..ffee8b4 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseDisplayedInTab.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseDisplayedInTab.java
@@ -36,12 +36,8 @@ public class ExprDisguiseDisplayedInTab extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isDisplayedInTab()};
+ return new Boolean[]{disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).isDisplayedInTab() : null};
}
@Override
@@ -78,9 +74,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setDisplayedInTab(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseHat.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseHat.java
index d7e49b8..1b2691c 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseHat.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseHat.java
@@ -34,12 +34,8 @@ public class ExprDisguiseHat extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isHatEnabled()};
+ return new Boolean[]{disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).isHatEnabled() : null};
}
@Override
@@ -76,9 +72,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setHatEnabled(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseJacket.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseJacket.java
index eea1417..fbe817f 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseJacket.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseJacket.java
@@ -34,12 +34,8 @@ public class ExprDisguiseJacket extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isJacketEnabled()};
+ return new Boolean[]{disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).isJacketEnabled() : null};
}
@Override
@@ -76,9 +72,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setJacketEnabled(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseLeftPants.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseLeftPants.java
index 8df24ac..84e7242 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseLeftPants.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseLeftPants.java
@@ -34,12 +34,8 @@ public class ExprDisguiseLeftPants extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isLeftPantsEnabled()};
+ return new Boolean[]{disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).isLeftPantsEnabled() : null};
}
@Override
@@ -76,9 +72,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setLeftPantsEnabled(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseLeftSleeve.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseLeftSleeve.java
index 47286c6..c27b8e9 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseLeftSleeve.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseLeftSleeve.java
@@ -34,12 +34,8 @@ public class ExprDisguiseLeftSleeve extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isLeftSleeveEnabled()};
+ return new Boolean[]{disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).isLeftSleeveEnabled() : null};
}
@Override
@@ -76,9 +72,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setLeftSleeveEnabled(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseParrotVariant.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseParrotVariant.java
index deb286e..d5c9842 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseParrotVariant.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseParrotVariant.java
@@ -40,10 +40,8 @@ protected SkriptColor[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return null;
if (isRight && !watcher.isRightShoulderHasParrot() ||
!isRight && !watcher.isLeftShoulderHasParrot()) return null;
Parrot.Variant variant = (isRight ? watcher.getRightShoulderParrot() : watcher.getLeftShoulderParrot());
@@ -93,9 +91,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
assert delta[0] != null;
ChatColor color = ((SkriptColor) delta[0]).asChatColor();
Parrot.Variant variant = null;
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguisePlayerNameVisible.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguisePlayerNameVisible.java
index 312467e..e305ded 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguisePlayerNameVisible.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguisePlayerNameVisible.java
@@ -34,12 +34,8 @@ public class ExprDisguisePlayerNameVisible extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isNameVisible()};
+ return new Boolean[]{disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).isNameVisible() : null};
}
@Override
@@ -76,9 +72,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setNameVisible(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguisePreferredHand.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguisePreferredHand.java
index 918b9dc..a1b6278 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguisePreferredHand.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguisePreferredHand.java
@@ -31,12 +31,8 @@ public class ExprDisguisePreferredHand extends SimpleExpression {
protected String[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- String preferredHand = watcher.getMainHand().name().toLowerCase();
+ String preferredHand = disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).getMainHand().name().toLowerCase() : null;
return new String[]{preferredHand};
}
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseRightPants.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseRightPants.java
index fcc1b48..734d3b5 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseRightPants.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseRightPants.java
@@ -34,12 +34,8 @@ public class ExprDisguiseRightPants extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isRightPantsEnabled()};
+ return new Boolean[]{disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).isRightPantsEnabled() : null};
}
@Override
@@ -76,9 +72,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setRightPantsEnabled(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseRightSleeve.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseRightSleeve.java
index eee3a16..498e69f 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseRightSleeve.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseRightSleeve.java
@@ -34,12 +34,8 @@ public class ExprDisguiseRightSleeve extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- return new Boolean[]{watcher.isRightSleeveEnabled()};
+ return new Boolean[]{disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).isRightSleeveEnabled() : null};
}
@Override
@@ -76,9 +72,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
watcher.setRightSleeveEnabled(bool);
DisguiseUtil.update(disguise);
diff --git a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseShoulderHasParrot.java b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseShoulderHasParrot.java
index 0e59e40..dc38527 100644
--- a/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseShoulderHasParrot.java
+++ b/src/main/java/me/tud/diskuise/elements/watchers/player/expressions/ExprDisguiseShoulderHasParrot.java
@@ -35,13 +35,10 @@ public class ExprDisguiseShoulderHasParrot extends SimpleExpression {
protected Boolean[] get(Event e) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return null;
- PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return null; }
- if (watcher == null) return null;
- if (isRight) return new Boolean[]{watcher.isRightShoulderHasParrot()};
- return new Boolean[]{watcher.isLeftShoulderHasParrot()};
+ if (isRight) return new Boolean[]{disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).isRightShoulderHasParrot() : null};
+ return new Boolean[]{disguise.getWatcher() instanceof PlayerWatcher ?
+ ((PlayerWatcher) disguise.getWatcher()).isLeftShoulderHasParrot() : null};
}
@Override
@@ -79,9 +76,8 @@ public void change(Event e, @Nullable Object[] delta, Changer.ChangeMode mode) {
Disguise disguise = this.disguise.getSingle(e);
if (disguise == null) return;
PlayerWatcher watcher;
- try {
- watcher = (PlayerWatcher) disguise.getWatcher();
- } catch (ClassCastException ignore) { return; }
+ if (disguise.getWatcher() instanceof PlayerWatcher) watcher = (PlayerWatcher) disguise.getWatcher();
+ else return;
boolean bool = Boolean.TRUE.equals(delta[0]);
if (isRight) watcher.setRightShoulderHasParrot(bool);
else watcher.setLeftShoulderHasParrot(bool);