Вылет при одевании брони

Версия Minecraft
1.7.10
126
6
33
По идее, если одеть все элементы брони должен накладываться эффект ночного виденья, если нет - эффект силы, но как обычно всё пошло не по плану и при одевании брони крашит, ссылаясь на java.lang.NullPointerException: Ticking entity. Как-то так.
Код:
public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack)
    {
        if (    player.inventory.armorInventory[1].getItem() != TestArmor.testarmorhelmet ||
                player.inventory.armorInventory[2].getItem() != TestArmor.testarmorplate  ||
                player.inventory.armorInventory[3].getItem() != TestArmor.testarmorpants  ||
                player.inventory.armorInventory[4].getItem() != TestArmor.testarmorboots    )  {

            player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 24, 1));

        }

        else {
            player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 24, 1));
        }

    }
 
Решение
Типа так:
Код:
if (
(player.inventory.armorInventory[0] != null && player.inventory.armorInventory[0].getItem() != TestArmor.testarmorhelmet) ||
(player.inventory.armorInventory[1] != null && player.inventory.armorInventory[1].getItem() != TestArmor.testarmorplate)  ||
(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() != TestArmor.testarmorpants)  ||
(player.inventory.armorInventory[3] != null && player.inventory.armorInventory[3].getItem() != TestArmor.testarmorboots)
)  {
Типа так:
Код:
if (
(player.inventory.armorInventory[0] != null && player.inventory.armorInventory[0].getItem() != TestArmor.testarmorhelmet) ||
(player.inventory.armorInventory[1] != null && player.inventory.armorInventory[1].getItem() != TestArmor.testarmorplate)  ||
(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() != TestArmor.testarmorpants)  ||
(player.inventory.armorInventory[3] != null && player.inventory.armorInventory[3].getItem() != TestArmor.testarmorboots)
)  {
 
Не знаю что ты хотел писать. Проверяй в тот ли слот кладёшь предмет или нет. В так-же возможно дополнительная проверка на player.inventory.armorInventory[n] является null'ом.
 
Назад
Сверху