HasEffectCondition class

Пакет: com.hypixel.hytale.server.core.modules.entity.condition

Файл: com/hypixel/hytale/server/core/modules/entity/condition/HasEffectCondition.java

extends: Condition

Поля (1)

МодификаторыТипИмя
EffectControllerComponent var4

Методы (1)

МодификаторыВозвратСигнатура
if if(this.entityEffect == null)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entity.condition;

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.asset.type.entityeffect.config.EntityEffect;
class="kw">import com.hypixel.hytale.server.core.entity.effect.EffectControllerComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.time.Instant;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class HasEffectCondition class="kw">extends Condition {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<HasEffectCondition> CODEC = BuilderCodec.builder(HasEffectCondition.class, HasEffectCondition::new, Condition.BASE_CODEC)
      .appendInherited(
         new KeyedCodec<>("EffectId", Codec.STRING),
         (var0, var1) -> var0.entityEffectId = var1,
         var0 -> var0.entityEffectId,
         (var0, var1) -> var0.entityEffectId = var1.entityEffectId
      )
      .addValidatorLate(() -> EntityEffect.VALIDATOR_CACHE.getValidator().late())
      .documentation(
         "The effect to check for. Returns true if the entity has an active effect matching this one. If null, this condition always returns false."
      )
      .add()
      .build();
   @Nullable
   class="kw">private String entityEffectId;
   @Nullable
   class="kw">private EntityEffect entityEffect;

   class="kw">protected HasEffectCondition() {
   }

   @Override
   class="kw">public boolean eval0(@Nonnull ComponentAccessor<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Instant var3) {
      if (this.entityEffect == null) {
         if (this.entityEffectId == null || this.entityEffectId.isEmpty()) {
            class="kw">return false;
         }

         this.entityEffect = EntityEffect.getAssetMap().getAsset(this.entityEffectId);
      }

      EffectControllerComponent var4 = var1.getComponent(var2, EffectControllerComponent.getComponentType());
      class="kw">return var4 == null ? false : var4.hasEffect(this.entityEffect);
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "HasEffectCondition{entityEffect=" + this.entityEffect + "}";
   }
}