从Bukkit库存中删除项目

时间:2015-11-13 16:20:52

标签: java minecraft bukkit

我有一个ItemStack,我正试图从播放器中删除它。 我之前成功尝试过,但现在;我没有运气。我试过了:

player.remove(new ItemStack(Material.COAL, 2));

我也尝试过这样做:

ItemStack itemStack = new ItemStack(Material.COAL);
player.remove(itemStack);

2 个答案:

答案 0 :(得分:3)

我找到了解决方案,这种静态方法非常出色。

public static void removeInventoryItems(PlayerInventory inv, Material type, int amount) {
    for (ItemStack is : inv.getContents()) {
        if (is != null && is.getType() == type) {
            int newamount = is.getAmount() - amount;
            if (newamount > 0) {
                is.setAmount(newamount);
                break;
            } else {
                inv.remove(is);
                amount = -newamount;
                if (amount == 0) break;
            }
        }
    }
}

答案 1 :(得分:0)

怎么样:

ItemStack i = new ItemStack(Material.COAL, 2);
player.getInventory().removeItem(i);

是的,这很简单