I do not understand why but this code is making me not able to build I deleted section -> reloaded server -> and it would let me build but not break: Code: public static Inventory getCompassInv() { Inventory inv = Bukkit.createInventory(null, 9, ChatColor.GOLD + "Game Selector"); ItemStack hub = new ItemStack(Material.COMMAND); ItemMeta hmeta = hub.getItemMeta(); hmeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Hub"); hmeta.setLore(Arrays.asList(ChatColor.DARK_PURPLE + "Click to Connect")); hub.setItemMeta(hmeta); inv.setItem(0, hub); ItemStack fac = new ItemStack(Material.GOLD_SWORD); ItemMeta fmeta = fac.getItemMeta(); fmeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Factions"); fmeta.setLore(Arrays.asList(ChatColor.DARK_PURPLE + "Click to Connect")); fac.setItemMeta(fmeta); inv.setItem(1, fac); ItemStack prison = new ItemStack(Material.IRON_FENCE); ItemMeta pmeta = prison.getItemMeta(); pmeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Prison"); pmeta.setLore(Arrays.asList(ChatColor.DARK_PURPLE + "Click to Connect")); prison.setItemMeta(pmeta); inv.setItem(2, prison); return inv; } This is my full class something in this won't allow me to break blocks: Code: package me.webbhead.hub; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Random; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Color; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerToggleFlightEvent; import org.bukkit.event.server.ServerListPingEvent; import org.bukkit.event.weather.WeatherChangeEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.LeatherArmorMeta; import org.bukkit.plugin.java.JavaPlugin; public class Hub extends JavaPlugin implements Listener { //TRY AND FIX WIERD BUILD DISSALOW ArrayList<Player> armor = new ArrayList<Player>(); ArrayList<Player> paintgun = new ArrayList<Player>(); ItemStack[] armorremove = {new ItemStack(Material.AIR),new ItemStack(Material.AIR),new ItemStack(Material.AIR),new ItemStack(Material.AIR) }; //Variables String noperms = ChatColor.GOLD + "Permission > " + ChatColor.GRAY + "You do not have access to this command."; String listmotd = getConfig().getString("listmotd"); // Bungee Send Server public static void sendServer(Player player, String server) { ByteArrayOutputStream b = new ByteArrayOutputStream(); DataOutputStream d = new DataOutputStream(b); try { d.writeUTF("Connect"); d.writeUTF(server); } catch (Exception e) { e.printStackTrace(); } } //General Events @EventHandler public void onPlayerQuit(PlayerQuitEvent e) { Player player = e.getPlayer(); player.getInventory().setArmorContents(armorremove); } @EventHandler (priority = EventPriority.HIGHEST) public void onPing(ServerListPingEvent e) { listmotd = getConfig().getString("listmotd").replace('&', 'ยง'); e.setMotd(listmotd); } @EventHandler public void onClick(InventoryClickEvent e) { Player player = (Player) e.getWhoClicked(); if (player.isOp()) { return; } e.setCancelled(true); } @EventHandler public void onItemDrop(PlayerDropItemEvent event) { Player player = event.getPlayer(); if (player.isOp()) { return; } event.setCancelled(true); } @EventHandler public void onFoodChange(FoodLevelChangeEvent event) { event.setCancelled(true); } @EventHandler public void onPlayerDamage(EntityDamageEvent event) { Entity entity = event.getEntity(); if (entity instanceof Player) { event.setCancelled(true); } } @EventHandler public void onMove(PlayerMoveEvent event) { Player player = event.getPlayer(); if (getConfig().getConfigurationSection("spawn") == null) return; World world = Bukkit.getServer().getWorld(getConfig().getString("spawn.world")); double x = getConfig().getDouble("spawn.x"); double y = getConfig().getDouble("spawn.y"); double z = getConfig().getDouble("spawn.z"); if (player.getLocation().getY() < -35.0) { player.setHealth(20.0); player.teleport(new Location(world, x, y, z, (float)getConfig().getDouble("spawn.yaw"), (float)getConfig().getDouble("spawn.pitch"))); } } @EventHandler public void onWeatherChange(WeatherChangeEvent event) { event.setCancelled(true); } @EventHandler public void onPlayerRespawn(PlayerRespawnEvent event) { Player player = event.getPlayer(); if (getConfig().getConfigurationSection("spawn") == null) return; World world = Bukkit.getServer().getWorld(getConfig().getString("spawn.world")); double x = getConfig().getDouble("spawn.x"); double y = getConfig().getDouble("spawn.y"); double z = getConfig().getDouble("spawn.z"); player.teleport(new Location(world, x, y, z, (float)getConfig().getDouble("spawn.yaw"), (float)getConfig().getDouble("spawn.pitch"))); } @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { ItemStack compass = new ItemStack(Material.COMPASS); ItemMeta cmeta = compass.getItemMeta(); cmeta.setDisplayName(ChatColor.WHITE + "" + ChatColor.BOLD + "Game Selector"); compass.setItemMeta(cmeta); // ItemStack gadget = new ItemStack(Material.ENDER_CHEST); ItemMeta gmeta = gadget.getItemMeta(); gmeta.setDisplayName(ChatColor.DARK_PURPLE + "" + ChatColor.BOLD + "Gadgets"); gadget.setItemMeta(gmeta); // Player player = event.getPlayer(); player.getInventory().clear(); player.setAllowFlight(false); player.getInventory().setItem(0, compass); player.getInventory().setItem(4, gadget); if (player.getName().equals("webbhead")) { Bukkit.getServer().broadcastMessage(ChatColor.RED + "" + ChatColor.BOLD + "webbhead" + ChatColor.GRAY + " the developer has joined the game!"); } if (getConfig().getConfigurationSection("spawn") == null) return; World world = Bukkit.getServer().getWorld(getConfig().getString("spawn.world")); double x = getConfig().getDouble("spawn.x"); double y = getConfig().getDouble("spawn.y"); double z = getConfig().getDouble("spawn.z"); player.teleport(new Location(world, x, y, z, (float)getConfig().getDouble("spawn.yaw"), (float)getConfig().getDouble("spawn.pitch"))); } // ON ENABLE ON ENABLE ON ENABLE ON ENABLE ON ENABLE ON ENABLE ON ENABLE ON ENABLE ON ENABLE public void onEnable() { getConfig().options().copyDefaults(true); Bukkit.getServer().getPluginManager().registerEvents(this, this); Bukkit.getServer().getPluginManager().registerEvents(new CompassInteract(), this); Bukkit.getServer().getPluginManager().registerEvents(new CompassClick(), this); Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); } public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { Player player = (Player) sender; if (!(sender instanceof Player)) { sender.sendMessage("Only players can use the hub commands."); return true; } // Spawn Commands if (cmd.getName().equalsIgnoreCase("setspawn")) { if (!player.hasPermission("hub.setspawn")) { player.sendMessage(noperms); return true; } getConfig().set("spawn.world", player.getLocation().getWorld().getName()); getConfig().set("spawn.x", player.getLocation().getX()); getConfig().set("spawn.y", player.getLocation().getY()); getConfig().set("spawn.z", player.getLocation().getZ()); getConfig().set("spawn.pitch", player.getLocation().getPitch()); getConfig().set("spawn.yaw", player.getLocation().getYaw()); saveConfig(); player.sendMessage(ChatColor.GOLD + "Success" + ChatColor.GOLD + " > " + ChatColor.GRAY + "Spawn has been set!"); } if (cmd.getName().equalsIgnoreCase("spawn")) { if (getConfig().getConfigurationSection("spawn") == null) { player.sendMessage(ChatColor.GOLD + "Error > " + ChatColor.GRAY + "Spawn has not yet been set."); return true; } World world = Bukkit.getServer().getWorld(getConfig().getString("spawn.world")); double x = getConfig().getDouble("spawn.x"); double y = getConfig().getDouble("spawn.y"); double z = getConfig().getDouble("spawn.z"); player.teleport(new Location(world, x, y, z, (float)getConfig().getDouble("spawn.yaw"), (float)getConfig().getDouble("spawn.pitch"))); player.sendMessage(ChatColor.GOLD + "Teleport > " + ChatColor.GRAY + "You have been teleported to the spawn."); } if (cmd.getName().equalsIgnoreCase("kill")) { if (!player.hasPermission("hub.kill")) { player.sendMessage(noperms); return true; } if (args.length == 0) { player.setHealth(0.0); player.sendMessage(ChatColor.GOLD + "Kill > " + ChatColor.GRAY + "You have successfully killed yourself."); return true; } Player target = Bukkit.getServer().getPlayer(args[0]); if (target == null) { player.sendMessage(ChatColor.GOLD + "Kill > " + ChatColor.GRAY + "The player " + ChatColor.RED + args[0] + ChatColor.GRAY + " is not online."); return true; } target.setHealth(0.0); player.sendMessage(ChatColor.GOLD + "Kill > " + ChatColor.GRAY + "You have successfully killed " + ChatColor.RED + args[0] + ChatColor.GRAY + "."); target.sendMessage(ChatColor.GOLD + "Kill > " + ChatColor.GRAY + "You have been killed."); } if (cmd.getName().equalsIgnoreCase("teleport")) { if (!player.hasPermission("hub.tp")) { player.sendMessage(noperms); return true; } if (args.length == 0) { player.sendMessage(ChatColor.GOLD + "Error > " + ChatColor.GRAY + "Usage: /teleport <player> [player]"); return true; } Player target = Bukkit.getServer().getPlayer(args[0]); if (target == null) { player.sendMessage(ChatColor.GOLD + "Error > " + ChatColor.GRAY + "Player " + ChatColor.RED + args[0] + ChatColor.GRAY + " not found."); } if (args.length == 1) { player.teleport(target); player.sendMessage(ChatColor.GOLD + "Teleport > " + ChatColor.GRAY + "You have been teleported to " + ChatColor.RED + target.getName() + ChatColor.GRAY + "."); return true; } Player target1 = Bukkit.getServer().getPlayer(args[1]); if (target1 == null) { player.sendMessage(ChatColor.GOLD + "Error > " + ChatColor.GRAY + "Player " + ChatColor.RED + args[1] + ChatColor.GRAY + " not found."); return true; } if (args.length == 2) { target.teleport(target1); player.sendMessage(ChatColor.GOLD + "Teleport > " + ChatColor.GRAY + "You have teleported " + ChatColor.RED + target.getName() + ChatColor.GRAY + " to " + ChatColor.RED + target1.getName() + ChatColor.GRAY + "."); } } return true; } // Double Jump @EventHandler public void onPlayerMove(PlayerMoveEvent event) { Player player = event.getPlayer(); if ((player.getGameMode() != GameMode.CREATIVE) && (player.getLocation().subtract(0,1,0).getBlock().getType() != Material.AIR) && (!player.isFlying())) { player.setAllowFlight(true); } } @EventHandler public void onPlayerToggleFlight(PlayerToggleFlightEvent event) { Player player = event.getPlayer(); if (player.getGameMode() != GameMode.CREATIVE) { event.setCancelled(true); player.setAllowFlight(false); player.setFlying(false); player.setVelocity(player.getLocation().getDirection().multiply(1.3)); } } // GADGETS BELOW GADGETS BELOW GADGETS BELOW GADGETS BELOW @EventHandler public void onClickG(InventoryClickEvent e) { HumanEntity entity = (Player) e.getWhoClicked(); if (entity instanceof Player) { final Player player = (Player) entity; if (e.getInventory().getName().equals(getGadgetInv().getName()) && e.getCurrentItem() != null && e.getCurrentItem().getType() == Material.LEATHER_CHESTPLATE) { e.setCancelled(true); if (armor.contains(player)) { armor.remove(player); player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "You have disabled Disco Armor."); player.getInventory().setHelmet(new ItemStack(Material.AIR)); player.getInventory().setChestplate(new ItemStack(Material.AIR)); player.getInventory().setLeggings(new ItemStack(Material.AIR)); player.getInventory().setBoots(new ItemStack(Material.AIR)); player.closeInventory(); } else if (!armor.contains(player)) { armor.add(player); player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "You have enabled Disco Armor."); player.getInventory().setHelmet(new ItemStack(Material.LEATHER_HELMET)); player.getInventory().setChestplate(new ItemStack(Material.LEATHER_CHESTPLATE)); player.getInventory().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS)); player.getInventory().setBoots(new ItemStack(Material.LEATHER_BOOTS)); player.closeInventory(); Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() { Random random = new Random(); public void run() { Color c = Color.fromRGB(random.nextInt(255), random.nextInt(255), random.nextInt(255)); if (armor.contains(player)) { if (player.getInventory().getHelmet() != null && player.getInventory().getHelmet().getType().equals(Material.LEATHER_HELMET)) { player.getInventory().setHelmet(getColoredArmor(Material.LEATHER_HELMET, c)); } if (player.getInventory().getChestplate() != null && player.getInventory().getChestplate().getType().equals(Material.LEATHER_CHESTPLATE)) { player.getInventory().setChestplate(getColoredArmor(Material.LEATHER_CHESTPLATE, c)); } if (player.getInventory().getLeggings() != null && player.getInventory().getLeggings().getType().equals(Material.LEATHER_LEGGINGS)) { player.getInventory().setLeggings(getColoredArmor(Material.LEATHER_LEGGINGS, c)); } if (player.getInventory().getBoots() != null && player.getInventory().getBoots().getType().equals(Material.LEATHER_BOOTS)) { player.getInventory().setBoots(getColoredArmor(Material.LEATHER_BOOTS, c)); } } } }, 0L, 3L); } // PAINTBALL GUN } } } @EventHandler public void onInteractPaint(PlayerInteractEvent e) { Player player = e.getPlayer(); ItemStack gun = new ItemStack(Material.IRON_BARDING); ItemStack hand = player.getItemInHand(); Action a = e.getAction(); e.setCancelled(true); if (a == Action.RIGHT_CLICK_AIR || a == Action.RIGHT_CLICK_BLOCK) { if (hand != null && hand.getType() == Material.IRON_BARDING && hand.getItemMeta().getDisplayName().equals(ChatColor.GOLD + "" + ChatColor.BOLD + "Paintball Gun")) { return; // Make gun shoot } else { e.setCancelled(false); } } } @EventHandler public void onInteractG(PlayerInteractEvent e) { Player player = (Player) e.getPlayer(); ItemStack hand = player.getItemInHand(); Action a = e.getAction(); e.setCancelled(true); if (a == Action.RIGHT_CLICK_AIR || a == Action.RIGHT_CLICK_BLOCK) { if (hand != null && hand.getType() == Material.ENDER_CHEST && hand.getItemMeta().getDisplayName().equals(ChatColor.DARK_PURPLE + "" + ChatColor.BOLD + "Gadgets")) { e.setCancelled(true); player.openInventory(getGadgetInv()); } else { e.setCancelled(false); } } } //Disco Armor private ItemStack getColoredArmor(Material mat, Color c) { ItemStack item = new ItemStack(mat, 1); LeatherArmorMeta meta = (LeatherArmorMeta) item.getItemMeta(); meta.setColor(c); item.setItemMeta(meta); return item; } public static Inventory getGadgetInv() { Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_PURPLE + "Gadgets"); ItemStack disco = new ItemStack(Material.LEATHER_CHESTPLATE); LeatherArmorMeta dmeta = (LeatherArmorMeta) disco.getItemMeta(); dmeta.setColor(Color.RED); dmeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Disco Armor"); dmeta.setLore(Arrays.asList(ChatColor.DARK_PURPLE + "Click to Enable/Disable")); disco.setItemMeta(dmeta); inv.setItem(0, disco); ItemStack pgun = new ItemStack(Material.IRON_BARDING); ItemMeta pgmeta = pgun.getItemMeta(); pgmeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Paintball Gun"); pgmeta.setLore(Arrays.asList(ChatColor.DARK_PURPLE + "Click to Enable/Disable")); pgun.setItemMeta(pgmeta); inv.setItem(1, pgun); return inv; } //Compass GUI public static Inventory getCompassInv() { Inventory inv = Bukkit.createInventory(null, 9, ChatColor.GOLD + "Game Selector"); ItemStack hub = new ItemStack(Material.COMMAND); ItemMeta hmeta = hub.getItemMeta(); hmeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Hub"); hmeta.setLore(Arrays.asList(ChatColor.DARK_PURPLE + "Click to Connect")); hub.setItemMeta(hmeta); inv.setItem(0, hub); ItemStack fac = new ItemStack(Material.GOLD_SWORD); ItemMeta fmeta = fac.getItemMeta(); fmeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Factions"); fmeta.setLore(Arrays.asList(ChatColor.DARK_PURPLE + "Click to Connect")); fac.setItemMeta(fmeta); inv.setItem(1, fac); ItemStack prison = new ItemStack(Material.IRON_FENCE); ItemMeta pmeta = prison.getItemMeta(); pmeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Prison"); pmeta.setLore(Arrays.asList(ChatColor.DARK_PURPLE + "Click to Connect")); prison.setItemMeta(pmeta); inv.setItem(2, prison); return inv; } } This is very odd and if anyone has a fix please tell me! Thanks.
I think the problem is here, see on PlayerInteractEvent if the item in the hand isn't a IRON_BARDING or a ENDER_CHEST the event is cancelled . Code: @EventHandler public void onInteractPaint(PlayerInteractEvent e) { Player player = e.getPlayer(); ItemStack gun = new ItemStack(Material.IRON_BARDING); ItemStack hand = player.getItemInHand(); Action a = e.getAction(); e.setCancelled(true); if (a == Action.RIGHT_CLICK_AIR || a == Action.RIGHT_CLICK_BLOCK) { if (hand != null && hand.getType() == Material.IRON_BARDING && hand.getItemMeta().getDisplayName().equals(ChatColor.GOLD + "" + ChatColor.BOLD + "Paintball Gun")) { return; // Make gun shoot } else { e.setCancelled(false); } } } @EventHandler public void onInteractG(PlayerInteractEvent e) { Player player = (Player) e.getPlayer(); ItemStack hand = player.getItemInHand(); Action a = e.getAction(); e.setCancelled(true); if (a == Action.RIGHT_CLICK_AIR || a == Action.RIGHT_CLICK_BLOCK) { if (hand != null && hand.getType() == Material.ENDER_CHEST && hand.getItemMeta().getDisplayName().equals(ChatColor.DARK_PURPLE + "" + ChatColor.BOLD + "Gadgets")) { e.setCancelled(true); player.openInventory(getGadgetInv()); } else { e.setCancelled(false); } } }