Very Odd

Discussion in 'Plugin Development' started by webbhead, Jan 7, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    webbhead

    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. :)
     
  2. 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);
              }
         }
      }
    
     
  3. Offline

    webbhead

    I put it to Cancelling it to false :p But thanks anyways! :)
     
  4. Offline

    webbhead

Thread Status:
Not open for further replies.

Share This Page