package me.desht.chesscraft.chess.pieces; import me.desht.chesscraft.ChessCraft; import me.desht.dhutils.Debugger; import net.citizensnpcs.api.ai.event.NavigationCompleteEvent; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.trait.Trait; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.util.Vector; public class ChessPieceTrait extends Trait { private EntityChessStone capturingTarget; public ChessPieceTrait() { super("chesspiece"); } // @EventHandler // public void onNPCDeath(EntityDeathEvent event) { // if (event.getEntity().getUniqueId() == getNPC().getBukkitEntity().getUniqueId()) { // System.out.println("we died!"); // } // } @EventHandler public void onNavigationCompleted(NavigationCompleteEvent event) { if (event.getNPC() == getNPC()) { Debugger.getInstance().debug("navigation completed for " + event.getNPC().getFullName() + ", NPC id " + event.getNPC().getId()); if (capturingTarget != null && capturingTarget.getBukkitEntity() != null) { capturingTarget.getBukkitEntity().setVelocity(new Vector(0.0, 1.7, 0.0)); final NPC npc = capturingTarget.getNPC(); Bukkit.getScheduler().runTaskLater(ChessCraft.getInstance(), new Runnable() { @Override public void run() { // npc.despawn(DespawnReason.REMOVAL); npc.destroy(); } }, 20L); capturingTarget = null; } getNPC().getEntity().teleport(getNPC().getNavigator().getTargetAsLocation()); } } public void setCapturingTarget(EntityChessStone captured) { capturingTarget = captured; } }