我得到了一个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!");
}
}
}
}
}
答案 0 :(得分:1)
因为getCursor
返回玩家在光标中持有的项目,并且您正在检查它是否不为空-因此,首先单击将该项移至光标,然后在下次单击时,光标将不为null和代码将执行。
请改用getCurrentItem
。