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

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;

public class CriterionTriggerInteractBlock extends CriterionTriggerAbstract<CriterionTriggerInteractBlock.a> {

    private final MinecraftKey a;

    public CriterionTriggerInteractBlock(MinecraftKey minecraftkey) {
        this.a = minecraftkey;
    }

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

    @Override
    public CriterionTriggerInteractBlock.a a(JsonObject jsonobject, JsonDeserializationContext jsondeserializationcontext) {
        CriterionConditionBlock criterionconditionblock = CriterionConditionBlock.a(jsonobject.get("block"));
        CriterionTriggerProperties criteriontriggerproperties = CriterionTriggerProperties.a(jsonobject.get("state"));
        CriterionConditionItem criterionconditionitem = CriterionConditionItem.a(jsonobject.get("item"));

        return new CriterionTriggerInteractBlock.a(this.a, criterionconditionblock, criteriontriggerproperties, criterionconditionitem);
    }

    public void a(EntityPlayer entityplayer, BlockPosition blockposition, ItemStack itemstack) {
        IBlockData iblockdata = entityplayer.getWorldServer().getType(blockposition);

        this.a(entityplayer.getAdvancementData(), (criteriontriggerinteractblock_a) -> {
            return criteriontriggerinteractblock_a.a(iblockdata, entityplayer.getWorldServer(), blockposition, itemstack);
        });
    }

    public static class a extends CriterionInstanceAbstract {

        private final CriterionConditionBlock a;
        private final CriterionTriggerProperties b;
        private final CriterionConditionItem c;

        public a(MinecraftKey minecraftkey, CriterionConditionBlock criterionconditionblock, CriterionTriggerProperties criteriontriggerproperties, CriterionConditionItem criterionconditionitem) {
            super(minecraftkey);
            this.a = criterionconditionblock;
            this.b = criteriontriggerproperties;
            this.c = criterionconditionitem;
        }

        public static CriterionTriggerInteractBlock.a a(CriterionConditionBlock.a criterionconditionblock_a, CriterionConditionItem.a criterionconditionitem_a) {
            return new CriterionTriggerInteractBlock.a(CriterionTriggers.J.a, criterionconditionblock_a.b(), CriterionTriggerProperties.a, criterionconditionitem_a.b());
        }

        public boolean a(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, ItemStack itemstack) {
            return !this.a.a(worldserver, blockposition) ? false : (!this.b.a(iblockdata) ? false : this.c.a(itemstack));
        }

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

            jsonobject.add("block", this.a.a());
            jsonobject.add("state", this.b.a());
            jsonobject.add("item", this.c.a());
            return jsonobject;
        }
    }
}