gpt4 book ai didi

java - 加油机库存未更新 bukkit

转载 作者:行者123 更新时间:2023-12-01 14:20:23 26 4
gpt4 key购买 nike

我目前正在创建一个利用分配器的插件。我在监听器中有一个 while 循环,应该从分配器的库存中删除一 block 煤炭,直到没有剩余的煤炭可以打破循环。它精细循环并记录用于表示煤炭数量的整数的倒计时。然而,分配器的库存没有更新,任何帮助将不胜感激。这是 while 循环中包含的代码

Block temp;
int coal;
BlockState state = block.getState();
Inventory sourceInv = ((InventoryHolder) state).getInventory();
while (sourceInv.contains(Material.COAL))
{
state.update();
temp = drillSpenser.getBlock().getRelative(BlockFace.DOWN);
temp.breakNaturally();
int index = sourceInv.first(Material.COAL);
ItemStack stack = sourceInv.getItem(index);
coal = stack.getAmount();
System.out.println(coal);
if (coal == 0)
{
sourceInv.remove(Material.COAL);
break;
}
coal--;
ItemStack newItem = new ItemStack(Material.COAL, coal);
sourceInv.remove(Material.COAL);
sourceInv.addItem(newItem);

state.update();
block.getState().update();
}

}

最佳答案

试试这个

ItemStack itemStack = new ItemStack(Material.COLA, 1);
sourceInv.remove(itemStack);

ItemStack itemStack = new ItemStack(Material.COLA, 1);
sourceInv.removeItem(itemStack);

而不是

ItemStack newItem = new ItemStack(Material.COAL, coal);
sourceInv.remove(Material.COAL);
sourceInv.addItem(newItem);

即使是大于 1 的煤堆,这也应该移除一颗煤。

关于java - 加油机库存未更新 bukkit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17641428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com