@Override public PostCastAction castSpell(Player player, SpellCastState state, float power, String[] args) { if (state == SpellCastState.NORMAL) { TargetInfo<LivingEntity> target = getTargetedEntity(player, power); if (target == null) { // fail -- no target return noTarget(player); } else { boolean done = causePain(player, target.getTarget(), target.getPower()); if (!done) { return noTarget(player); } else { sendMessages(player, target.getTarget()); return PostCastAction.NO_MESSAGES; } } } return PostCastAction.HANDLE_NORMALLY; }