Проверка на броню

Версия Minecraft
1.12.2
2,932
44
598
Доброго времени суток Земляне и Чужие!
Сегодня я столкнулся с такой проблемой: У меня есть событие PlayerRightClick:
Java:
@SubscribeEvent
    public void PlayerRightClick(PlayerInteractEvent.RightClickBlock event) {

        if (!event.getEntityPlayer().isSneaking() || !event.getEntityPlayer().getHeldItem(EnumHand.MAIN_HAND).isEmpty() || event.getEntityPlayer().capabilities.isCreativeMode)
            
            return;

        if (event.getWorld().getBlockState(event.getPos()).getBlock() == Blocks.SNOW || event.getEntityPlayer().inventory.armorInventory.get(2).getItem() instanceof ItemArmor) {
            if (!event.getWorld().isRemote) {

                IBlockState prevState = Blocks.SNOW_LAYER.getDefaultState().withProperty(BlockSnow.LAYERS, 7);
                event.getWorld().setBlockState(event.getPos(), prevState);
                event.getEntityPlayer().inventory.addItemStackToInventory(new ItemStack(Items.SNOWBALL));

                event.getEntityPlayer().getCooldownTracker().setCooldown(Items.SNOWBALL, 1);
            }

            event.setUseItem(Result.ALLOW);

        } else if (event.getWorld().getBlockState(event.getPos()).getBlock() == Blocks.SNOW_LAYER || event.getEntityPlayer().inventory.armorInventory.get(2).getItem() instanceof ItemArmor) {

            if (!event.getWorld().isRemote
                    && !event.getEntityPlayer().getCooldownTracker().hasCooldown(Items.SNOWBALL)) {

                if (event.getWorld().getBlockState(event.getPos()).getValue(BlockSnow.LAYERS) == 1)
                    event.getWorld().destroyBlock(event.getPos(), false);

                else {

                    int prevValue = event.getWorld().getBlockState(event.getPos()).getValue(BlockSnow.LAYERS);
                    IBlockState state = Blocks.SNOW_LAYER.getDefaultState().withProperty(BlockSnow.LAYERS, prevValue - 1);
                    event.getWorld().setBlockState(event.getPos(), state);

                }

                event.getEntityPlayer().inventory.addItemStackToInventory(new ItemStack(Items.SNOWBALL));

            }

            event.setCancellationResult(EnumActionResult.SUCCESS);
            event.setCanceled(true);

        }
    }
Как видно там есть проверка на то что в слоте брони где должен быть нагрудник есть предмет который унаследовал ItemArmor: event.getEntityPlayer().inventory.armorInventory.get(2).getItem() instanceof ItemArmor.
Проблема в том что эта проверка работает очень неадекватно. (неадекватно у меня означает что, игрок с надетым нагрудником нагрудником постоянно ставит слой снега высотой в 7 уровней, а без нагрудника работает как и должно быть...)
 
Сверху