I can't seem to find the problem here...

Discussion in 'Plugin Development' started by CaptainBern, May 31, 2013.

Thread Status:
Not open for further replies.
  1. Hello all, once again I need some help.
    For my plugin: Backpacks++ I have a listener that check for backpacks and stuff and there is a recipemanager that enables backpack recipes, adds the name to a hashmap but there is a weird "bug", you can't open backpacks, you can only register new ones...And the player gets this message:This <type> is not loaded because it was not defined properly. ......Here is the code, if someone sees the problem, (really I can't find it)

    Code:
    package me.captainbern.backpack.listeners;
     
    import java.util.HashMap;
     
    import me.captainbern.backpack.Main;
    import me.captainbern.backpack.command.commands.SeeCommand;
    import me.captainbern.backpack.pluginutils.BPEnchantment;
    import me.captainbern.backpack.pluginutils.exceptions.Logger;
    import me.captainbern.backpack.utils.BackPackUtils;
    import me.captainbern.backpack.utils.WorldUtils;
    import me.captainbern.backpack.utils.recipeutils.RecipeManager;
     
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    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.inventory.InventoryCloseEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.InventoryHolder;
    import org.bukkit.inventory.ItemStack;
     
    public class BPListener implements Listener {
     
        public static HashMap<String, Integer> openbackpacks = new HashMap<String, Integer>();
     
        @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
        public void onPlayerInteract(PlayerInteractEvent event){
            if(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK){
                Player player = event.getPlayer();
                ItemStack item = event.getItem();
                // This will check for a custom enchantment but that doesn't matter...
                try{
                    if(item.containsEnchantment(BPEnchantment.BackPack)){
                        item.removeEnchantment(BPEnchantment.BackPack);
                        item.addEnchantment(Main.ench, 1);
                    }
                }catch(Exception e){
     
                }
                //
                if (item == null || !BackPackUtils.isBackPack(item))
                    return;
     
                Block block = event.getClickedBlock();
                if (block != null && !player.isSneaking()) {
                    if ((block.getState() instanceof InventoryHolder) || block.getType().equals(Material.WORKBENCH) || block.getType().equals(Material.TRAP_DOOR)
                            || block.getType().equals(Material.WOODEN_DOOR) || block.getType().equals(Material.LEVER)
                            || block.getType().equals(Material.STONE_BUTTON) || block.getType().equals(Material.WOOD_BUTTON)
                            || block.getType().equals(Material.REDSTONE_COMPARATOR_ON) || block.getType().equals(Material.REDSTONE_COMPARATOR_OFF)
                            || block.getType().equals(Material.DIODE_BLOCK_ON) || block.getType().equals(Material.DIODE_BLOCK_OFF)){
                        return;
                    }
                }
                event.setCancelled(true);
                if(player.hasPermission("backpacks.use")){
                    if(Main.config.getBoolean("multiworld.enabled")){
                        if(WorldUtils.isValidWorld(player.getWorld())){
                            if(item.getItemMeta().getDisplayName().contains("'s ")){
                                String type = (item.getItemMeta().getDisplayName().split("'s ")[1].replaceAll("§r", ""));
                                String[] owner = item.getItemMeta().getDisplayName().split("'s");
                                if(RecipeManager.isEnabled(type)){
                                    if(RecipeManager.isPlayerBound(type)){
                                        if(player.getName().equals(owner[0].replaceAll("§r", ""))){
                                            BackPackUtils.openPack(player, item, owner[0].replaceAll("§r", ""), type);
                                        }else{
                                            player.sendMessage("Seems like that " + type + " is not owned by you...");
                                            Logger.log(player.getName() + " tried to take a look at " + owner[0].replaceAll("§r", "") + "'s " + type);
                                        }
                                    }else{
                                        BackPackUtils.openPack(player, item, owner[0].replaceAll("§r", ""), type);
                                    }
                                }else{
                                    player.sendMessage("This " + type + " is not loaded because it was not defined properly.");
                                }
                            }else{
                                String type = item.getItemMeta().getDisplayName();
                                String owner = event.getPlayer().getName();
                                if(RecipeManager.isEnabled(type.replaceAll("§r", ""))){
                                    BackPackUtils.openPack(player, item, owner, type);
                                }else{
                                    player.sendMessage("This " + type + " is not loaded because it was not defined properly.");
                                }
                            }
                        }else{
                            player.sendMessage("BackPacks are not allowed in this world!");
                        }
                    }else{
                        if(item.getItemMeta().getDisplayName().contains("'s ")){
                            String type = (item.getItemMeta().getDisplayName().split("'s ")[1].replaceAll("§r", ""));
                            String[] owner = item.getItemMeta().getDisplayName().split("'s");
                            if(RecipeManager.isEnabled(type)){
                                if(RecipeManager.isPlayerBound(type)){
                                    if(player.getName().equals(owner[0].replaceAll("§r", ""))){
                                        BackPackUtils.openPack(player, item, owner[0].replaceAll("§r", ""), type);
                                    }else{
                                        BackPackUtils.openPack(player, item, owner[0].replaceAll("§r", ""), type);
                                    }
                                }else{
                                    BackPackUtils.openPack(player, item, owner[0].replaceAll("§r", ""), type);
                                }
                            }else{
                                player.sendMessage("This " + type + " is not loaded because it was not defined properly.");
                            }
                        }else{
                            String type = item.getItemMeta().getDisplayName();
                            String owner = event.getPlayer().getName();
                            if(RecipeManager.isEnabled(type)){
                                BackPackUtils.openPack(player, item, owner, type);
                            }else{
                                player.sendMessage("This " + type + " is not loaded because it was not defined properly.");
                            }
                        }
                    }
                }else{
                    player.sendMessage(ChatColor.RED + "You don't have the permission to use backpacks!");
                }
            }
        }
    Humptey bumptey dumptey bumptey

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 1, 2016
Thread Status:
Not open for further replies.

Share This Page