package tv.mineinthebox.essentials.events.signs;
import org.bukkit.ChatColor;
import org.bukkit.block.Sign;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import tv.mineinthebox.essentials.xEssentials;
import tv.mineinthebox.essentials.enums.PermissionKey;
import tv.mineinthebox.essentials.interfaces.EventTemplate;
public class WarpSignEvent extends EventTemplate implements Listener {
public WarpSignEvent(xEssentials pl) {
super(pl, "WarpSign");
}
@EventHandler
public void onCreateSign(SignChangeEvent e) {
if(e.getLine(0).equalsIgnoreCase("[warp]")) {
if(e.getPlayer().hasPermission(PermissionKey.SIGN_WARP_SIGN.getPermission())) {
if(pl.getManagers().getWarpManager().isWarp(e.getLine(1))) {
e.setLine(0, ChatColor.BLUE + "[warp]");
sendMessage(e.getPlayer(), ChatColor.GREEN + "you have successfully created a warp sign!");
} else {
e.getBlock().breakNaturally();
sendMessage(e.getPlayer(), ChatColor.RED + "invalid warp!");
}
} else {
e.getBlock().breakNaturally();
sendMessage(e.getPlayer(), ChatColor.RED + "you are not allowed to create this kind of signs!");
}
}
}
@EventHandler
public void onInteract(PlayerInteractEvent e) {
if(e.getAction() == Action.RIGHT_CLICK_BLOCK) {
if(e.getClickedBlock().getState() instanceof Sign) {
Sign sign = (Sign) e.getClickedBlock().getState();
if(sign.getLine(0).equalsIgnoreCase(ChatColor.BLUE + "[warp]")) {
if(pl.getManagers().getWarpManager().isWarp(sign.getLine(1))) {
e.getPlayer().performCommand("warp " + sign.getLine(1));
}
e.setCancelled(true);
}
}
}
}
}