По какой причине две переменные одинаковы, даже должны быть разными? - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь написать плагин в minecraft (case opener).У меня проблема, потому что всякий раз, когда переменная 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 Ответ

1 голос
/ 31 марта 2019

Различные переменные используются для хранения смещенной ссылки, но 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;
}
...