/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.shininet.bukkit.itemrenamer.merchant;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import org.bukkit.inventory.ItemStack;
import org.shininet.bukkit.itemrenamer.listeners.SpigotSafeSerializer;
import com.comphenix.protocol.utility.StreamSerializer;
public class MerchantRecipeList extends ArrayList<MerchantRecipe> {
/**
* Generated by Eclipse.
*/
private static final long serialVersionUID = 935714970432081801L;
private static final StreamSerializer streamSerializer = SpigotSafeSerializer.getDefault();
public void writeRecipiesToStream(DataOutputStream output) throws IOException {
output.writeByte((byte)(this.size() & 255));
for (MerchantRecipe merchantRecipe : this) {
MerchantRecipe recipe = (MerchantRecipe) merchantRecipe;
streamSerializer.serializeItemStack(output, recipe.getItemToBuy());
streamSerializer.serializeItemStack(output, recipe.getItemToSell());
ItemStack secondItem = recipe.getSecondItemToBuy();
output.writeBoolean(secondItem != null);
if (secondItem != null) {
streamSerializer.serializeItemStack(output, secondItem);
}
output.writeBoolean(recipe.isCanUse());
}
}
public static MerchantRecipeList readRecipiesFromStream(DataInputStream input) throws IOException {
MerchantRecipeList recipeList = new MerchantRecipeList();
int size = input.readByte() & 255;
for (int i = 0; i < size; i++) {
ItemStack toBuy = streamSerializer.deserializeItemStack(input);
ItemStack toSell = streamSerializer.deserializeItemStack(input);
ItemStack toBuy2 = null;
if (input.readBoolean()) {
toBuy2 = streamSerializer.deserializeItemStack(input);
}
boolean canUse = input.readBoolean();
MerchantRecipe recipe = new MerchantRecipe(toBuy, toBuy2, toSell, canUse);
recipeList.add(recipe);
}
return recipeList;
}
}