package com.nisovin.magicspells.castmodifiers.conditions; import org.bukkit.Location; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import com.nisovin.magicspells.castmodifiers.Condition; public class FacingCondition extends Condition { String direction; @Override public boolean setVar(String var) { direction = var; return true; } @Override public boolean check(Player player) { return getDirection(player.getLocation()).equals(direction); } @Override public boolean check(Player player, LivingEntity target) { return getDirection(target.getLocation()).equals(direction); } @Override public boolean check(Player player, Location location) { return getDirection(location).equals(direction); } public String getDirection(Location loc) { float y = loc.getYaw(); if( y < 0 ){y += 360;} y %= 360; if (y <= 45 || y >= 315) { return "south"; } else if (y >= 45 && y <= 135) { return "west"; } else if (y >= 135 && y <= 225) { return "north"; } else { return "east"; } } }