diff --git a/pom.xml b/pom.xml index 2b97699..49c3a79 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 me.puyodead1 RPBookGUI - 2.9.5 + 2.9.6 RPBookGUI diff --git a/src/main/java/io/github/puyodead1/rpbookgui/Commands/BookGUICommand.java b/src/main/java/io/github/puyodead1/rpbookgui/Commands/BookGUICommand.java index 4805891..0d74115 100644 --- a/src/main/java/io/github/puyodead1/rpbookgui/Commands/BookGUICommand.java +++ b/src/main/java/io/github/puyodead1/rpbookgui/Commands/BookGUICommand.java @@ -48,7 +48,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St } } else if (args[0].equalsIgnoreCase("settings")) { if (player.hasPermission(rpbgConfig.getString("permissions.bookgui settings")) || player.isOp()) { - player.openInventory(Inventories.SettingsInv()); + player.openInventory(Inventories.Settings()); return true; } else { player.sendMessage(RPBookGUIUtils.ChatColor(rpbgConfig.getString("messages.no permission"))); diff --git a/src/main/java/io/github/puyodead1/rpbookgui/EnchantConstructor.java b/src/main/java/io/github/puyodead1/rpbookgui/EnchantConstructor.java new file mode 100644 index 0000000..541686d --- /dev/null +++ b/src/main/java/io/github/puyodead1/rpbookgui/EnchantConstructor.java @@ -0,0 +1,84 @@ +package io.github.puyodead1.rpbookgui; + +import java.util.HashMap; + +import org.bukkit.Bukkit; +import org.bukkit.inventory.ItemStack; + +import me.randomhashtags.randompackage.addons.CustomEnchant; +import me.randomhashtags.randompackage.addons.EnchantRarity; +import me.randomhashtags.randompackage.api.CustomEnchants; + +public class EnchantConstructor { + private CustomEnchant customEnchant; + private EnchantRarity enchantRarity; + private int enchantLevel; + private ItemStack revealItem; + private int success; + private int destroy; + + private static HashMap enchants = new HashMap(); + + public EnchantConstructor(CustomEnchant customEnchant, EnchantRarity enchantRarity, int enchantLevel, int success, int destroy) { + this.customEnchant = customEnchant; + this.enchantRarity = enchantRarity; + this.enchantLevel = enchantLevel; + this.revealItem = CustomEnchants.getCustomEnchants().getRevealedItem(customEnchant, enchantLevel, success, destroy, true, true); + this.success = success; + this.destroy = destroy; + + enchants.put(customEnchant.getIdentifier(), this); + + Bukkit.broadcastMessage("EnchantConstructor added: " + customEnchant.getIdentifier() + " " + enchantLevel); + } + + public CustomEnchant getCustomEnchant() { + return customEnchant; + } + + public void setCustomEnchant(CustomEnchant customEnchant) { + this.customEnchant = customEnchant; + } + + public EnchantRarity getEnchantRarity() { + return enchantRarity; + } + + public void setEnchantRarity(EnchantRarity enchantRarity) { + this.enchantRarity = enchantRarity; + } + + public int getEnchantLevel() { + return enchantLevel; + } + + public void setEnchantLevel(int enchantLevel) { + this.enchantLevel = enchantLevel; + } + + + public ItemStack getRevealItem() { + return revealItem; + } + + public int getSuccess() { + return success; + } + + public void setSuccess(int success) { + this.success = success; + } + + public int getDestroy() { + return destroy; + } + + public void setDestroy(int destroy) { + this.destroy = destroy; + } + + public static HashMap getEnchants() { + return enchants; + } + +} diff --git a/src/main/java/io/github/puyodead1/rpbookgui/Events/InventoryClick.java b/src/main/java/io/github/puyodead1/rpbookgui/Events/InventoryClick.java index 0dee70d..7091c46 100644 --- a/src/main/java/io/github/puyodead1/rpbookgui/Events/InventoryClick.java +++ b/src/main/java/io/github/puyodead1/rpbookgui/Events/InventoryClick.java @@ -2,6 +2,7 @@ import java.util.ArrayList; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -12,6 +13,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import io.github.puyodead1.rpbookgui.EnchantConstructor; import io.github.puyodead1.rpbookgui.Inventories; import io.github.puyodead1.rpbookgui.ItemStacks; import io.github.puyodead1.rpbookgui.RPBookGUI; @@ -22,7 +24,7 @@ import me.randomhashtags.randompackage.utils.universal.UMaterial; public class InventoryClick implements Listener { - + private static RandomPackageAPI rpapi = new RandomPackageAPI(); @EventHandler @@ -84,7 +86,7 @@ public void InventoryClickEvent(InventoryClickEvent e) { !RPBookGUI.getPlugin.getConfig().getBoolean("settings.keepinvopen")); player.closeInventory(); - player.openInventory(Inventories.SettingsInv()); + player.openInventory(Inventories.Settings()); } if (ci.getItemMeta().getDisplayName() .equals(ItemStacks.UsePermissionsSetting().clone().getItemMeta().getDisplayName())) { @@ -92,7 +94,7 @@ public void InventoryClickEvent(InventoryClickEvent e) { !RPBookGUI.getPlugin.getConfig().getBoolean("settings.usepermissions")); player.closeInventory(); - player.openInventory(Inventories.SettingsInv()); + player.openInventory(Inventories.Settings()); } } @@ -107,9 +109,10 @@ public void InventoryClickEvent(InventoryClickEvent e) { player.openInventory(Inventories.MainGUI()); } if (e.getCurrentItem().getType().equals(UMaterial.match("BOOK").getMaterial())) { - CustomEnchant ce = rpapi.valueOfCustomEnchant(ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); + CustomEnchant ce = rpapi.valueOfCustomEnchant( + ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); player.closeInventory(); - player.openInventory(Inventories.EnchantInv(ce)); + player.openInventory(Inventories.Enchant(ce)); } } @@ -124,9 +127,10 @@ public void InventoryClickEvent(InventoryClickEvent e) { player.openInventory(Inventories.MainGUI()); } if (e.getCurrentItem().getType().equals(UMaterial.match("BOOK").getMaterial())) { - CustomEnchant ce = rpapi.valueOfCustomEnchant(ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); + CustomEnchant ce = rpapi.valueOfCustomEnchant( + ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); player.closeInventory(); - player.openInventory(Inventories.EnchantInv(ce)); + player.openInventory(Inventories.Enchant(ce)); } } /* @@ -140,9 +144,10 @@ public void InventoryClickEvent(InventoryClickEvent e) { player.openInventory(Inventories.MainGUI()); } if (e.getCurrentItem().getType().equals(UMaterial.match("BOOK").getMaterial())) { - CustomEnchant ce = rpapi.valueOfCustomEnchant(ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); + CustomEnchant ce = rpapi.valueOfCustomEnchant( + ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); player.closeInventory(); - player.openInventory(Inventories.EnchantInv(ce)); + player.openInventory(Inventories.Enchant(ce)); } } @@ -157,9 +162,10 @@ public void InventoryClickEvent(InventoryClickEvent e) { player.openInventory(Inventories.MainGUI()); } if (e.getCurrentItem().getType().equals(UMaterial.match("BOOK").getMaterial())) { - CustomEnchant ce = rpapi.valueOfCustomEnchant(ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); + CustomEnchant ce = rpapi.valueOfCustomEnchant( + ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); player.closeInventory(); - player.openInventory(Inventories.EnchantInv(ce)); + player.openInventory(Inventories.Enchant(ce)); } } /* @@ -173,9 +179,10 @@ public void InventoryClickEvent(InventoryClickEvent e) { player.openInventory(Inventories.MainGUI()); } if (e.getCurrentItem().getType().equals(UMaterial.match("BOOK").getMaterial())) { - CustomEnchant ce = rpapi.valueOfCustomEnchant(ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); + CustomEnchant ce = rpapi.valueOfCustomEnchant( + ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); player.closeInventory(); - player.openInventory(Inventories.EnchantInv(ce)); + player.openInventory(Inventories.Enchant(ce)); } } @@ -190,9 +197,10 @@ public void InventoryClickEvent(InventoryClickEvent e) { player.openInventory(Inventories.MainGUI()); } if (e.getCurrentItem().getType().equals(UMaterial.match("BOOK").getMaterial())) { - CustomEnchant ce = rpapi.valueOfCustomEnchant(ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); + CustomEnchant ce = rpapi.valueOfCustomEnchant( + ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); player.closeInventory(); - player.openInventory(Inventories.EnchantInv(ce)); + player.openInventory(Inventories.Enchant(ce)); } } /* @@ -206,9 +214,10 @@ public void InventoryClickEvent(InventoryClickEvent e) { player.openInventory(Inventories.MainGUI()); } if (e.getCurrentItem().getType().equals(UMaterial.match("BOOK").getMaterial())) { - CustomEnchant ce = rpapi.valueOfCustomEnchant(ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); + CustomEnchant ce = rpapi.valueOfCustomEnchant( + ChatColor.stripColor(e.getCurrentItem().getItemMeta().getDisplayName())); player.closeInventory(); - player.openInventory(Inventories.EnchantInv(ce)); + player.openInventory(Inventories.Enchant(ce)); } } @@ -278,12 +287,22 @@ public void InventoryClickEvent(InventoryClickEvent e) { .replace("{NAME}", ci.getItemMeta().getDisplayName()) .replace("{ITEM}", player.getItemInHand().getType().name()))); } else { - player.getInventory().addItem(ci); - if (!RPBookGUI.getPlugin.getConfig().getBoolean("settings.keep inventory open")) - player.closeInventory(); - player.sendMessage(RPBookGUIUtils - .ChatColor(RPBookGUI.getPlugin.getConfig().getString("messages.added book") - .replace("{NAME}", ci.getItemMeta().getDisplayName()))); + + for(EnchantConstructor ec : EnchantConstructor.getEnchants().values()) { + if(ec.getRevealItem() != ci) { + Bukkit.broadcastMessage("Removing EnchantConstructor: " + ec.getCustomEnchant().getIdentifier() + " " + ec.getEnchantLevel()); + EnchantConstructor.getEnchants().remove(ec.getCustomEnchant().getIdentifier()); + } + } + + player.closeInventory(); + player.openInventory(Inventories.SuccessDestroySelection(ci)); +// player.getInventory().addItem(ci); +// if (!RPBookGUI.getPlugin.getConfig().getBoolean("settings.keep inventory open")) +// player.closeInventory(); +// player.sendMessage(RPBookGUIUtils +// .ChatColor(RPBookGUI.getPlugin.getConfig().getString("messages.added book") +// .replace("{NAME}", ci.getItemMeta().getDisplayName()))); } } } diff --git a/src/main/java/io/github/puyodead1/rpbookgui/Inventories.java b/src/main/java/io/github/puyodead1/rpbookgui/Inventories.java index 2ff2eb1..75cdc0a 100644 --- a/src/main/java/io/github/puyodead1/rpbookgui/Inventories.java +++ b/src/main/java/io/github/puyodead1/rpbookgui/Inventories.java @@ -19,6 +19,7 @@ import java.util.List; import org.bukkit.Bukkit; +import org.bukkit.Material; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; @@ -27,8 +28,6 @@ import me.randomhashtags.randompackage.addons.CustomEnchant; import me.randomhashtags.randompackage.addons.EnchantRarity; import me.randomhashtags.randompackage.api.CustomEnchants; -import me.randomhashtags.randompackage.utils.CustomEnchantUtils; -import me.randomhashtags.randompackage.utils.RPStorage; public class Inventories { @@ -300,21 +299,24 @@ public static Inventory HeroicEnchants(ItemStack itemApplyTo) { inv.setItem(53, ItemStacks.Back().clone()); return inv; } - - public static Inventory EnchantInv(CustomEnchant ce) { + + public static Inventory Enchant(CustomEnchant ce) { EnchantRarity rarity = rpapi.valueOfEnchantRarity(ce); Inventory inv = Bukkit.createInventory(null, 18, rarity.getNameColors() + ce.getName()); int x = 0; for (int i = 1; i < ce.getMaxLevel() + 1; i++) { ItemStack is = CustomEnchants.getCustomEnchants().getRevealedItem(ce, i, 100, 0, true, true).clone(); + new EnchantConstructor(ce, rarity, i, 0, 0); + Bukkit.broadcastMessage("EnchantConstructor size: " + EnchantConstructor.getEnchants().size()); inv.setItem(x, is); x++; } + Bukkit.broadcastMessage("Final EnchantConstructor size: " + EnchantConstructor.getEnchants().size()); inv.setItem(17, ItemStacks.Back().clone()); return inv; } - public static Inventory SettingsInv() { + public static Inventory Settings() { Inventory inv = Bukkit.createInventory(null, 36, "RPBookGUI Settings"); for (int i = 0; i < 10; i++) @@ -336,4 +338,25 @@ public static Inventory SettingsInv() { inv.setItem(22, ItemStacks.Back().clone()); return inv; } + + public static Inventory SuccessDestroySelection(ItemStack book) { + Inventory inv = Bukkit.createInventory(null, 54, "Success & Destry Configuration"); + CustomEnchant ce = rpapi.valueOfCustomEnchant(book); + // slot 10 - increase success + // slot 28 - decrease success + // slot 21 - book + + ItemStack addSuccess = new ItemStack(Material.GREEN_WOOL); + ItemStack removeSuccess = new ItemStack(Material.RED_WOOL); + + inv.setItem(10, addSuccess); +// inv.setItem(21, CustomEnchants.getCustomEnchants().getRevealedItem(ce, EnchantConstructor.getEnchants().get(ce.getName()).getEnchantLevel(), 0, 0, true, true)); + inv.setItem(28, removeSuccess); + + for(EnchantConstructor ec : EnchantConstructor.getEnchants().values()) { + Bukkit.broadcastMessage(ec.getCustomEnchant().getIdentifier() + " " + ec.getEnchantLevel()); + } + + return inv; + } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index a36ae81..f180709 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: RPBookGUI -version: 2.9.5 +version: 2.9.6 author: Puyodead1 main: io.github.puyodead1.rpbookgui.RPBookGUI depend: [RandomPackage]