package com.nisovin.magicspells.spells.buff;
import java.util.HashSet;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityTargetEvent;
import com.nisovin.magicspells.spells.BuffSpell;
import com.nisovin.magicspells.util.MagicConfig;
public class StealthSpell extends BuffSpell {
private HashSet<String> stealthy;
public StealthSpell(MagicConfig config, String spellName) {
super(config, spellName);
stealthy = new HashSet<String>();
}
@Override
public boolean castBuff(Player player, float power, String[] args) {
stealthy.add(player.getName());
return true;
}
@EventHandler
public void onEntityTarget(EntityTargetEvent event) {
if (!event.isCancelled() && stealthy.size() > 0 && event.getTarget() instanceof Player) {
Player player = (Player)event.getTarget();
if (stealthy.contains(player.getName())) {
if (isExpired(player)) {
turnOff(player);
} else {
addUse(player);
boolean ok = chargeUseCost(player);
if (ok) {
event.setCancelled(true);
}
}
}
}
}
@Override
public void turnOffBuff(Player player) {
stealthy.remove(player.getName());
}
@Override
protected void turnOff() {
stealthy.clear();
}
@Override
public boolean isActive(Player player) {
return stealthy.contains(player.getName());
}
}