package net.obnoxint.mcdev.util;
import java.io.Serializable;
import org.bukkit.inventory.FurnaceRecipe;
import org.bukkit.inventory.Recipe;
import org.bukkit.inventory.ShapedRecipe;
import org.bukkit.inventory.ShapelessRecipe;
@SuppressWarnings("serial")
public abstract class SerializableRecipe implements Serializable {
public static final int RECIPE_TYPE_FURNACE = 0;
public static final int RECIPE_TYPE_SHAPED = 1;
public static final int RECIPE_TYPE_SHAPELESS = 2;
public static SerializableRecipe getFromRecipe(final Recipe recipe) {
SerializableRecipe r = null;
if (recipe != null) {
if (recipe instanceof FurnaceRecipe) {
r = new SerializableFurnaceRecipe((FurnaceRecipe) recipe);
} else if (recipe instanceof ShapedRecipe) {
r = new SerializableShapedRecipe((ShapedRecipe) recipe);
} else if (recipe instanceof ShapelessRecipe) {
r = new SerializableShapelessRecipe((ShapelessRecipe) recipe);
}
}
return r;
}
private final int type;
private final SerializableItemStack result;
protected SerializableRecipe(final int type, final Recipe recipe) {
if (type < 0 || type > 2) {
throw new IllegalArgumentException();
}
this.type = type;
this.result = new SerializableItemStack(recipe.getResult());
}
public final SerializableItemStack getResult() {
return result;
}
public final int getType() {
return type;
}
}