单击两次而不是一次

时间:2018-06-25 22:31:42

标签: java bukkit

我得到了一个gui,当我单击原料煤时,我需要再次单击它来激活代码。 这是我的清单点击事件

    String stripname = ChatColor.stripColor(e.getClickedInventory().getName());
    if(stripname.equals("Upgrade Spawner".toUpperCase())) 
    {
        if(e.getCursor()!=null) 
        {
            if(e.getCursor().getType()!=null) 
            {
                Material item = e.getCursor().getType();
                if(item.equals(Material.STAINED_GLASS_PANE)) e.setCursor(null);
                else if(item.equals(Material.COAL))
                {
                    if(checkBalance(e.getWhoClicked(), config.getInt("Coal Cost"))) 
                    {
                        takeAwayMoney(e.getWhoClicked(), config.getInt("Coal Cost"));
                        e.getWhoClicked().closeInventory();
                        e.getWhoClicked().sendMessage(ChatColor.GREEN + "Iron Golems now drop coal!");
                    } else 
                    {
                        e.getWhoClicked().closeInventory();
                        e.getWhoClicked().sendMessage(ChatColor.RED + "You do not have the requirment amount of money! You need " + getMoneyNeeded(e.getWhoClicked(), config.getInt("Coal Cost")) + " more!");
                    }
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

因为getCursor返回玩家在光标中持有的项目,并且您正在检查它是否不为空-因此,首先单击将该项移至光标,然后在下次单击时,光标将不为null和代码将执行。
请改用getCurrentItem