package com.nisovin.magicspells.castmodifiers.conditions; import org.bukkit.Location; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import com.nisovin.magicspells.castmodifiers.Condition; import com.nisovin.magicspells.util.Util; public class PotionEffectCondition extends Condition { PotionEffectType effectType; int value; @Override public boolean setVar(String var) { if (var.contains(":")) { String[] s = var.split(":"); effectType = Util.getPotionEffectType(s[0]); try { value = Integer.parseInt(s[1]); } catch (Exception e) { return false; } } else { effectType = Util.getPotionEffectType(var); value = -1; } return effectType != null; } @Override public boolean check(Player player) { return check(null, player); } @Override public boolean check(Player player, LivingEntity target) { boolean has = target.hasPotionEffect(effectType); if (value == -1) { return has; } else if (has) { for (PotionEffect effect : target.getActivePotionEffects()) { if (effect.getType() == effectType) { return effect.getAmplifier() == value; } } } return false; } @Override public boolean check(Player player, Location location) { return false; } }