两个变量相同甚至应该不同的原因是什么?

时间:2019-03-31 19:53:02

标签: java minecraft bukkit

我正在尝试在minecraft(开箱器)中编写插件。我有问题,因为每当变量current_item和next变量相同时,甚至应该都不同。

Inventory inv = Bukkit.createInventory(null, InventoryType.CHEST, "Losowanie");

ItemStack rnditem = new ItemStack(Material.STICK);

ItemStack current_item = new ItemStack(Material.APPLE);
ItemStack next = new ItemStack(Material.STICK);

for(int i = 0; i < 15; i++) {

    Random rand = new Random();

    switch(rand.nextInt(2)) {
        case 0:
            rnditem.setType(Material.DIAMOND);
            break;
        case 1:
            rnditem.setType(Material.GOLDEN_APPLE);
            break;
    }


    inv.clear();

    current_item = next;
    next = rnditem;

    inv.setItem(13, current_item);
    inv.setItem(14, next);

    p.updateInventory();

    Thread.sleep(i*100);
}

1 个答案:

答案 0 :(得分:1)

使用了不同的变量来保存移动参考,但是rnditem从未设置为新参考

switch(rand.nextInt(2)) {
    case 0:
        rnditem.setType(Material.DIAMOND);
        break;
    case 1:
        rnditem.setType(Material.GOLDEN_APPLE);
        break;
}

应该是

switch(rand.nextInt(2)) {
    case 0:
        rnditem = new ItemStack(Material.DIAMOND);
        break;
    case 1:
        rnditem = new ItemStack(Material.GOLDEN_APPLE);
        break;
}