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

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import javax.annotation.Nullable;

public class CriterionTriggerChangedDimension extends CriterionTriggerAbstract<CriterionTriggerChangedDimension.a> {

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

    public CriterionTriggerChangedDimension() {}

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

    @Override
    public CriterionTriggerChangedDimension.a a(JsonObject jsonobject, JsonDeserializationContext jsondeserializationcontext) {
        DimensionManager dimensionmanager = jsonobject.has("from") ? DimensionManager.a(new MinecraftKey(ChatDeserializer.h(jsonobject, "from"))) : null;
        DimensionManager dimensionmanager1 = jsonobject.has("to") ? DimensionManager.a(new MinecraftKey(ChatDeserializer.h(jsonobject, "to"))) : null;

        return new CriterionTriggerChangedDimension.a(dimensionmanager, dimensionmanager1);
    }

    public void a(EntityPlayer entityplayer, DimensionManager dimensionmanager, DimensionManager dimensionmanager1) {
        this.a(entityplayer.getAdvancementData(), (criteriontriggerchangeddimension_a) -> {
            return criteriontriggerchangeddimension_a.b(dimensionmanager, dimensionmanager1);
        });
    }

    public static class a extends CriterionInstanceAbstract {

        @Nullable
        private final DimensionManager a;
        @Nullable
        private final DimensionManager b;

        public a(@Nullable DimensionManager dimensionmanager, @Nullable DimensionManager dimensionmanager1) {
            super(CriterionTriggerChangedDimension.a);
            this.a = dimensionmanager;
            this.b = dimensionmanager1;
        }

        public static CriterionTriggerChangedDimension.a a(DimensionManager dimensionmanager) {
            return new CriterionTriggerChangedDimension.a((DimensionManager) null, dimensionmanager);
        }

        public boolean b(DimensionManager dimensionmanager, DimensionManager dimensionmanager1) {
            return this.a != null && this.a != dimensionmanager ? false : this.b == null || this.b == dimensionmanager1;
        }

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

            if (this.a != null) {
                jsonobject.addProperty("from", DimensionManager.a(this.a).toString());
            }

            if (this.b != null) {
                jsonobject.addProperty("to", DimensionManager.a(this.b).toString());
            }

            return jsonobject;
        }
    }
}