Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / CriterionTriggerChanneledLightning.java
package net.minecraft.server;

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import java.util.Collection;
import java.util.Iterator;

public class CriterionTriggerChanneledLightning extends CriterionTriggerAbstract<CriterionTriggerChanneledLightning.a> {

    private static final MinecraftKey a = new MinecraftKey("channeled_lightning");

    public CriterionTriggerChanneledLightning() {}

    @Override
    public MinecraftKey a() {
        return CriterionTriggerChanneledLightning.a;
    }

    @Override
    public CriterionTriggerChanneledLightning.a a(JsonObject jsonobject, JsonDeserializationContext jsondeserializationcontext) {
        CriterionConditionEntity[] acriterionconditionentity = CriterionConditionEntity.b(jsonobject.get("victims"));

        return new CriterionTriggerChanneledLightning.a(acriterionconditionentity);
    }

    public void a(EntityPlayer entityplayer, Collection<? extends Entity> collection) {
        this.a(entityplayer.getAdvancementData(), (criteriontriggerchanneledlightning_a) -> {
            return criteriontriggerchanneledlightning_a.a(entityplayer, collection);
        });
    }

    public static class a extends CriterionInstanceAbstract {

        private final CriterionConditionEntity[] a;

        public a(CriterionConditionEntity[] acriterionconditionentity) {
            super(CriterionTriggerChanneledLightning.a);
            this.a = acriterionconditionentity;
        }

        public static CriterionTriggerChanneledLightning.a a(CriterionConditionEntity... acriterionconditionentity) {
            return new CriterionTriggerChanneledLightning.a(acriterionconditionentity);
        }

        public boolean a(EntityPlayer entityplayer, Collection<? extends Entity> collection) {
            CriterionConditionEntity[] acriterionconditionentity = this.a;
            int i = acriterionconditionentity.length;
            int j = 0;

            while (j < i) {
                CriterionConditionEntity criterionconditionentity = acriterionconditionentity[j];
                boolean flag = false;
                Iterator iterator = collection.iterator();

                while (true) {
                    if (iterator.hasNext()) {
                        Entity entity = (Entity) iterator.next();

                        if (!criterionconditionentity.a(entityplayer, entity)) {
                            continue;
                        }

                        flag = true;
                    }

                    if (!flag) {
                        return false;
                    }

                    ++j;
                    break;
                }
            }

            return true;
        }

        @Override
        public JsonElement b() {
            JsonObject jsonobject = new JsonObject();

            jsonobject.add("victims", CriterionConditionEntity.a(this.a));
            return jsonobject;
        }
    }
}