Отключение полёта

Версия Minecraft
1.7.10
71
1
Доброго времени суток, подскажите пожалуйста, как отключить полёт? если снять броню, то полёт остается.
P.S. тапком не бить
Java:
public void onArmorTick(World world, EntityPlayer player, ItemStack stack) {

        if (stack.getItem() == MyMod.set2Body) {
            if (!world.isRemote) return;
            player.capabilities.allowFlying = true;
            player.capabilities.disableDamage = true;
        } else {
            if (player.capabilities.isCreativeMode) {
                player.capabilities.allowFlying = true;
                player.capabilities.disableDamage = true;
            } else  {
                player.capabilities.allowFlying = false;
                player.capabilities.disableDamage = false;
            }
        }
}
 

tox1cozZ

aka Agravaine
8,455
598
2,892
 

tox1cozZ

aka Agravaine
8,455
598
2,892
 
682
20
319
Доброго времени суток, подскажите пожалуйста, как отключить полёт? если снять броню, то полёт остается.
P.S. тапком не бить
Java:
public void onArmorTick(World world, EntityPlayer player, ItemStack stack) {

        if (stack.getItem() == MyMod.set2Body) {
            if (!world.isRemote) return;
            player.capabilities.allowFlying = true;
            player.capabilities.disableDamage = true;
        } else {
            if (player.capabilities.isCreativeMode) {
                player.capabilities.allowFlying = true;
                player.capabilities.disableDamage = true;
            } else  {
                player.capabilities.allowFlying = false;
                player.capabilities.disableDamage = false;
            }
        }
}
Обьясняю для тех кто в танке, судя по твоему коду, когда на тебе одета броня, у тебя каждый тик проходит твое действие в onArmorTick, но а если снять броню, проходить уже оно не будет, тебе нужно отловить эвент, проверить на то что именно вся броня одета и именно этот сет и выдавать и уберать все что хочешь
 
269
8
19
@Dablex
Java:
    @SubscribeEvent
    public void armorFlyingCheck(PlayerTickEvent e) {
        if (e.player != null) {
            EntityPlayer player = e.player;
            ItemStack stack = e.player.getCurrentArmor(2);
            if (stack != null) {
                if (stack.getItem() == jscitemregister.juggernautChestplate) {
                    player.capabilities.allowFlying = true;
                    player.capabilities.disableDamage = true;
                }else {
                    player.capabilities.allowFlying = false;
                    player.capabilities.disableDamage = false;
                }
            }else {
                if(!player.capabilities.isCreativeMode) {
                    player.capabilities.allowFlying = false;
                    player.capabilities.disableDamage = false;
                }
            }
        }
    }
 
Сверху