package tv.mineinthebox.essentials.events.players; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.material.Sign; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.hook.Hooks; import tv.mineinthebox.essentials.hook.LWCHook; import tv.mineinthebox.essentials.instances.ProtectedBlock; import tv.mineinthebox.essentials.interfaces.EventTemplate; import tv.mineinthebox.essentials.interfaces.XPlayer; public class SignEditEvent extends EventTemplate implements Listener { public SignEditEvent(xEssentials pl) { super(pl, "SignEdit"); } @EventHandler(priority = EventPriority.LOWEST) public void onEditSign(SignChangeEvent e) { Sign sign = (Sign)e.getBlock().getState().getData(); Block other = e.getBlock().getRelative(sign.getFacing().getOppositeFace()); if(other.getType() == Material.WALL_SIGN || other.getType() == Material.SIGN_POST) { org.bukkit.block.Sign signn = (org.bukkit.block.Sign)other.getState(); XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(e.getPlayer().getName()); if(xp.isEditSignEnabled()) { if(pl.getConfiguration().getProtectionConfig().isProtectionEnabled()) { ProtectedBlock pblock = new ProtectedBlock(pl, e.getBlock()); if(pblock.isMember(e.getPlayer().getUniqueId())) { signn.setLine(0, e.getLine(0)); signn.setLine(1, e.getLine(1)); signn.setLine(2, e.getLine(2)); signn.setLine(3, e.getLine(3)); signn.update(true); sendMessage(e.getPlayer(), ChatColor.GREEN + "successfully edited sign."); pblock.removeProtection(e.getPlayer().getUniqueId()); e.getBlock().setType(Material.AIR); Bukkit.getPluginManager().callEvent(new BlockPlaceEvent(signn.getBlock(), signn, signn.getBlock(), new ItemStack(Material.SIGN, 1), e.getPlayer(), true)); } else { e.getBlock().setType(Material.AIR); e.setCancelled(true); sendMessage(e.getPlayer(), ChatColor.RED + "cannot modify sign, this sign does not belongs to you"); } } else if(Hooks.isLWCEnabled()) { if(LWCHook.isOwner(e.getPlayer(), signn.getBlock())) { signn.setLine(0, e.getLine(0)); signn.setLine(1, e.getLine(1)); signn.setLine(2, e.getLine(2)); signn.setLine(3, e.getLine(3)); signn.update(true); sendMessage(e.getPlayer(), ChatColor.GREEN + "successfully edited sign."); LWCHook.removeProtection(e.getBlock()); e.getBlock().setType(Material.AIR); Bukkit.getPluginManager().callEvent(new BlockPlaceEvent(signn.getBlock(), signn, signn.getBlock(), new ItemStack(Material.SIGN, 1), e.getPlayer(), true)); } else { e.getBlock().setType(Material.AIR); e.setCancelled(true); sendMessage(e.getPlayer(), ChatColor.RED + "cannot modify sign, this sign does not belongs to you"); } } } } } }