package tv.mineinthebox.essentials.events.players;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.util.Vector;
import tv.mineinthebox.essentials.xEssentials;
import tv.mineinthebox.essentials.interfaces.XPlayer;
public class CompassEvent implements Listener {
private final xEssentials pl;
public CompassEvent(xEssentials pl) {
this.pl = pl;
}
@EventHandler
public void onCompassMove(PlayerInteractEvent e) {
if(e.getAction() == Action.RIGHT_CLICK_BLOCK) {
if(e.getPlayer().getItemInHand().getType() == Material.WATCH) {
XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(e.getPlayer().getName());
if(xp.hasCompass()) {
Player p = xp.getCompass().getBukkitPlayer();
if(p instanceof Player) {
Vector direction = p.getLocation().toVector().subtract(e.getPlayer().getLocation().toVector()).normalize().multiply(2);
e.getPlayer().setVelocity(direction);
} else {
Location loc = xp.getCompass().getLocation();
Vector direction = loc.toVector().subtract(e.getPlayer().getLocation().toVector()).normalize().multiply(2);
e.getPlayer().setVelocity(direction);
}
}
}
}
}
}