从 Bukkit 库存中移除物品
Removing items from a Bukkit Inventory
我有一个 ItemStack,我正试图将它从播放器中移除。
我以前成功地尝试过,但是现在;我没有运气。我试过了:
player.remove(new ItemStack(Material.COAL, 2));
我也试过这样做:
ItemStack itemStack = new ItemStack(Material.COAL);
player.remove(itemStack);
我找到了解决方案,这个静态方法做得非常好。
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;
}
}
}
}
怎么样:
ItemStack i = new ItemStack(Material.COAL, 2);
player.getInventory().removeItem(i);
是的,就这么简单
我有一个 ItemStack,我正试图将它从播放器中移除。 我以前成功地尝试过,但是现在;我没有运气。我试过了:
player.remove(new ItemStack(Material.COAL, 2));
我也试过这样做:
ItemStack itemStack = new ItemStack(Material.COAL);
player.remove(itemStack);
我找到了解决方案,这个静态方法做得非常好。
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;
}
}
}
}
怎么样:
ItemStack i = new ItemStack(Material.COAL, 2);
player.getInventory().removeItem(i);
是的,就这么简单