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

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

public class LootItemFunctionLimitCount extends LootItemFunctionConditional {

    private final LootIntegerLimit a;

    private LootItemFunctionLimitCount(LootItemCondition[] alootitemcondition, LootIntegerLimit lootintegerlimit) {
        super(alootitemcondition);
        this.a = lootintegerlimit;
    }

    @Override
    public ItemStack a(ItemStack itemstack, LootTableInfo loottableinfo) {
        int i = this.a.applyAsInt(itemstack.getCount());

        itemstack.setCount(i);
        return itemstack;
    }

    public static LootItemFunctionConditional.a<?> a(LootIntegerLimit lootintegerlimit) {
        return a((alootitemcondition) -> {
            return new LootItemFunctionLimitCount(alootitemcondition, lootintegerlimit);
        });
    }

    public static class a extends LootItemFunctionConditional.c<LootItemFunctionLimitCount> {

        protected a() {
            super(new MinecraftKey("limit_count"), LootItemFunctionLimitCount.class);
        }

        public void a(JsonObject jsonobject, LootItemFunctionLimitCount lootitemfunctionlimitcount, JsonSerializationContext jsonserializationcontext) {
            super.a(jsonobject, (LootItemFunctionConditional) lootitemfunctionlimitcount, jsonserializationcontext);
            jsonobject.add("limit", jsonserializationcontext.serialize(lootitemfunctionlimitcount.a));
        }

        @Override
        public LootItemFunctionLimitCount b(JsonObject jsonobject, JsonDeserializationContext jsondeserializationcontext, LootItemCondition[] alootitemcondition) {
            LootIntegerLimit lootintegerlimit = (LootIntegerLimit) ChatDeserializer.a(jsonobject, "limit", jsondeserializationcontext, LootIntegerLimit.class);

            return new LootItemFunctionLimitCount(alootitemcondition, lootintegerlimit);
        }
    }
}