package me.lethunderhawk.custom.recipes; import me.lethunderhawk.custom.recipes.command.RecipeEditorCommand; import me.lethunderhawk.custom.recipes.enchantedVariant.EnchantedVariantRecipeManager; import me.lethunderhawk.fluxapi.FluxService; import me.lethunderhawk.fluxapi.util.config.ConfigLoader; import me.lethunderhawk.fluxapi.util.interfaces.FluxAPIModule; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.configuration.serialization.ConfigurationSerialization; import org.bukkit.event.HandlerList; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; public class CustomRecipeModule extends FluxAPIModule { private EnchantedVariantRecipeManager enchantedVariantRecipeManager; private RecipeManager recipeManager; public CustomRecipeModule(JavaPlugin plugin) { super(plugin); } @Override public String getPrefix() { return "[Custom Recipe]"; } @Override public void onEnable() { ConfigurationSerialization.registerClass(CraftingTableRecipe.class); this.recipeManager = new RecipeManager(plugin); FluxService.register(RecipeManager.class, recipeManager); recipeManager.loadRecipes(FluxService.get(ConfigLoader.class)); //addTestRecipes(); //registerEnchantedVariantCrafts(); plugin.getServer().getPluginManager().registerEvents(recipeManager, plugin); RecipeEditorCommand command = new RecipeEditorCommand(this); plugin.getCommand("customrecipe").setExecutor(command); plugin.getCommand("customrecipe").setExecutor(command); } private void registerEnchantedVariantCrafts() { ItemStack[] matrix = new ItemStack[9]; ItemStack baseMaterial = new ItemStack(Material.COBBLESTONE); baseMaterial.setAmount(32); matrix[0] = baseMaterial; matrix[1] = baseMaterial; matrix[2] = baseMaterial; matrix[3] = baseMaterial; matrix[4] = baseMaterial; recipeManager.registerRecipe( new CraftingTableRecipe(new NamespacedKey(plugin, "enchanted_cobblestone"), matrix, new ItemStack(Material.RED_CONCRETE)) ); } private void addTestRecipes() { ItemStack[] matrix = new ItemStack[9]; matrix[0] = new ItemStack(Material.WHITE_CONCRETE); matrix[1] = new ItemStack(Material.WHITE_CONCRETE); matrix[2] = new ItemStack(Material.WHITE_CONCRETE); matrix[3] = new ItemStack(Material.WHITE_CONCRETE); matrix[4] = new ItemStack(Material.WHITE_CONCRETE); matrix[5] = new ItemStack(Material.WHITE_CONCRETE); matrix[6] = new ItemStack(Material.WHITE_CONCRETE); matrix[7] = new ItemStack(Material.WHITE_CONCRETE); matrix[8] = new ItemStack(Material.WHITE_CONCRETE); recipeManager.registerRecipe( new CraftingTableRecipe(new NamespacedKey(plugin, "test_recipe"), matrix, new ItemStack(Material.GREEN_CONCRETE)) ); } @Override public void onDisable() { if(recipeManager != null) { recipeManager.saveRecipes(FluxService.get(ConfigLoader.class)); HandlerList.unregisterAll(recipeManager); } } }