package tv.mineinthebox.essentials.events.signs; import org.bukkit.ChatColor; import org.bukkit.Material; 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 org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.SkullMeta; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.enums.PermissionKey; import tv.mineinthebox.essentials.interfaces.EventTemplate; public class GetYourHeadSignEvent extends EventTemplate implements Listener { public GetYourHeadSignEvent(xEssentials pl) { super(pl, "GetYourHeadSign"); } @EventHandler public void head(SignChangeEvent s) { if(s.getLine(0).equalsIgnoreCase("[GetYourHead]") && s.getPlayer().hasPermission(PermissionKey.SIGN_GETYOURHEAD.getPermission())) { s.setLine(0, ChatColor.GREEN + "[GetYourHead]"); s.getBlock().getState().update(true); sendMessage(s.getPlayer(), ChatColor.GOLD + "[GetYourHead] " + ChatColor.GREEN + "You successfully placed a GetYourHead sign!"); } else { if(s.getLine(0).equalsIgnoreCase("[GetYourHead]") && !s.getPlayer().hasPermission(PermissionKey.SIGN_GETYOURHEAD.getPermission())) { s.getBlock().breakNaturally(); sendMessage(s.getPlayer(), "You are not allowed to place such signs!"); s.setCancelled(true); } } } @EventHandler public void signRightClickhead(PlayerInteractEvent s) { if(s.getAction() == Action.RIGHT_CLICK_BLOCK) { if(s.getClickedBlock().getState().getType() == Material.SIGN || s.getClickedBlock().getState().getType() == Material.SIGN_POST || s.getClickedBlock().getState().getType() == Material.WALL_SIGN) { //log.info("This is a sign..."); Sign sign = (Sign) s.getClickedBlock().getState(); if(sign.getLine(0).contains("[GetYourHead]")) { //log.info("Launching dispatch command...."); ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short)3); SkullMeta skullmeta = (SkullMeta)skull.getItemMeta(); skullmeta.setOwner(s.getPlayer().getName()); skull.setItemMeta(skullmeta); skull.setAmount(1); if(s.getPlayer().getItemInHand().getType() == Material.AIR) { s.getPlayer().getInventory().setItemInHand(skull); sendMessage(s.getPlayer(), ChatColor.GOLD + "[GetYourHead] " + ChatColor.GREEN + "your head has been added in your hand!"); } else { sendMessage(s.getPlayer(), ChatColor.GOLD + "[GetYourHead] " + ChatColor.RED + "your hands need to be empty!"); } s.setCancelled(true); } } } } }