CustomRecipeModule.java 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package me.lethunderhawk.custom.recipes;
  2. import me.lethunderhawk.custom.recipes.command.RecipeEditorCommand;
  3. import me.lethunderhawk.custom.recipes.enchantedVariant.EnchantedVariantRecipeManager;
  4. import me.lethunderhawk.fluxapi.FluxService;
  5. import me.lethunderhawk.fluxapi.util.config.ConfigLoader;
  6. import me.lethunderhawk.fluxapi.util.interfaces.FluxAPIModule;
  7. import org.bukkit.Material;
  8. import org.bukkit.NamespacedKey;
  9. import org.bukkit.configuration.serialization.ConfigurationSerialization;
  10. import org.bukkit.event.HandlerList;
  11. import org.bukkit.inventory.ItemStack;
  12. import org.bukkit.plugin.java.JavaPlugin;
  13. public class CustomRecipeModule extends FluxAPIModule {
  14. private EnchantedVariantRecipeManager enchantedVariantRecipeManager;
  15. private RecipeManager recipeManager;
  16. public CustomRecipeModule(JavaPlugin plugin) {
  17. super(plugin);
  18. }
  19. @Override
  20. public String getPrefix() {
  21. return "[Custom Recipe]";
  22. }
  23. @Override
  24. public void onEnable() {
  25. ConfigurationSerialization.registerClass(CraftingTableRecipe.class);
  26. this.recipeManager = new RecipeManager(plugin);
  27. FluxService.register(RecipeManager.class, recipeManager);
  28. recipeManager.loadRecipes(FluxService.get(ConfigLoader.class));
  29. //addTestRecipes();
  30. //registerEnchantedVariantCrafts();
  31. plugin.getServer().getPluginManager().registerEvents(recipeManager, plugin);
  32. RecipeEditorCommand command = new RecipeEditorCommand(this);
  33. plugin.getCommand("customrecipe").setExecutor(command);
  34. plugin.getCommand("customrecipe").setExecutor(command);
  35. }
  36. private void registerEnchantedVariantCrafts() {
  37. ItemStack[] matrix = new ItemStack[9];
  38. ItemStack baseMaterial = new ItemStack(Material.COBBLESTONE);
  39. baseMaterial.setAmount(32);
  40. matrix[0] = baseMaterial;
  41. matrix[1] = baseMaterial;
  42. matrix[2] = baseMaterial;
  43. matrix[3] = baseMaterial;
  44. matrix[4] = baseMaterial;
  45. recipeManager.registerRecipe(
  46. new CraftingTableRecipe(new NamespacedKey(plugin, "enchanted_cobblestone"),
  47. matrix, new ItemStack(Material.RED_CONCRETE))
  48. );
  49. }
  50. private void addTestRecipes() {
  51. ItemStack[] matrix = new ItemStack[9];
  52. matrix[0] = new ItemStack(Material.WHITE_CONCRETE);
  53. matrix[1] = new ItemStack(Material.WHITE_CONCRETE);
  54. matrix[2] = new ItemStack(Material.WHITE_CONCRETE);
  55. matrix[3] = new ItemStack(Material.WHITE_CONCRETE);
  56. matrix[4] = new ItemStack(Material.WHITE_CONCRETE);
  57. matrix[5] = new ItemStack(Material.WHITE_CONCRETE);
  58. matrix[6] = new ItemStack(Material.WHITE_CONCRETE);
  59. matrix[7] = new ItemStack(Material.WHITE_CONCRETE);
  60. matrix[8] = new ItemStack(Material.WHITE_CONCRETE);
  61. recipeManager.registerRecipe(
  62. new CraftingTableRecipe(new NamespacedKey(plugin, "test_recipe"),
  63. matrix, new ItemStack(Material.GREEN_CONCRETE))
  64. );
  65. }
  66. @Override
  67. public void onDisable() {
  68. if(recipeManager != null) {
  69. recipeManager.saveRecipes(FluxService.get(ConfigLoader.class));
  70. HandlerList.unregisterAll(recipeManager);
  71. }
  72. }
  73. }