Проверить наличие эффекта у сущности

Версия Minecraft
1.19.2
API
Forge
12
1
0
У меня есть объект Entity, как можно проверить имеет ли он конкретный эффект (условно удача)?
 
если на мобе удача нанести ему 1 урона.
Java:
public class DfgbProcedure {

    public static void executeProcedure(Map<String, Object> dependencies) {
        if (dependencies.get("entity") == null) {
            if (!dependencies.containsKey("entity"))
                DcatsModPackMod.LOGGER.warn("Failed to load dependency entity for procedure Dfgb!");
            return;
        }

        Entity entity = (Entity) dependencies.get("entity");

        if (new Object() {
            boolean check(Entity _entity) {
                if (_entity instanceof LivingEntity) {
                    Collection<EffectInstance> effects = ((LivingEntity) _entity).getActivePotionEffects();
                    for (EffectInstance effect : effects) {
                        if (effect.getPotion() == Effects.LUCK)
                            return true;
                    }
                }
                return false;
            }
        }.check(entity)) {
            entity.attackEntityFrom(DamageSource.GENERIC, (float) 1);
        }
    }

}
 
имеет ли он конкретный эффект
Если оно вернет null - значит такого активного эффекта нет.
Java:
Entity#getActivePotionEffect(Potion.getPotionById(10)); или
Entity#getActivePotionEffect(Potion.getPotionFromResourceLocation("example"));
 
Назад
Сверху