RequiresOneOfFeaturesValidator class
Пакет: com.hypixel.hytale.server.npc.asset.builder.validators
Файл: com/hypixel/hytale/server/npc/asset/builder/validators/RequiresOneOfFeaturesValidator.java
extends: RequiredFeatureValidator
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.asset.builder.validators;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderBase;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.Feature;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.FeatureEvaluatorHelper;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.providerevaluators.FeatureProviderEvaluator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.providerevaluators.ProviderEvaluator;
class="kw">import java.util.EnumSet;
class="kw">import javax.annotation.Nonnull;
class="kw">public class RequiresOneOfFeaturesValidator class="kw">extends RequiredFeatureValidator {
@Nonnull
class="kw">private class="kw">final EnumSet<Feature> requiredFeature;
@Nonnull
class="kw">private class="kw">final String[] description;
class="kw">private RequiresOneOfFeaturesValidator(@Nonnull EnumSet<Feature> var1) {
this.requiredFeature = var1;
this.description = BuilderBase.getDescriptionArray(var1);
}
@Override
class="kw">public boolean validate(@Nonnull FeatureEvaluatorHelper var1) {
for (ProviderEvaluator var3 : var1.getProviders()) {
if (var3 class="kw">instanceof FeatureProviderEvaluator && ((FeatureProviderEvaluator)var3).provides(this.requiredFeature)) {
class="kw">return true;
}
}
class="kw">return false;
}
@Nonnull
@Override
class="kw">public String getErrorMessage(String var1) {
class="kw">return String.format("At least one of required features %s must be provided at %s", String.join(", ", this.description), var1);
}
@Nonnull
class="kw">public class="kw">static RequiresOneOfFeaturesValidator withFeatures(@Nonnull EnumSet<Feature> var0) {
class="kw">return new RequiresOneOfFeaturesValidator(var0);
}
}