diff --git a/src/main/java/com/tomff/beesplus/BeesPlus.java b/src/main/java/com/tomff/beesplus/BeesPlus.java index 283e0c5..d10a46f 100644 --- a/src/main/java/com/tomff/beesplus/BeesPlus.java +++ b/src/main/java/com/tomff/beesplus/BeesPlus.java @@ -73,8 +73,6 @@ public class BeesPlus extends JavaPlugin { customItemManager.registerCustomItem("protection_chestplate", new BeeProtectionChestplate()); customItemManager.registerCustomItem("protection_helmet", new BeeProtectionHelmet()); - customItemManager.registerRecipes(); - getServer().getPluginManager().registerEvents(new DamageHandler(this), this); } diff --git a/src/main/java/com/tomff/beesplus/core/items/CustomItem.java b/src/main/java/com/tomff/beesplus/core/items/CustomItem.java index f1eebf4..dbb04e2 100644 --- a/src/main/java/com/tomff/beesplus/core/items/CustomItem.java +++ b/src/main/java/com/tomff/beesplus/core/items/CustomItem.java @@ -9,13 +9,6 @@ public abstract class CustomItem { public abstract String[] getRecipe(); public abstract Map getIngredients(); - public abstract String getName(); - public abstract Material getMaterial(); - - public ItemStack getItem() { - return new ItemBuilder(getMaterial()) - .setName(getName()) - .build(); - } + public abstract ItemStack getResult(); } diff --git a/src/main/java/com/tomff/beesplus/core/items/CustomItemManager.java b/src/main/java/com/tomff/beesplus/core/items/CustomItemManager.java index 6b33370..d1a8bec 100644 --- a/src/main/java/com/tomff/beesplus/core/items/CustomItemManager.java +++ b/src/main/java/com/tomff/beesplus/core/items/CustomItemManager.java @@ -24,16 +24,12 @@ public class CustomItemManager { public void registerCustomItem(String id, CustomItem customItem) { customItems.put(id, customItem); - } - public void registerRecipes() { - customItems.forEach((id, customItem) -> { - NamespacedKey namespacedKey = new NamespacedKey(beesPlus, id); - ShapedRecipe recipe = new ShapedRecipe(namespacedKey, customItem.getItem()); - recipe.shape(customItem.getRecipe()); - customItem.getIngredients().forEach(recipe::setIngredient); + NamespacedKey namespacedKey = new NamespacedKey(beesPlus, id); + ShapedRecipe recipe = new ShapedRecipe(namespacedKey, customItem.getResult()); + recipe.shape(customItem.getRecipe()); + customItem.getIngredients().forEach(recipe::setIngredient); - Bukkit.addRecipe(recipe); - }); + Bukkit.addRecipe(recipe); } } diff --git a/src/main/java/com/tomff/beesplus/handlers/DamageHandler.java b/src/main/java/com/tomff/beesplus/handlers/DamageHandler.java index f8f9995..0d6517a 100644 --- a/src/main/java/com/tomff/beesplus/handlers/DamageHandler.java +++ b/src/main/java/com/tomff/beesplus/handlers/DamageHandler.java @@ -42,10 +42,10 @@ public class DamageHandler implements Listener { PlayerInventory playerInventory = player.getInventory(); if (Stream.of(playerInventory.getArmorContents()).allMatch(Objects::nonNull)) { - if (playerInventory.getHelmet().isSimilar(helmet.getItem()) && - playerInventory.getChestplate().isSimilar(chestplate.getItem()) && - playerInventory.getLeggings().isSimilar(leggings.getItem()) && - playerInventory.getBoots().isSimilar(boots.getItem())) { + if (playerInventory.getHelmet().isSimilar(helmet.getResult()) && + playerInventory.getChestplate().isSimilar(chestplate.getResult()) && + playerInventory.getLeggings().isSimilar(leggings.getResult()) && + playerInventory.getBoots().isSimilar(boots.getResult())) { event.setDamage(reduction * event.getDamage()); } diff --git a/src/main/java/com/tomff/beesplus/items/BeeProtectionBoots.java b/src/main/java/com/tomff/beesplus/items/BeeProtectionBoots.java index 8d9fb92..e77af44 100644 --- a/src/main/java/com/tomff/beesplus/items/BeeProtectionBoots.java +++ b/src/main/java/com/tomff/beesplus/items/BeeProtectionBoots.java @@ -1,8 +1,10 @@ package com.tomff.beesplus.items; import com.tomff.beesplus.core.items.CustomItem; +import com.tomff.beesplus.core.items.ItemBuilder; import com.tomff.beesplus.localization.Localization; import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; import java.util.HashMap; import java.util.Map; @@ -28,12 +30,9 @@ public class BeeProtectionBoots extends CustomItem { } @Override - public String getName() { - return Localization.get(Localization.BEE_PROTECTION_BOOTS); - } - - @Override - public Material getMaterial() { - return Material.CHAINMAIL_BOOTS; + public ItemStack getResult() { + return new ItemBuilder(Material.CHAINMAIL_BOOTS) + .setName(Localization.get(Localization.BEE_PROTECTION_BOOTS)) + .build(); } } diff --git a/src/main/java/com/tomff/beesplus/items/BeeProtectionChestplate.java b/src/main/java/com/tomff/beesplus/items/BeeProtectionChestplate.java index dfa106d..b88b90c 100644 --- a/src/main/java/com/tomff/beesplus/items/BeeProtectionChestplate.java +++ b/src/main/java/com/tomff/beesplus/items/BeeProtectionChestplate.java @@ -1,8 +1,10 @@ package com.tomff.beesplus.items; import com.tomff.beesplus.core.items.CustomItem; +import com.tomff.beesplus.core.items.ItemBuilder; import com.tomff.beesplus.localization.Localization; import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; import java.util.HashMap; import java.util.Map; @@ -28,12 +30,9 @@ public class BeeProtectionChestplate extends CustomItem { } @Override - public String getName() { - return Localization.get(Localization.BEE_PROTECTION_CHESTPLATE); - } - - @Override - public Material getMaterial() { - return Material.CHAINMAIL_CHESTPLATE; + public ItemStack getResult() { + return new ItemBuilder(Material.CHAINMAIL_CHESTPLATE) + .setName(Localization.get(Localization.BEE_PROTECTION_CHESTPLATE)) + .build(); } } diff --git a/src/main/java/com/tomff/beesplus/items/BeeProtectionHelmet.java b/src/main/java/com/tomff/beesplus/items/BeeProtectionHelmet.java index cd33229..9d1f446 100644 --- a/src/main/java/com/tomff/beesplus/items/BeeProtectionHelmet.java +++ b/src/main/java/com/tomff/beesplus/items/BeeProtectionHelmet.java @@ -1,8 +1,10 @@ package com.tomff.beesplus.items; import com.tomff.beesplus.core.items.CustomItem; +import com.tomff.beesplus.core.items.ItemBuilder; import com.tomff.beesplus.localization.Localization; import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; import java.util.HashMap; import java.util.Map; @@ -28,12 +30,9 @@ public class BeeProtectionHelmet extends CustomItem { } @Override - public String getName() { - return Localization.get(Localization.BEE_PROTECTION_HELMET); - } - - @Override - public Material getMaterial() { - return Material.CHAINMAIL_HELMET; + public ItemStack getResult() { + return new ItemBuilder(Material.CHAINMAIL_HELMET) + .setName(Localization.get(Localization.BEE_PROTECTION_HELMET)) + .build(); } } diff --git a/src/main/java/com/tomff/beesplus/items/BeeProtectionLeggings.java b/src/main/java/com/tomff/beesplus/items/BeeProtectionLeggings.java index 897d44d..dc5d439 100644 --- a/src/main/java/com/tomff/beesplus/items/BeeProtectionLeggings.java +++ b/src/main/java/com/tomff/beesplus/items/BeeProtectionLeggings.java @@ -1,8 +1,10 @@ package com.tomff.beesplus.items; import com.tomff.beesplus.core.items.CustomItem; +import com.tomff.beesplus.core.items.ItemBuilder; import com.tomff.beesplus.localization.Localization; import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; import java.util.HashMap; import java.util.Map; @@ -28,12 +30,9 @@ public class BeeProtectionLeggings extends CustomItem { } @Override - public String getName() { - return Localization.get(Localization.BEE_PROTECTION_LEGGINGS); - } - - @Override - public Material getMaterial() { - return Material.CHAINMAIL_LEGGINGS; + public ItemStack getResult() { + return new ItemBuilder(Material.CHAINMAIL_LEGGINGS) + .setName(Localization.get(Localization.BEE_PROTECTION_LEGGINGS)) + .build(); } }