Event Stopping all Inventory movements by player

Discussion in 'Plugin Development' started by snamakool123, Jul 22, 2015.

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

    snamakool123

    The problem is in these two events I just can find it can you please help.
    Code:
        //PlayerListerners       
            //Checks which item player clicked on in commands shop
           
            @EventHandler
            public void onShopInventoryClickEvent(InventoryClickEvent event) {
                ItemStack clicked = event.getCurrentItem();
                if(clicked == null){
                    //They actually didn't click an item...
                    return;
                }
    
                Player player = (Player) event.getWhoClicked();
            
                //Player clicked /home from command shop
                if(ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Commands")){
                    if(clicked.equals(home) && player.hasPermission("command.home")){        
                        player.performCommand("home");
                        event.setCancelled(true);
                        player.closeInventory();
                    }else if(clicked.equals(home) && !player.hasPermission("command.home")){
                        if(economy.getBalance(player)>= 200){
                                String name = "Home";
                                player.closeInventory();
                                openpurchasegui(player, name);
                            }else{
                            player.sendMessage(ChatColor.DARK_RED + "[SnamCraft] " + ChatColor.RED + "You dont have enough money!");
                        }
                    }else{
                        player.closeInventory();
                        return;
                    }
                }
            }
           
            @EventHandler
            public void onPurchaseInventoryClick(InventoryClickEvent event){
                ItemStack clicked = event.getCurrentItem();
                if(clicked == null){
                    //They actually didn't click an item...
                    return;
                }
    
                Player player = (Player) event.getWhoClicked();
                event.setCancelled(true);
               
                //Player confirmed purchase
                if(ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Purchase")){
                    player.sendMessage("Test1");
                    if(clicked.equals(back)){
                        player.closeInventory();
                        openshopGUI(player);
                    }else if(clicked.equals(cmd)){
                        event.setCancelled(true);
                        return;
                    }else if(clicked.equals(cancel)){
                        player.closeInventory();
                    }else if(clicked.equals(confirm)){
                        if(economy.getBalance(player)>= 200){
                            EconomyResponse homebuy = economy.withdrawPlayer(player, 200);
                            if(homebuy.transactionSuccess()){
                                player.closeInventory();
                                player.sendMessage(ChatColor.DARK_RED + "[SnamCraft] " + ChatColor.GREEN + "You have succesfully bought /home!");
                                player.addAttachment(this).setPermission(homecommand, true);
                            }else{
                            player.sendMessage(ChatColor.DARK_RED + "[SnamCraft] " + ChatColor.RED + "You dont have enough money!");
                            }
                        }
                    }
                }
            }
    
    No errors come up its just that the plugin is blocking the player from moving an item.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 11, 2016
  2. Offline

    Zombie_Striker

    @snamakool123
    You can always try to use InventoryEvent, and cancel that event.
     
  3. Offline

    Gater12

  4. Offline

    snamakool123

    Guys can you please tell me what is the problem in my code. Because I am sure its some thing that I have written wrong

    The if statement
    if(ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Commands")){
    Then the plugin does stuff when a player clicks an item in the Commands inv
    }

    but how do I make it so
    else{
    continue moving items around inventory
    }
    Thanks
    =

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 11, 2016
  5. Offline

    DoggyCode™

    @Gater12 It's very cancellable. ex:
    Code:
        @EventHandler
            public void onClick(InventoryClickEvent event) {
                Player p = (Player) event.getWhoClicked();
                String itemStr = (String)event.getCurrentItem().getItemMeta().getDisplayName();
          
                if(event.getInventory().getName().equals("inventory name")) {
                    event.setCancelled(true);
                }
    EDIT: Ah.. nvm, you said "InventoryEvent", not "InventoryClickEvent"
    but anyways, @snamakool123 use my method, it works..
     
  6. Offline

    snamakool123

    Ok thanks!
     
Thread Status:
Not open for further replies.

Share This Page