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

import java.util.ArrayList;
import javax.annotation.Nullable;

public class MerchantRecipeList extends ArrayList<MerchantRecipe> {

    public MerchantRecipeList() {}

    public MerchantRecipeList(NBTTagCompound nbttagcompound) {
        NBTTagList nbttaglist = nbttagcompound.getList("Recipes", 10);

        for (int i = 0; i < nbttaglist.size(); ++i) {
            this.add(new MerchantRecipe(nbttaglist.getCompound(i)));
        }

    }

    @Nullable
    public MerchantRecipe a(ItemStack itemstack, ItemStack itemstack1, int i) {
        if (i > 0 && i < this.size()) {
            MerchantRecipe merchantrecipe = (MerchantRecipe) this.get(i);

            return merchantrecipe.a(itemstack, itemstack1) ? merchantrecipe : null;
        } else {
            for (int j = 0; j < this.size(); ++j) {
                MerchantRecipe merchantrecipe1 = (MerchantRecipe) this.get(j);

                if (merchantrecipe1.a(itemstack, itemstack1)) {
                    return merchantrecipe1;
                }
            }

            return null;
        }
    }

    public void a(PacketDataSerializer packetdataserializer) {
        packetdataserializer.writeByte((byte) (this.size() & 255));

        for (int i = 0; i < this.size(); ++i) {
            MerchantRecipe merchantrecipe = (MerchantRecipe) this.get(i);

            packetdataserializer.a(merchantrecipe.a());
            packetdataserializer.a(merchantrecipe.getSellingItem());
            ItemStack itemstack = merchantrecipe.getBuyItem2();

            packetdataserializer.writeBoolean(!itemstack.isEmpty());
            if (!itemstack.isEmpty()) {
                packetdataserializer.a(itemstack);
            }

            packetdataserializer.writeBoolean(merchantrecipe.isFullyUsed());
            packetdataserializer.writeInt(merchantrecipe.getUses());
            packetdataserializer.writeInt(merchantrecipe.getMaxUses());
            packetdataserializer.writeInt(merchantrecipe.getXp());
            packetdataserializer.writeInt(merchantrecipe.getSpecialPrice());
            packetdataserializer.writeFloat(merchantrecipe.getPriceMultiplier());
            packetdataserializer.writeInt(merchantrecipe.getDemand());
        }

    }

    public static MerchantRecipeList b(PacketDataSerializer packetdataserializer) {
        MerchantRecipeList merchantrecipelist = new MerchantRecipeList();
        int i = packetdataserializer.readByte() & 255;

        for (int j = 0; j < i; ++j) {
            ItemStack itemstack = packetdataserializer.m();
            ItemStack itemstack1 = packetdataserializer.m();
            ItemStack itemstack2 = ItemStack.a;

            if (packetdataserializer.readBoolean()) {
                itemstack2 = packetdataserializer.m();
            }

            boolean flag = packetdataserializer.readBoolean();
            int k = packetdataserializer.readInt();
            int l = packetdataserializer.readInt();
            int i1 = packetdataserializer.readInt();
            int j1 = packetdataserializer.readInt();
            float f = packetdataserializer.readFloat();
            int k1 = packetdataserializer.readInt();
            MerchantRecipe merchantrecipe = new MerchantRecipe(itemstack, itemstack2, itemstack1, k, l, i1, f, k1);

            if (flag) {
                merchantrecipe.q();
            }

            merchantrecipe.setSpecialPrice(j1);
            merchantrecipelist.add(merchantrecipe);
        }

        return merchantrecipelist;
    }

    public NBTTagCompound a() {
        NBTTagCompound nbttagcompound = new NBTTagCompound();
        NBTTagList nbttaglist = new NBTTagList();

        for (int i = 0; i < this.size(); ++i) {
            MerchantRecipe merchantrecipe = (MerchantRecipe) this.get(i);

            nbttaglist.add(merchantrecipe.t());
        }

        nbttagcompound.set("Recipes", nbttaglist);
        return nbttagcompound;
    }
}