Больше урона по злым мобам

Версия Minecraft
1.16.5
API
Forge
6
0
У меня есть меч и как сделать так что по злым мобам наносилось 1.5x урона?
 
В общем в кратце, тебе нужно обработать событие когда сущность получает урон
как только моб получает урон тебе нужно проверить его злой он или добрый, я не нашел способа проверить является ли моб пассивным
но нашел способ проверить может ли моб атаковать
если моб может атаковать игрока, то к полученному им урону добавляем еще 0,5
код будет выглядеть примерно так, у меня под рукой нет 1,16,5 но ели он там отличается, то не сильно

CODE:
    @SubscribeEvent
    public static void onLivingHurt(LivingHurtEvent event) {

        if(event.getEntity().canAttack((LivingEntity) event.getSource().getEntity())){
            if(event.getSource().getEntity() instanceof Player player && player.getMainHandItem().getItem() == Items.IRON_SWORD) {
                event.getEntity().hurt(DamageSource.GENERIC, event.getAmount() * 0.5F);
            }
        }
    }
 
6
0
Спасибо, но мне нужно не так в классе SwordITem есть метод hurtEnemy и я в нем проверяю моб ли это если да то наношу урон? Может можно лучше сделать?
Excalibur.java:
    @Override
    public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) {

        if (target instanceof MobEntity) {
            target.hurt(DamageSource.MAGIC, 20);
            return super.hurtEnemy(stack, target, attacker);
        }

        return super.hurtEnemy(stack, target, attacker);
    }
 
Спасибо, но мне нужно не так в классе SwordITem есть метод hurtEnemy и я в нем проверяю моб ли это если да то наношу урон? Может можно лучше сделать?
Excalibur.java:
    @Override
    public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) {

        if (target instanceof MobEntity) {
            target.hurt(DamageSource.MAGIC, 20);
            return super.hurtEnemy(stack, target, attacker);
        }

        return super.hurtEnemy(stack, target, attacker);
    }
почему бы и нет, если код работает так как нужно, даже наверное будет более актуальным решением чем мое

только тебе нужно расширить проверку моба на злой он или нет, что бы сделать так как ты хотел изначально
 
Сверху