/*
* Copyright 2013 eccentric_nz.
*/
package me.eccentric_nz.TARDIS.recipes;
import java.util.Arrays;
import java.util.Set;
import me.eccentric_nz.TARDIS.TARDIS;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.enchantments.EnchantmentWrapper;
import org.bukkit.inventory.FurnaceRecipe;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
/**
*
* @author eccentric_nz
*/
public class TARDISFurnaceRecipe {
private final TARDIS plugin;
public TARDISFurnaceRecipe(TARDIS plugin) {
this.plugin = plugin;
}
public void addFurnaceRecipes() {
Set<String> furnace = plugin.getRecipesConfig().getConfigurationSection("furnace").getKeys(false);
for (String s : furnace) {
plugin.getServer().addRecipe(makeRecipe(s));
}
}
private FurnaceRecipe makeRecipe(String s) {
FurnaceRecipe f;
/*
recipe: '35:0'
result: '35:15'
displayname: true
lore: "Done to a crisp"
*/
ItemStack is;
String[] result = plugin.getRecipesConfig().getString("furnace." + s + ".result").split(":");
Material result_m = Material.valueOf(result[0]);
if (result.length == 2) {
short result_data = Short.parseShort(result[1]);
is = new ItemStack(result_m, 1, result_data);
} else {
is = new ItemStack(result_m, 1);
}
ItemMeta im = is.getItemMeta();
boolean set_meta = false;
if (plugin.getRecipesConfig().getBoolean("furnace." + s + ".displayname")) {
im.setDisplayName(s);
if (!plugin.getRecipesConfig().getString("furnace." + s + ".lore").equals("")) {
im.setLore(Arrays.asList(plugin.getRecipesConfig().getString("furnace." + s + ".lore").split("\n")));
}
set_meta = true;
}
if (!plugin.getRecipesConfig().getString("furnace." + s + ".enchantment").equals("NONE")) {
Enchantment e = EnchantmentWrapper.getByName(plugin.getRecipesConfig().getString("furnace." + s + ".enchantment"));
im.addEnchant(e, plugin.getRecipesConfig().getInt("furnace." + s + ".strength"), plugin.getConfig().getBoolean("allow_unsafe_enchantments"));
set_meta = true;
}
if (set_meta) {
is.setItemMeta(im);
}
String[] ingredient = plugin.getRecipesConfig().getString("furnace." + s + ".recipe").split(":");
int recipe_id = Integer.parseInt(ingredient[0]);
Material recipe_m = Material.getMaterial(recipe_id);
if (ingredient.length == 2) {
int recipe_data = Integer.parseInt(ingredient[1]);
f = new FurnaceRecipe(is, recipe_m, recipe_data);
} else {
f = new FurnaceRecipe(is, recipe_m);
}
return f;
}
}