From 52b3e3e76b69b31c85244b33dff8225e0a776987 Mon Sep 17 00:00:00 2001 From: Andre601 <11576465+Andre601@users.noreply.github.com> Date: Thu, 16 Dec 2021 01:51:59 +0100 Subject: [PATCH 1/8] Improve custom item handling --- pom.xml | 5 +- .../deepstorageplus/DeepStoragePlus.java | 2 +- .../deepstorageplus/dsu/StorageUtils.java | 33 +- .../dsu/listeners/IOListener.java | 4 +- .../dsu/listeners/InventoryListener.java | 43 +-- .../dsu/managers/DSUManager.java | 27 +- .../dsu/managers/SorterManager.java | 24 +- .../deepstorageplus/utils/ItemBuilder.java | 75 ++++ .../deepstorageplus/utils/ItemList.java | 324 ++++++++++++------ 9 files changed, 364 insertions(+), 173 deletions(-) create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/ItemBuilder.java diff --git a/pom.xml b/pom.xml index 8aef727..8018ebc 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ CustomRecipeAPI 1.0.0 system - C:\Users\ChrisWalker\Desktop\1.17server\plugins\CustomRecipeAPI-1.5.1.jar + D:\Users\Andre_601\Test-Server\plugins\CustomRecipeAPI-1.6.0.jar de.tr7zw @@ -59,9 +59,6 @@ org.apache.maven.plugins maven-jar-plugin 2.3.1 - - C:\Users\ChrisWalker\Desktop\1.17server\plugins - org.apache.maven.plugins diff --git a/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java b/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java index 4505664..2576727 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java +++ b/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java @@ -112,7 +112,7 @@ public void onEnable() { Metrics metrics = new Metrics(plugin, 6221); - System.out.println(prefix + ChatColor.GREEN + "DeepStoragePlus enabled!"); + getServer().getConsoleSender().sendMessage(prefix + ChatColor.GREEN + "DeepStoragePlus enabled!"); } @Override diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/StorageUtils.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/StorageUtils.java index ef30062..6135e9e 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/StorageUtils.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/StorageUtils.java @@ -85,27 +85,27 @@ public static boolean isDSU(Inventory inv) { for (ItemStack i : inv.getContents()) { if (i != null) { + // Check if we are in the DSU IO Configuration if (i.getType().equals(Material.TRIPWIRE_HOOK) - && i.hasItemMeta() + && i.getItemMeta() != null && i.getItemMeta().hasDisplayName() - && i.getItemMeta().getDisplayName().equals(ChatColor.BLUE.toString() + "Lock DSU")) { + && i.getItemMeta().getDisplayName().equals(ChatColor.BLUE + "Lock DSU")) { return false; } } } - int slots[] = {7, 16, 25, 34, 43, 52}; + int[] slots = {7, 16, 25, 34, 43, 52}; boolean isDSU = false; for (int i : slots) { - if (inv.getItem(i) != null && inv.getItem(i).equals(DSUManager.getDSUWall())) + ItemStack temp = inv.getItem(i); + + if (temp != null && temp.equals(DSUManager.getDSUWall())) isDSU = true; } - - if (!isDSU) - return false; - - return true; + + return isDSU; } public static boolean isSorter(Inventory inv) { @@ -115,24 +115,23 @@ public static boolean isSorter(Inventory inv) { if (inv.getType() != InventoryType.CHEST) return false; - int slots[] = {18, 19, 20, 21, 22, 23, 24, 25, 26}; + int[] slots = {18, 19, 20, 21, 22, 23, 24, 25, 26}; boolean isSorter = false; for (int i : slots) { - if (inv.getItem(i) != null && inv.getItem(i).equals(SorterManager.getSorterWall())) + ItemStack temp = inv.getItem(i); + + if (temp != null && temp.equals(SorterManager.getSorterWall())) isSorter = true; } - if (!isSorter) - return false; - - return true; + return isSorter; } /** * Returns the custom name of a chest or double chest, if either side has one. Prefers the left chest. - * @param block - * @return + * @param block The block to get the name from + * @return Optional containing the name of the block. */ public static Optional getChestCustomName(Block block) { Chest chest = (Chest) block.getState(); diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/IOListener.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/IOListener.java index 9a683d7..b27e894 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/IOListener.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/IOListener.java @@ -3,14 +3,12 @@ import me.darkolythe.deepstorageplus.DeepStoragePlus; import me.darkolythe.deepstorageplus.dsu.StorageUtils; import me.darkolythe.deepstorageplus.dsu.managers.DSUManager; -import me.darkolythe.deepstorageplus.dsu.managers.SorterManager; import me.darkolythe.deepstorageplus.utils.LanguageManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.Chest; -import org.bukkit.block.Container; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -39,7 +37,7 @@ public class IOListener implements Listener { public IOListener(DeepStoragePlus plugin) { this.main = plugin; // set it equal to an instance of main } - + @EventHandler(priority = EventPriority.HIGHEST) private void onDSUClick(PlayerInteractEvent event) { if (event.getAction() == Action.RIGHT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_AIR) { diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java index 62a3d55..1f15b2f 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java @@ -4,6 +4,7 @@ import me.darkolythe.deepstorageplus.dsu.StorageUtils; import me.darkolythe.deepstorageplus.dsu.managers.DSUManager; import me.darkolythe.deepstorageplus.dsu.managers.SorterManager; +import me.darkolythe.deepstorageplus.utils.ItemList; import me.darkolythe.deepstorageplus.utils.LanguageManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -21,6 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; import static me.darkolythe.deepstorageplus.dsu.StorageUtils.matToString; @@ -75,17 +77,17 @@ private void onStorageInteract(InventoryClickEvent event) { if (event.getSlot() % 9 == 8) { //rightmost column if (event.getSlot() != 53) { //if containers clicked if (cursor != null && cursor.getType() != Material.AIR) { //if putting container in - if (item != null && item.getType() == Material.WHITE_STAINED_GLASS_PANE) { + if (item != null && ItemList.isDSPItem(item, ItemList.STORAGE_SLOT_MODEL_ID)) { event.setCancelled(true); if (cursor.hasItemMeta()) { //if putting a Storage Container in the dsu - if (cursor.getItemMeta().getDisplayName().contains(LanguageManager.getValue("storagecontainer")) && cursor.getItemMeta().isUnbreakable()) { + if (ItemList.isStorageContainerItem(cursor)) { inv.setItem(event.getSlot(), cursor); cursor.setAmount(0); main.dsuupdatemanager.updateItems(inv, null); } } } else { //if trying to take placeholder out - if (!(cursor.hasItemMeta() && cursor.getItemMeta().getDisplayName().contains(LanguageManager.getValue("storagecontainer")) && cursor.getItemMeta().isUnbreakable())) { + if (!ItemList.isStorageContainerItem(cursor)) { event.setCancelled(true); } else if (event.isShiftClick()) { event.setCancelled(true); @@ -93,7 +95,7 @@ private void onStorageInteract(InventoryClickEvent event) { } } else { //if taking container out event.setCancelled(true); - if (item != null && item.getType() != Material.WHITE_STAINED_GLASS_PANE) { + if (ItemList.isStorageContainerItem(item)) { player.setItemOnCursor(item.clone()); inv.setItem(event.getSlot(), DSUManager.getEmptyBlock()); main.dsuupdatemanager.updateItems(inv, null); @@ -121,7 +123,7 @@ private void onStorageInteract(InventoryClickEvent event) { main.dsuupdatemanager.updateItems(inv, mat); if (cursor.getAmount() > 0 && isvaliditem) { - player.sendMessage(DeepStoragePlus.prefix + ChatColor.RED.toString() + LanguageManager.getValue("containersfull")); + player.sendMessage(DeepStoragePlus.prefix + ChatColor.RED + LanguageManager.getValue("containersfull")); } } else if (cursor == null || cursor.getType() == Material.AIR && item != null) { //taking item out of dsu if (event.getClick() != ClickType.DOUBLE_CLICK) { @@ -131,7 +133,7 @@ private void onStorageInteract(InventoryClickEvent event) { int amtTaken = DSUManager.takeItems(item.getType(), inv, item.getType().getMaxStackSize()); player.getInventory().addItem(new ItemStack(item.getType(), amtTaken)); } else { - player.sendMessage(DeepStoragePlus.prefix + ChatColor.RED.toString() + LanguageManager.getValue("nomorespace")); + player.sendMessage(DeepStoragePlus.prefix + ChatColor.RED + LanguageManager.getValue("nomorespace")); } } else { int amtTaken = DSUManager.takeItems(item.getType(), inv, item.getType().getMaxStackSize()); @@ -157,15 +159,15 @@ private void onStorageInteract(InventoryClickEvent event) { if (event.getClickedInventory() != player.getInventory()) { if (event.getSlot() > 26) { // link module field if (cursor != null && cursor.getType() != Material.AIR) { //if putting container in - if (item != null && item.getType() == Material.WHITE_STAINED_GLASS_PANE) { + if (ItemList.isDSPItem(item, ItemList.LINK_SLOT_MODEL_ID)) { event.setCancelled(true); //if putting a link module into the sorter - if (cursor.hasItemMeta() && cursor.getItemMeta().getDisplayName().contains(LanguageManager.getValue("linkmodule")) && cursor.getItemMeta().isUnbreakable()) { + if (ItemList.isDSPItem(cursor, ItemList.LINK_MODULE_MODEL_ID)) { inv.setItem(event.getSlot(), cursor); cursor.setAmount(0); } } else { //if trying to take placeholder out - if (!(cursor.hasItemMeta() && cursor.getItemMeta().getDisplayName().contains(LanguageManager.getValue("linkmodule")) && cursor.getItemMeta().isUnbreakable())) { + if (!ItemList.isDSPItem(cursor, ItemList.LINK_MODULE_MODEL_ID)) { event.setCancelled(true); } else if (event.isShiftClick()) { event.setCancelled(true); @@ -173,9 +175,9 @@ private void onStorageInteract(InventoryClickEvent event) { } } else { //if taking link module out event.setCancelled(true); - if (item != null && item.getType() != Material.WHITE_STAINED_GLASS_PANE) { + if (ItemList.isDSPItem(item, ItemList.LINK_MODULE_MODEL_ID)) { player.setItemOnCursor(item.clone()); - inv.setItem(event.getSlot(), DSUManager.getEmptyBlock()); + inv.setItem(event.getSlot(), SorterManager.getEmptyBlock()); } } } else if (event.getSlot() > 17 && event.getSlot() < 27) { //walls @@ -194,7 +196,7 @@ private void onStorageInteract(InventoryClickEvent event) { } } - } else if (event.getView().getTitle().equals(ChatColor.BLUE.toString() + ChatColor.BOLD.toString() + LanguageManager.getValue("dsuioconfig"))) { + } else if (event.getView().getTitle().equals(ChatColor.BLUE + ChatColor.BOLD.toString() + LanguageManager.getValue("dsuioconfig"))) { event.setCancelled(true); if (event.getSlot() == 8 || event.getSlot() == 17) { startSelection(event.getSlot(), inv); @@ -202,7 +204,8 @@ private void onStorageInteract(InventoryClickEvent event) { if (event.getSlot() % 9 != 8 && event.getSlot() % 9 != 7) { if (item != null) { for (int i = 0; i < inv.getContents().length; i++) { - if (inv.getItem(i) != null && inv.getItem(i).getEnchantments().size() > 0) { + ItemStack temp = inv.getItem(i); + if (temp != null && temp.getEnchantments().size() > 0) { //If the item clicked is one of the DSU items to choose an IO item ItemStack newitem = item.clone(); ItemMeta itemmeta = newitem.getItemMeta(); @@ -211,7 +214,7 @@ private void onStorageInteract(InventoryClickEvent event) { } else { itemmeta.setDisplayName(ChatColor.GRAY + LanguageManager.getValue("output") + ": " + ChatColor.GREEN + matToString(newitem.getType())); } - itemmeta.setLore(Arrays.asList(ChatColor.GRAY + LanguageManager.getValue("clicktoclear"))); + itemmeta.setLore(Collections.singletonList(ChatColor.GRAY + LanguageManager.getValue("clicktoclear"))); newitem.setItemMeta(itemmeta); inv.setItem(i, newitem); } @@ -284,9 +287,9 @@ private void onInventoryDrag(InventoryDragEvent event) { private void onInventoryClose(InventoryCloseEvent event) { if (event.getPlayer() instanceof Player) { Player player = (Player) event.getPlayer(); - if (event.getView().getTitle().equals(ChatColor.BLUE.toString() + ChatColor.BOLD.toString() + LanguageManager.getValue("dsuioconfig"))) { - Container DSUContainer = DeepStoragePlus.openDSU.get(player.getUniqueId()); - Inventory DSU = DSUContainer.getInventory(); + if (event.getView().getTitle().equals(ChatColor.BLUE + ChatColor.BOLD.toString() + LanguageManager.getValue("dsuioconfig"))) { + Container dsuContainer = DeepStoragePlus.openDSU.get(player.getUniqueId()); + Inventory dsu = dsuContainer.getInventory(); Inventory IOInv = event.getInventory(); ItemStack input = IOInv.getItem(8); @@ -294,7 +297,7 @@ private void onInventoryClose(InventoryCloseEvent event) { ItemStack sorting = IOInv.getItem(26); ItemStack lock = IOInv.getItem(53); - int speedUpgrade = getSpeedUpgrade(DSU.getItem(53)); + int speedUpgrade = getSpeedUpgrade(dsu.getItem(53)); List lore = new ArrayList<>(); @@ -324,7 +327,7 @@ private void onInventoryClose(InventoryCloseEvent event) { lore.add(ChatColor.GREEN + LanguageManager.getValue("unlocked")); } - ItemStack i = DSU.getItem(53); + ItemStack i = dsu.getItem(53); ItemMeta m = i.getItemMeta(); m.setLore(lore); i.setItemMeta(m); @@ -334,7 +337,7 @@ private void onInventoryClose(InventoryCloseEvent event) { @Override public void run() { if (DeepStoragePlus.gettingInput.containsKey(player.getUniqueId()) && !DeepStoragePlus.gettingInput.get(player.getUniqueId())) { - player.openInventory(DSU); + player.openInventory(dsu); } } }, 1L); diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/DSUManager.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/DSUManager.java index 20a721f..ed1debc 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/DSUManager.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/DSUManager.java @@ -2,6 +2,8 @@ import de.tr7zw.changeme.nbtapi.NBTItem; import me.darkolythe.deepstorageplus.DeepStoragePlus; +import me.darkolythe.deepstorageplus.utils.ItemBuilder; +import me.darkolythe.deepstorageplus.utils.ItemList; import me.darkolythe.deepstorageplus.utils.LanguageManager; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -30,7 +32,7 @@ public void addItemToDSU(ItemStack item, Player player) { boolean isvaliditem = addToDSU(item, player.getOpenInventory().getTopInventory(), player); //try to add item to dsu main.dsuupdatemanager.updateItems(player.getOpenInventory().getTopInventory(), mat); if (item.getAmount() > 0 && isvaliditem) { - player.sendMessage(DeepStoragePlus.prefix + ChatColor.RED.toString() + LanguageManager.getValue("containersfull")); + player.sendMessage(DeepStoragePlus.prefix + ChatColor.RED + LanguageManager.getValue("containersfull")); } } @@ -87,24 +89,23 @@ public static ItemStack createIOItem(Player player) { public static ItemStack getDSUWall() { if (dsuWall != null) return dsuWall; - ItemStack border = new ItemStack(Material.BLACK_STAINED_GLASS_PANE); - ItemMeta bordermeta = border.getItemMeta(); - bordermeta.setDisplayName(ChatColor.DARK_GRAY + LanguageManager.getValue("dsuwalls")); - border.setItemMeta(bordermeta); - - return dsuWall = border; + + return dsuWall = new ItemBuilder(Material.PAPER) + .setModelData(20002) + .setName(ChatColor.DARK_GRAY + LanguageManager.getValue("dsuwalls")) + .setItemMeta() + .getItem(); } /* Create an Empty Block item to fill the dsu Inventory */ public static ItemStack getEmptyBlock() { - ItemStack storage = new ItemStack(Material.WHITE_STAINED_GLASS_PANE); - ItemMeta storagemeta = storage.getItemMeta(); - storagemeta.setDisplayName(ChatColor.YELLOW + LanguageManager.getValue("emptystorageblock")); - storage.setItemMeta(storagemeta); - - return storage; + return new ItemBuilder(Material.PAPER) + .setModelData(20005) + .setName(ChatColor.YELLOW + LanguageManager.getValue("emptystorageblock")) + .setItemMeta() + .getItem(); } /* diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/SorterManager.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/SorterManager.java index 014587f..4efd4c8 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/SorterManager.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/SorterManager.java @@ -2,6 +2,7 @@ import me.darkolythe.deepstorageplus.DeepStoragePlus; import me.darkolythe.deepstorageplus.dsu.StorageUtils; +import me.darkolythe.deepstorageplus.utils.ItemBuilder; import me.darkolythe.deepstorageplus.utils.ItemList; import me.darkolythe.deepstorageplus.utils.LanguageManager; import org.bukkit.Bukkit; @@ -48,24 +49,23 @@ public static void verifyInventory(Inventory inv, Player player) { public static ItemStack getSorterWall() { if (sorterWall != null) return sorterWall; - ItemStack border = new ItemStack(Material.BLACK_STAINED_GLASS_PANE); - ItemMeta bordermeta = border.getItemMeta(); - bordermeta.setDisplayName(ChatColor.DARK_GRAY + LanguageManager.getValue("sorterwalls")); - border.setItemMeta(bordermeta); - - return sorterWall = border; + + return sorterWall = new ItemBuilder(Material.PAPER) + .setModelData(20002) + .setName(ChatColor.DARK_GRAY + LanguageManager.getValue("sorterwalls")) + .setItemMeta() + .getItem(); } /* Create an Empty Block item to fill the dsu Inventory */ public static ItemStack getEmptyBlock() { - ItemStack storage = new ItemStack(Material.WHITE_STAINED_GLASS_PANE); - ItemMeta storagemeta = storage.getItemMeta(); - storagemeta.setDisplayName(ChatColor.YELLOW + LanguageManager.getValue("emptysorterblock")); - storage.setItemMeta(storagemeta); - - return storage; + return new ItemBuilder(Material.PAPER) + .setModelData(20004) + .setName(ChatColor.YELLOW + LanguageManager.getValue("emptysorterblock")) + .setItemMeta() + .getItem(); } diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/ItemBuilder.java b/src/main/java/me/darkolythe/deepstorageplus/utils/ItemBuilder.java new file mode 100644 index 0000000..e620d13 --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/ItemBuilder.java @@ -0,0 +1,75 @@ +package me.darkolythe.deepstorageplus.utils; + +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.ArrayList; +import java.util.List; + +public class ItemBuilder { + + private final ItemStack item; + private final ItemMeta meta; + + public ItemBuilder(Material material) { + this.item = new ItemStack(material); + this.meta = item.getItemMeta(); + } + + public ItemBuilder setName(String name) { + meta.setDisplayName(name); + return this; + } + + public ItemBuilder setLore(int maxSize) { + List lore = new ArrayList<>(); + + lore.add(ChatColor.GREEN + LanguageManager.getValue("currentstorage") + ": " + 0 + "/" + maxSize); + lore.add(ChatColor.GREEN + LanguageManager.getValue("currenttypes") + ": " + 0 + "/" + 7); + + for (int i = 0; i < 7; i++) { + lore.add(ChatColor.GRAY + " - " + LanguageManager.getValue("empty")); + } + + this.setLore(lore); + return this; + } + + public ItemBuilder setLore(List lore) { + meta.setLore(lore); + return this; + } + + public ItemBuilder setModelData(int modelData) { + meta.setCustomModelData(modelData); + return this; + } + + public ItemBuilder setUnbreakable() { + meta.setUnbreakable(true); + return this; + } + + public ItemBuilder setEnchanted() { + item.addUnsafeEnchantment(Enchantment.DURABILITY, 1); + return this; + } + + public ItemBuilder setFlags(ItemFlag... flags) { + meta.addItemFlags(flags); + return this; + } + + public ItemBuilder setItemMeta() { + item.setItemMeta(meta); + return this; + } + + public ItemStack getItem() { + return item; + } +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java b/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java index 1c91388..4dd57a9 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java @@ -16,6 +16,29 @@ public class ItemList { private DeepStoragePlus main; + + public static final int SORTER_WRENCH_MODEL_ID = 20000; + public static final int STORAGE_WRENCH_MODEL_ID = 20001; + public static final int GUI_BACKGROUND_MODEL_ID = 20002; + public static final int LINK_MODULE_MODEL_ID = 20003; + public static final int LINK_SLOT_MODEL_ID = 20004; + public static final int STORAGE_SLOT_MODEL_ID = 20005; + public static final int RECEIVER_MODEL_ID = 20006; + public static final int TERMINAL_MODEL_ID = 20007; + + public static final int STORAGE_CELL_1K_MODEL_ID = 20008; + public static final int STORAGE_CELL_4K_MODEL_ID = 20009; + public static final int STORAGE_CELL_16K_MODEL_ID = 20010; + public static final int STORAGE_CELL_64K_MODEL_ID = 20011; + public static final int STORAGE_CELL_256K_MODEL_ID = 20012; + public static final int STORAGE_CELL_1M_MODEL_ID = 20013; + + public static final int STORAGE_CONTAINER_1K_MODEL_ID = 20014; + public static final int STORAGE_CONTAINER_4K_MODEL_ID = 20015; + public static final int STORAGE_CONTAINER_16K_MODEL_ID = 20016; + public static final int STORAGE_CONTAINER_64K_MODEL_ID = 20017; + public static final int STORAGE_CONTAINER_256K_MODEL_ID = 20018; + public static final int STORAGE_CONTAINER_1M_MODEL_ID = 20019; public ItemStack storageCell1K; public ItemStack storageCell4K; @@ -38,50 +61,140 @@ public class ItemList { public ItemStack linkModule; public Map itemListMap = new HashMap<>(); + private static final List storageContainerIds = new ArrayList<>(); public ItemList(DeepStoragePlus plugin) { this.main = plugin; // set it equal to an instance of main - // Item Definitions - this.storageCell1K = createStorageCell(15, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecell") + " " + ChatColor.GRAY.toString() + ChatColor.BOLD.toString() + "1K"); - - this.storageCell4K = createStorageCell(30, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecell") + " " + ChatColor.WHITE.toString() + ChatColor.BOLD.toString() + "4K"); - - this.storageCell16K = createStorageCell(40, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecell") + " " + ChatColor.YELLOW.toString() + ChatColor.BOLD.toString() + "16K"); - - this.storageCell64K = createStorageCell(53, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecell") + " " + ChatColor.GREEN.toString() + ChatColor.BOLD.toString() + "64K"); - - this.storageCell256K = createStorageCell(66, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecell") + " " + ChatColor.BLUE.toString() + ChatColor.BOLD.toString() + "256K"); - - this.storageCell1M = createStorageCell(10, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecell") + " " + ChatColor.LIGHT_PURPLE.toString() + ChatColor.BOLD.toString() + "1M"); - - this.storageContainer1K = createStorageCell(79, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecontainer") + " " + ChatColor.GRAY.toString() + ChatColor.BOLD.toString() + "1K"); - createLore(storageContainer1K, getStorageMaxConfig("1kmax")); - - this.storageContainer4K = createStorageCell(92, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecontainer") + " " + ChatColor.WHITE.toString() + ChatColor.BOLD.toString() + "4K"); - createLore(storageContainer4K, getStorageMaxConfig("4kmax")); - - this.storageContainer16K = createStorageCell(105, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecontainer") + " " + ChatColor.YELLOW.toString() + ChatColor.BOLD.toString() + "16K"); - createLore(storageContainer16K, getStorageMaxConfig("16kmax")); - - this.storageContainer64K = createStorageCell(118, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecontainer") + " " + ChatColor.GREEN.toString() + ChatColor.BOLD.toString() + "64K"); - createLore(storageContainer64K, getStorageMaxConfig("64kmax")); - - this.storageContainer256K = createStorageCell(130, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecontainer") + " " + ChatColor.BLUE.toString() + ChatColor.BOLD.toString() + "256K"); - createLore(storageContainer256K, this.getStorageMaxConfig("256kmax")); - - this.storageContainer1M = createStorageCell(20, ChatColor.WHITE.toString() + LanguageManager.getValue("storagecontainer") + " " + ChatColor.LIGHT_PURPLE.toString() + ChatColor.BOLD.toString() + "1M"); - createLore(storageContainer1M, getStorageMaxConfig("1mmax")); - - this.creativeStorageContainer = createStorageCell(20, ChatColor.DARK_PURPLE.toString() + LanguageManager.getValue("creativestoragecontainer")); - createLore(creativeStorageContainer, Integer.MAX_VALUE); - + // Storage Cells + this.storageCell1K = new ItemBuilder(Material.PAPER) + .setModelData(STORAGE_CELL_1K_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.GRAY, "1K")) + .setItemMeta() + .getItem(); + + this.storageCell4K = new ItemBuilder(Material.PAPER) + .setModelData(STORAGE_CELL_4K_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.WHITE, "4K")) + .setItemMeta() + .getItem(); + + this.storageCell16K = new ItemBuilder(Material.PAPER) + .setModelData(STORAGE_CELL_16K_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.YELLOW, "16K")) + .setItemMeta() + .getItem(); + + this.storageCell64K = new ItemBuilder(Material.PAPER) + .setModelData(STORAGE_CELL_64K_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.GREEN, "64K")) + .setItemMeta() + .getItem(); + + this.storageCell256K = new ItemBuilder(Material.PAPER) + .setModelData(STORAGE_CELL_256K_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.BLUE, "256K")) + .setItemMeta() + .getItem(); + + this.storageCell1M = new ItemBuilder(Material.PAPER) + .setModelData(STORAGE_CELL_1M_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.LIGHT_PURPLE, "1M")) + .setItemMeta() + .getItem(); + + // Storage Containers + this.storageContainer1K = new ItemBuilder(Material.GOLDEN_AXE) + .setModelData(STORAGE_CONTAINER_1K_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.GRAY, "1K")) + .setLore(getStorageMaxConfig("1kmax")) + .setUnbreakable() + .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) + .setItemMeta() + .getItem(); + + this.storageContainer4K = new ItemBuilder(Material.GOLDEN_AXE) + .setModelData(STORAGE_CONTAINER_4K_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.WHITE, "4K")) + .setLore(getStorageMaxConfig("4kmax")) + .setUnbreakable() + .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) + .setItemMeta() + .getItem(); + + this.storageContainer16K = new ItemBuilder(Material.GOLDEN_AXE) + .setModelData(STORAGE_CONTAINER_16K_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.YELLOW, "16K")) + .setLore(getStorageMaxConfig("16kmax")) + .setUnbreakable() + .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) + .setItemMeta() + .getItem(); + + this.storageContainer64K = new ItemBuilder(Material.GOLDEN_AXE) + .setModelData(STORAGE_CONTAINER_64K_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.GREEN, "64K")) + .setLore(getStorageMaxConfig("64kmax")) + .setUnbreakable() + .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) + .setItemMeta() + .getItem(); + + this.storageContainer256K = new ItemBuilder(Material.GOLDEN_AXE) + .setModelData(STORAGE_CONTAINER_256K_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.BLUE, "256K")) + .setLore(getStorageMaxConfig("256kmax")) + .setUnbreakable() + .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) + .setItemMeta() + .getItem(); + + this.storageContainer1M = new ItemBuilder(Material.GOLDEN_AXE) + .setModelData(STORAGE_CONTAINER_1M_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.LIGHT_PURPLE, "1M")) + .setLore(getStorageMaxConfig("1mmax")) + .setUnbreakable() + .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) + .setItemMeta() + .getItem(); + + this.creativeStorageContainer = new ItemBuilder(Material.GOLDEN_AXE) + .setModelData(STORAGE_CONTAINER_1M_MODEL_ID) + .setName(getStorageCellName(ChatColor.DARK_PURPLE, "creativestoragecontainer", ChatColor.GRAY, "")) + .setLore(Integer.MAX_VALUE) + .setUnbreakable() + .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) + .setItemMeta() + .getItem(); + + // Wrenches this.storageWrench = createStorageWrench(); + this.sorterWrench = createSorterWrench(); + + // Link Module, Wireless Receiver and Wireless Terminal this.linkModule = createLinkModule(); - this.receiver = createReceiver(); - this.terminal = createTerminal(); + + this.receiver = new ItemBuilder(Material.PAPER) + .setModelData(RECEIVER_MODEL_ID) + .setName(ChatColor.AQUA + LanguageManager.getValue("receiver")) + .setItemMeta() + .getItem(); + + this.terminal = new ItemBuilder(Material.PAPER) + .setModelData(TERMINAL_MODEL_ID) + .setName(ChatColor.AQUA + LanguageManager.getValue("terminal")) + .setLore(Arrays.asList( + ChatColor.GRAY + "---------------------", + ChatColor.RED + ChatColor.BOLD.toString() + LanguageManager.getValue("unlinked"), + ChatColor.GRAY + LanguageManager.getValue("clicktolink"), + ChatColor.GRAY + "---------------------", + ChatColor.AQUA + LanguageManager.getValue("terminal") + )) + .setItemMeta() + .getItem(); + this.speedUpgrade = createSpeedUpgrade(); itemListMap.put("storage_cell_1k", storageCell1K); @@ -103,6 +216,13 @@ public ItemList(DeepStoragePlus plugin) { itemListMap.put("terminal", terminal); itemListMap.put("speed_upgrade", speedUpgrade); itemListMap.put("link_module", linkModule); + + storageContainerIds.add(STORAGE_CONTAINER_1K_MODEL_ID); + storageContainerIds.add(STORAGE_CONTAINER_4K_MODEL_ID); + storageContainerIds.add(STORAGE_CONTAINER_16K_MODEL_ID); + storageContainerIds.add(STORAGE_CONTAINER_64K_MODEL_ID); + storageContainerIds.add(STORAGE_CONTAINER_256K_MODEL_ID); + storageContainerIds.add(STORAGE_CONTAINER_1M_MODEL_ID); } // Helper methods @@ -116,86 +236,73 @@ public Optional getItem(String itemName) { } return Optional.ofNullable(item); } - - private int getStorageMaxConfig(String size) { - if (main.getConfig().getBoolean("countinstacks")) { - return main.getConfig().getInt(size) * 1024 * 64; + + public static boolean isStorageContainerItem(ItemStack item) { + if (item == null) { + return false; } - return main.getConfig().getInt(size) * 1024; - } - - private static ItemStack createStorageCell(int durability, String name) { - ItemStack storageCell = new ItemStack(Material.STONE_AXE); - ItemMeta storageCellMeta = storageCell.getItemMeta(); - storageCellMeta.setDisplayName(name); - storageCellMeta.setUnbreakable(true); - storageCellMeta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE); - storageCellMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); - storageCell.setItemMeta(storageCellMeta); - storageCell.setDurability((short) durability); - - return storageCell; + + if (item.getItemMeta() == null || !item.hasItemMeta()) { + return false; + } + + return storageContainerIds.contains(item.getItemMeta().getCustomModelData()); } - - private static void createLore(ItemStack container, int storageMax) { - int maxTypes = 7; - List lore = new ArrayList<>(); - - ItemMeta meta = container.getItemMeta(); - lore.add(ChatColor.GREEN + LanguageManager.getValue("currentstorage") + ": " + 0 + "/" + storageMax); - - lore.add(ChatColor.GREEN + LanguageManager.getValue("currenttypes") + ": " + 0 + "/" + maxTypes); - - for (int i = 0; i < maxTypes; i++) { - lore.add(ChatColor.GRAY + " - " + LanguageManager.getValue("empty")); + + public static boolean isDSPItem(ItemStack item, int modelId) { + if (item == null) { + return false; } - - meta.setLore(lore); - container.setItemMeta(meta); + + if (item.getItemMeta() == null || !item.hasItemMeta()) { + return false; + } + + return item.getItemMeta().getCustomModelData() == modelId; } public static ItemStack createStorageWrench() { - ItemStack storageWrench = createStorageCell(130, ChatColor.AQUA.toString() + LanguageManager.getValue("storageloader")); - storageWrench.setType(Material.STONE_SHOVEL); - ItemMeta wrenchmeta = storageWrench.getItemMeta(); - wrenchmeta.setLore(Arrays.asList(ChatColor.GRAY + LanguageManager.getValue("clickempty"), - ChatColor.GRAY + LanguageManager.getValue("tocreatedsu"), "", ChatColor.GRAY + LanguageManager.getValue("onetimeuse"))); - storageWrench.setItemMeta(wrenchmeta); - - return storageWrench; + return new ItemBuilder(Material.PAPER) + .setModelData(STORAGE_WRENCH_MODEL_ID) + .setName(ChatColor.AQUA + LanguageManager.getValue("storageloader")) + .setLore(Arrays.asList( + ChatColor.GRAY + LanguageManager.getValue("clickempty"), + ChatColor.GRAY + LanguageManager.getValue("tocreatedsu"), + "", + ChatColor.GRAY + LanguageManager.getValue("onetimeuse") + )) + .setItemMeta() + .getItem(); } public static ItemStack createSorterWrench() { - ItemStack sorterWrench = createStorageWrench(); - sorterWrench.setDurability((short)105); - ItemMeta wrenchmeta = sorterWrench.getItemMeta(); - wrenchmeta.setDisplayName(ChatColor.AQUA.toString() + LanguageManager.getValue("sorterloader")); - sorterWrench.setItemMeta(wrenchmeta); - - return sorterWrench; + return new ItemBuilder(Material.PAPER) + .setModelData(SORTER_WRENCH_MODEL_ID) + .setName(ChatColor.AQUA + LanguageManager.getValue("sorterloader")) + .setItemMeta() + .getItem(); } public static ItemStack createLinkModule() { - ItemStack linkModule = createStorageCell(99, ChatColor.AQUA.toString() + LanguageManager.getValue("linkmodule")); - linkModule.setType(Material.STONE_SHOVEL); - ItemMeta wrenchmeta = linkModule.getItemMeta(); - wrenchmeta.setLore(Arrays.asList(ChatColor.GRAY + "Click DSU", - ChatColor.GRAY + "To save DSU coordinates to this link module")); - linkModule.setItemMeta(wrenchmeta); - - return linkModule; + return new ItemBuilder(Material.PAPER) + .setModelData(LINK_MODULE_MODEL_ID) + .setName(ChatColor.AQUA + LanguageManager.getValue("linkmodule")) + .setLore(Arrays.asList( + ChatColor.GRAY + "Click DSU to save", + ChatColor.GRAY + "DSU coordinates to this link module." + )) + .setItemMeta() + .getItem(); } public static ItemStack createSpeedUpgrade() { - ItemStack item = new ItemStack(Material.GLOWSTONE_DUST); - ItemMeta meta = item.getItemMeta(); - meta.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD.toString() + LanguageManager.getValue("ioupgrade")); - meta.setLore(Arrays.asList(ChatColor.GRAY + LanguageManager.getValue("clicktoupgrade"))); - meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); - item.setItemMeta(meta); - item.addUnsafeEnchantment(Enchantment.DURABILITY, 1); - - return item; + return new ItemBuilder(Material.GLOWSTONE_DUST) + .setName(ChatColor.WHITE + ChatColor.BOLD.toString() + LanguageManager.getValue("ioupgrade")) + .setLore(Collections.singletonList(ChatColor.GRAY + LanguageManager.getValue("clicktoupgrade"))) + .setFlags(ItemFlag.HIDE_ENCHANTS) + .setItemMeta() + .setEnchanted() + .getItem(); } /** @@ -203,11 +310,22 @@ public static ItemStack createSpeedUpgrade() { * @return true if the items are similar */ public static boolean compareItem(ItemStack item1, ItemStack item2) { - if (!item1.hasItemMeta() || !item2.hasItemMeta()) { + if (item1.getItemMeta() == null || !item1.hasItemMeta() || item2.getItemMeta() == null || !item2.hasItemMeta()) { return false; } return item1.getItemMeta().getDisplayName().equals(item2.getItemMeta().getDisplayName()) - && item1.getItemMeta().isUnbreakable() == item2.getItemMeta().isUnbreakable(); + && item1.getItemMeta().getCustomModelData() == item2.getItemMeta().getCustomModelData(); + } + + private int getStorageMaxConfig(String size) { + if (main.getConfig().getBoolean("countinstacks")) { + return main.getConfig().getInt(size) * 1024 * 64; + } + return main.getConfig().getInt(size) * 1024; + } + + private String getStorageCellName(ChatColor nameColor, String key, ChatColor typeColor, String type) { + return nameColor + LanguageManager.getValue(key) + " " + typeColor + ChatColor.BOLD + type; } } From f78ea184abe592b6d385de65bc48e2970a4074b2 Mon Sep 17 00:00:00 2001 From: Andre601 <11576465+Andre601@users.noreply.github.com> Date: Thu, 16 Dec 2021 01:58:02 +0100 Subject: [PATCH 2/8] revert pom.xml changes --- pom.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8018ebc..8aef727 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ CustomRecipeAPI 1.0.0 system - D:\Users\Andre_601\Test-Server\plugins\CustomRecipeAPI-1.6.0.jar + C:\Users\ChrisWalker\Desktop\1.17server\plugins\CustomRecipeAPI-1.5.1.jar de.tr7zw @@ -59,6 +59,9 @@ org.apache.maven.plugins maven-jar-plugin 2.3.1 + + C:\Users\ChrisWalker\Desktop\1.17server\plugins + org.apache.maven.plugins From 8a2ed84483b94ef3d5cb7e7c23f73051605b8613 Mon Sep 17 00:00:00 2001 From: Andre601 <11576465+Andre601@users.noreply.github.com> Date: Thu, 16 Dec 2021 01:59:14 +0100 Subject: [PATCH 3/8] Update download link --- .../java/me/darkolythe/deepstorageplus/io/ConfigManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java b/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java index ebfe77f..27137e3 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java +++ b/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java @@ -16,7 +16,7 @@ public class ConfigManager implements Listener { public ConfigManager(DeepStoragePlus plugin) { main = plugin; } - private String link = "https://drive.google.com/uc?export=download&id=13ZZzmERLZUb_NVG76BctAWnzVkUr6WLb"; + private final String link = "https://mc-packs.net/download/59195941485ccb77792854e7e8e7d9d521822403"; //MAKE SURE NOT TO ZIP WHOLE FOLDER. ONLY ZIP TWO FILES INSIDE @EventHandler From 1a07e3d6aff1ca29d400a12f1995a83bbcf0b8fe Mon Sep 17 00:00:00 2001 From: Andre601 <11576465+Andre601@users.noreply.github.com> Date: Thu, 16 Dec 2021 01:59:55 +0100 Subject: [PATCH 4/8] Simplify runnable --- .../me/darkolythe/deepstorageplus/io/ConfigManager.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java b/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java index 27137e3..3def76b 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java +++ b/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java @@ -22,11 +22,8 @@ public ConfigManager(DeepStoragePlus plugin) { @EventHandler private void onPlayerJoin(PlayerJoinEvent event) { if (DeepStoragePlus.loadpack) { - Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(main, new Runnable() { - @Override - public void run() { - event.getPlayer().setResourcePack(link); - } + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(main, () -> { + event.getPlayer().setResourcePack(link); }, 1); } } From 2195db17ede702973cba06470e1071481c38fa1d Mon Sep 17 00:00:00 2001 From: Andre601 <11576465+Andre601@users.noreply.github.com> Date: Thu, 16 Dec 2021 21:07:18 +0100 Subject: [PATCH 5/8] Change Item creation and handling --- .../deepstorageplus/DeepStoragePlus.java | 1 + .../dsu/listeners/InteractionListener.java | 28 ++++ .../dsu/listeners/InventoryListener.java | 4 +- .../dsu/managers/DSUManager.java | 13 +- .../dsu/managers/SorterManager.java | 10 +- .../deepstorageplus/utils/ItemList.java | 145 +++++++++--------- .../utils/LanguageManager.java | 7 +- .../deepstorageplus/utils/item/DSPItem.java | 16 ++ .../utils/item/misc/DSUWall.java | 45 ++++++ .../utils/item/misc/EmptyLinkModuleSlot.java | 45 ++++++ .../utils/item/misc/EmptyStorageSlot.java | 45 ++++++ .../utils/item/misc/LinkModule.java | 48 ++++++ .../utils/item/misc/SpeedUpgrade.java | 58 +++++++ .../utils/item/misc/WirelessReceiver.java | 46 ++++++ .../utils/item/misc/WirelessTerminal.java | 58 +++++++ .../utils/item/storagecells/StorageCell.java | 49 ++++++ .../storagecontainer/StorageContainer.java} | 73 ++++----- .../utils/item/wrench/SorterWrench.java | 47 ++++++ .../utils/item/wrench/StorageWrench.java | 46 ++++++ 19 files changed, 648 insertions(+), 136 deletions(-) create mode 100644 src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InteractionListener.java create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/item/DSPItem.java create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/DSUWall.java create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/EmptyLinkModuleSlot.java create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/EmptyStorageSlot.java create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/LinkModule.java create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/SpeedUpgrade.java create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/WirelessReceiver.java create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/WirelessTerminal.java create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/item/storagecells/StorageCell.java rename src/main/java/me/darkolythe/deepstorageplus/utils/{ItemBuilder.java => item/storagecontainer/StorageContainer.java} (50%) create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/item/wrench/SorterWrench.java create mode 100644 src/main/java/me/darkolythe/deepstorageplus/utils/item/wrench/StorageWrench.java diff --git a/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java b/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java index 2576727..5d7813e 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java +++ b/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java @@ -106,6 +106,7 @@ public void onEnable() { getServer().getPluginManager().registerEvents(iolistener, plugin); getServer().getPluginManager().registerEvents(storagebreakslistener, plugin); getServer().getPluginManager().registerEvents(configmanager, plugin); + getServer().getPluginManager().registerEvents(new InteractionListener(), plugin); getCommand("deepstorageplus").setExecutor(new CommandHandler(itemList)); getCommand("dsp").setExecutor(new CommandHandler(itemList)); diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InteractionListener.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InteractionListener.java new file mode 100644 index 0000000..7374ddb --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InteractionListener.java @@ -0,0 +1,28 @@ +package me.darkolythe.deepstorageplus.dsu.listeners; + +import me.darkolythe.deepstorageplus.utils.ItemList; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; + +public class InteractionListener implements Listener { + + @EventHandler + public void onJukeboxInteraction(PlayerInteractEvent event) { + if (event.getAction() != Action.RIGHT_CLICK_BLOCK){ + return; + } + + Block block = event.getClickedBlock(); + if (block != null && block.getType() == Material.JUKEBOX) { + ItemStack item = event.getPlayer().getInventory().getItemInMainHand(); + if (!event.isCancelled() && ItemList.isStorageContainerItem(item)) { + event.setCancelled(true); + } + } + } +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java index 1f15b2f..a877907 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java @@ -77,10 +77,12 @@ private void onStorageInteract(InventoryClickEvent event) { if (event.getSlot() % 9 == 8) { //rightmost column if (event.getSlot() != 53) { //if containers clicked if (cursor != null && cursor.getType() != Material.AIR) { //if putting container in - if (item != null && ItemList.isDSPItem(item, ItemList.STORAGE_SLOT_MODEL_ID)) { + if (ItemList.isDSPItem(item, ItemList.STORAGE_SLOT_MODEL_ID)) { event.setCancelled(true); if (cursor.hasItemMeta()) { //if putting a Storage Container in the dsu + System.out.println("meta check passed"); if (ItemList.isStorageContainerItem(cursor)) { + System.out.println("cursor is container"); inv.setItem(event.getSlot(), cursor); cursor.setAmount(0); main.dsuupdatemanager.updateItems(inv, null); diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/DSUManager.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/DSUManager.java index ed1debc..02fce99 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/DSUManager.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/DSUManager.java @@ -2,15 +2,17 @@ import de.tr7zw.changeme.nbtapi.NBTItem; import me.darkolythe.deepstorageplus.DeepStoragePlus; -import me.darkolythe.deepstorageplus.utils.ItemBuilder; import me.darkolythe.deepstorageplus.utils.ItemList; import me.darkolythe.deepstorageplus.utils.LanguageManager; +import me.darkolythe.deepstorageplus.utils.item.misc.DSUWall; +import me.darkolythe.deepstorageplus.utils.item.misc.EmptyStorageSlot; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.BundleMeta; import org.bukkit.inventory.meta.ItemMeta; import java.util.*; @@ -90,8 +92,7 @@ public static ItemStack getDSUWall() { if (dsuWall != null) return dsuWall; - return dsuWall = new ItemBuilder(Material.PAPER) - .setModelData(20002) + return dsuWall = new DSUWall() .setName(ChatColor.DARK_GRAY + LanguageManager.getValue("dsuwalls")) .setItemMeta() .getItem(); @@ -101,8 +102,7 @@ public static ItemStack getDSUWall() { Create an Empty Block item to fill the dsu Inventory */ public static ItemStack getEmptyBlock() { - return new ItemBuilder(Material.PAPER) - .setModelData(20005) + return new EmptyStorageSlot() .setName(ChatColor.YELLOW + LanguageManager.getValue("emptystorageblock")) .setItemMeta() .getItem(); @@ -220,12 +220,13 @@ private static Material getType(String lore) { Update the container with the itemstack being added */ public static void addDataToContainer(ItemStack container, ItemStack item) { - if (container.hasItemMeta() && container.getItemMeta().hasDisplayName() && container.getItemMeta().getDisplayName().contains(LanguageManager.getValue("storagecontainer"))) { + if (container.getItemMeta() != null && ItemList.isStorageContainerItem(container)) { Material mat = item.getType(); int amount = item.getAmount(); int storage = countStorage(container, LanguageManager.getValue("currentstorage") + ": "); int types = countStorage(container, LanguageManager.getValue("currenttypes") + ": "); + HashSet mats = getTypes(container.getItemMeta().getLore()); int canAdd = Math.min(storage, amount); if (mats.contains(mat)) { //if the material is already stored in the container diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/SorterManager.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/SorterManager.java index 4efd4c8..36975e7 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/SorterManager.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/managers/SorterManager.java @@ -2,9 +2,10 @@ import me.darkolythe.deepstorageplus.DeepStoragePlus; import me.darkolythe.deepstorageplus.dsu.StorageUtils; -import me.darkolythe.deepstorageplus.utils.ItemBuilder; import me.darkolythe.deepstorageplus.utils.ItemList; import me.darkolythe.deepstorageplus.utils.LanguageManager; +import me.darkolythe.deepstorageplus.utils.item.misc.DSUWall; +import me.darkolythe.deepstorageplus.utils.item.misc.EmptyLinkModuleSlot; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; @@ -14,7 +15,6 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; import java.util.*; import java.util.stream.Collectors; @@ -50,8 +50,7 @@ public static ItemStack getSorterWall() { if (sorterWall != null) return sorterWall; - return sorterWall = new ItemBuilder(Material.PAPER) - .setModelData(20002) + return sorterWall = new DSUWall() .setName(ChatColor.DARK_GRAY + LanguageManager.getValue("sorterwalls")) .setItemMeta() .getItem(); @@ -61,8 +60,7 @@ public static ItemStack getSorterWall() { Create an Empty Block item to fill the dsu Inventory */ public static ItemStack getEmptyBlock() { - return new ItemBuilder(Material.PAPER) - .setModelData(20004) + return new EmptyLinkModuleSlot() .setName(ChatColor.YELLOW + LanguageManager.getValue("emptysorterblock")) .setItemMeta() .getItem(); diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java b/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java index 4dd57a9..f5e1583 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java @@ -1,44 +1,53 @@ package me.darkolythe.deepstorageplus.utils; import me.darkolythe.deepstorageplus.DeepStoragePlus; +import me.darkolythe.deepstorageplus.utils.item.misc.LinkModule; +import me.darkolythe.deepstorageplus.utils.item.misc.SpeedUpgrade; +import me.darkolythe.deepstorageplus.utils.item.misc.WirelessReceiver; +import me.darkolythe.deepstorageplus.utils.item.misc.WirelessTerminal; +import me.darkolythe.deepstorageplus.utils.item.storagecells.StorageCell; +import me.darkolythe.deepstorageplus.utils.item.storagecontainer.StorageContainer; +import me.darkolythe.deepstorageplus.utils.item.wrench.SorterWrench; +import me.darkolythe.deepstorageplus.utils.item.wrench.StorageWrench; import org.bukkit.ChatColor; import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; import java.util.*; -import static me.darkolythe.deepstorageplus.dsu.managers.WirelessManager.createReceiver; -import static me.darkolythe.deepstorageplus.dsu.managers.WirelessManager.createTerminal; - public class ItemList { private DeepStoragePlus main; + // Wrenches public static final int SORTER_WRENCH_MODEL_ID = 20000; public static final int STORAGE_WRENCH_MODEL_ID = 20001; + + // Misc public static final int GUI_BACKGROUND_MODEL_ID = 20002; public static final int LINK_MODULE_MODEL_ID = 20003; public static final int LINK_SLOT_MODEL_ID = 20004; - public static final int STORAGE_SLOT_MODEL_ID = 20005; - public static final int RECEIVER_MODEL_ID = 20006; - public static final int TERMINAL_MODEL_ID = 20007; + public static final int SPEEDUPGRADE_MODEL_ID = 20005; + public static final int STORAGE_SLOT_MODEL_ID = 20006; + public static final int RECEIVER_MODEL_ID = 20007; + public static final int TERMINAL_MODEL_ID = 20008; - public static final int STORAGE_CELL_1K_MODEL_ID = 20008; - public static final int STORAGE_CELL_4K_MODEL_ID = 20009; - public static final int STORAGE_CELL_16K_MODEL_ID = 20010; - public static final int STORAGE_CELL_64K_MODEL_ID = 20011; - public static final int STORAGE_CELL_256K_MODEL_ID = 20012; - public static final int STORAGE_CELL_1M_MODEL_ID = 20013; + // Storage Cells + public static final int STORAGE_CELL_1K_MODEL_ID = 20009; + public static final int STORAGE_CELL_4K_MODEL_ID = 20010; + public static final int STORAGE_CELL_16K_MODEL_ID = 20011; + public static final int STORAGE_CELL_64K_MODEL_ID = 20012; + public static final int STORAGE_CELL_256K_MODEL_ID = 20013; + public static final int STORAGE_CELL_1M_MODEL_ID = 20014; - public static final int STORAGE_CONTAINER_1K_MODEL_ID = 20014; - public static final int STORAGE_CONTAINER_4K_MODEL_ID = 20015; - public static final int STORAGE_CONTAINER_16K_MODEL_ID = 20016; - public static final int STORAGE_CONTAINER_64K_MODEL_ID = 20017; - public static final int STORAGE_CONTAINER_256K_MODEL_ID = 20018; - public static final int STORAGE_CONTAINER_1M_MODEL_ID = 20019; + // Storage Containers + public static final int STORAGE_CONTAINER_1K_MODEL_ID = 20015; + public static final int STORAGE_CONTAINER_4K_MODEL_ID = 20016; + public static final int STORAGE_CONTAINER_16K_MODEL_ID = 20017; + public static final int STORAGE_CONTAINER_64K_MODEL_ID = 20018; + public static final int STORAGE_CONTAINER_256K_MODEL_ID = 20019; + public static final int STORAGE_CONTAINER_1M_MODEL_ID = 20020; public ItemStack storageCell1K; public ItemStack storageCell4K; @@ -66,105 +75,90 @@ public class ItemList { public ItemList(DeepStoragePlus plugin) { this.main = plugin; // set it equal to an instance of main - // Storage Cells - this.storageCell1K = new ItemBuilder(Material.PAPER) - .setModelData(STORAGE_CELL_1K_MODEL_ID) + this.storageCell1K = new StorageCell() + .setCustomModelData(STORAGE_CELL_1K_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.GRAY, "1K")) .setItemMeta() .getItem(); - this.storageCell4K = new ItemBuilder(Material.PAPER) - .setModelData(STORAGE_CELL_4K_MODEL_ID) + this.storageCell4K = new StorageCell() + .setCustomModelData(STORAGE_CELL_4K_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.WHITE, "4K")) .setItemMeta() .getItem(); - this.storageCell16K = new ItemBuilder(Material.PAPER) - .setModelData(STORAGE_CELL_16K_MODEL_ID) + this.storageCell16K = new StorageCell() + .setCustomModelData(STORAGE_CELL_16K_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.YELLOW, "16K")) .setItemMeta() .getItem(); - this.storageCell64K = new ItemBuilder(Material.PAPER) - .setModelData(STORAGE_CELL_64K_MODEL_ID) + this.storageCell64K = new StorageCell() + .setCustomModelData(STORAGE_CELL_64K_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.GREEN, "64K")) .setItemMeta() .getItem(); - this.storageCell256K = new ItemBuilder(Material.PAPER) - .setModelData(STORAGE_CELL_256K_MODEL_ID) + this.storageCell256K = new StorageCell() + .setCustomModelData(STORAGE_CELL_256K_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.BLUE, "256K")) .setItemMeta() .getItem(); - this.storageCell1M = new ItemBuilder(Material.PAPER) - .setModelData(STORAGE_CELL_1M_MODEL_ID) + this.storageCell1M = new StorageCell() + .setCustomModelData(STORAGE_CELL_1M_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecell", ChatColor.LIGHT_PURPLE, "1M")) .setItemMeta() .getItem(); // Storage Containers - this.storageContainer1K = new ItemBuilder(Material.GOLDEN_AXE) - .setModelData(STORAGE_CONTAINER_1K_MODEL_ID) + this.storageContainer1K = new StorageContainer() + .setCustomModelData(STORAGE_CONTAINER_1K_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.GRAY, "1K")) .setLore(getStorageMaxConfig("1kmax")) - .setUnbreakable() - .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) .setItemMeta() .getItem(); - this.storageContainer4K = new ItemBuilder(Material.GOLDEN_AXE) - .setModelData(STORAGE_CONTAINER_4K_MODEL_ID) + this.storageContainer4K = new StorageContainer() + .setCustomModelData(STORAGE_CONTAINER_4K_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.WHITE, "4K")) .setLore(getStorageMaxConfig("4kmax")) - .setUnbreakable() - .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) .setItemMeta() .getItem(); - this.storageContainer16K = new ItemBuilder(Material.GOLDEN_AXE) - .setModelData(STORAGE_CONTAINER_16K_MODEL_ID) + this.storageContainer16K = new StorageContainer() + .setCustomModelData(STORAGE_CONTAINER_16K_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.YELLOW, "16K")) .setLore(getStorageMaxConfig("16kmax")) - .setUnbreakable() - .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) .setItemMeta() .getItem(); - this.storageContainer64K = new ItemBuilder(Material.GOLDEN_AXE) - .setModelData(STORAGE_CONTAINER_64K_MODEL_ID) + this.storageContainer64K = new StorageContainer() + .setCustomModelData(STORAGE_CONTAINER_64K_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.GREEN, "64K")) .setLore(getStorageMaxConfig("64kmax")) - .setUnbreakable() - .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) .setItemMeta() .getItem(); - this.storageContainer256K = new ItemBuilder(Material.GOLDEN_AXE) - .setModelData(STORAGE_CONTAINER_256K_MODEL_ID) + this.storageContainer256K = new StorageContainer() + .setCustomModelData(STORAGE_CONTAINER_256K_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.BLUE, "256K")) .setLore(getStorageMaxConfig("256kmax")) - .setUnbreakable() - .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) .setItemMeta() .getItem(); - this.storageContainer1M = new ItemBuilder(Material.GOLDEN_AXE) - .setModelData(STORAGE_CONTAINER_1M_MODEL_ID) + this.storageContainer1M = new StorageContainer() + .setCustomModelData(STORAGE_CONTAINER_1M_MODEL_ID) .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.LIGHT_PURPLE, "1M")) .setLore(getStorageMaxConfig("1mmax")) - .setUnbreakable() - .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) .setItemMeta() .getItem(); - this.creativeStorageContainer = new ItemBuilder(Material.GOLDEN_AXE) - .setModelData(STORAGE_CONTAINER_1M_MODEL_ID) - .setName(getStorageCellName(ChatColor.DARK_PURPLE, "creativestoragecontainer", ChatColor.GRAY, "")) + this.creativeStorageContainer = new StorageContainer() + .setCustomModelData(STORAGE_CONTAINER_1M_MODEL_ID) + .setName(getStorageCellName(ChatColor.WHITE, "storagecontainer", ChatColor.GRAY, "")) .setLore(Integer.MAX_VALUE) - .setUnbreakable() - .setFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_UNBREAKABLE) .setItemMeta() .getItem(); @@ -176,14 +170,12 @@ public ItemList(DeepStoragePlus plugin) { // Link Module, Wireless Receiver and Wireless Terminal this.linkModule = createLinkModule(); - this.receiver = new ItemBuilder(Material.PAPER) - .setModelData(RECEIVER_MODEL_ID) + this.receiver = new WirelessReceiver() .setName(ChatColor.AQUA + LanguageManager.getValue("receiver")) .setItemMeta() .getItem(); - this.terminal = new ItemBuilder(Material.PAPER) - .setModelData(TERMINAL_MODEL_ID) + this.terminal = new WirelessTerminal() .setName(ChatColor.AQUA + LanguageManager.getValue("terminal")) .setLore(Arrays.asList( ChatColor.GRAY + "---------------------", @@ -242,6 +234,10 @@ public static boolean isStorageContainerItem(ItemStack item) { return false; } + if (item.getType() != Material.MUSIC_DISC_13) { + return false; + } + if (item.getItemMeta() == null || !item.hasItemMeta()) { return false; } @@ -262,8 +258,7 @@ public static boolean isDSPItem(ItemStack item, int modelId) { } public static ItemStack createStorageWrench() { - return new ItemBuilder(Material.PAPER) - .setModelData(STORAGE_WRENCH_MODEL_ID) + return new StorageWrench() .setName(ChatColor.AQUA + LanguageManager.getValue("storageloader")) .setLore(Arrays.asList( ChatColor.GRAY + LanguageManager.getValue("clickempty"), @@ -276,30 +271,28 @@ public static ItemStack createStorageWrench() { } public static ItemStack createSorterWrench() { - return new ItemBuilder(Material.PAPER) - .setModelData(SORTER_WRENCH_MODEL_ID) + return new SorterWrench() .setName(ChatColor.AQUA + LanguageManager.getValue("sorterloader")) .setItemMeta() .getItem(); } public static ItemStack createLinkModule() { - return new ItemBuilder(Material.PAPER) - .setModelData(LINK_MODULE_MODEL_ID) + return new LinkModule() .setName(ChatColor.AQUA + LanguageManager.getValue("linkmodule")) .setLore(Arrays.asList( - ChatColor.GRAY + "Click DSU to save", - ChatColor.GRAY + "DSU coordinates to this link module." + ChatColor.GRAY + "Click DSU to save coordinates", + ChatColor.GRAY + "to this link module." )) .setItemMeta() .getItem(); } public static ItemStack createSpeedUpgrade() { - return new ItemBuilder(Material.GLOWSTONE_DUST) + return new SpeedUpgrade() .setName(ChatColor.WHITE + ChatColor.BOLD.toString() + LanguageManager.getValue("ioupgrade")) .setLore(Collections.singletonList(ChatColor.GRAY + LanguageManager.getValue("clicktoupgrade"))) - .setFlags(ItemFlag.HIDE_ENCHANTS) + .hideEnchantment() .setItemMeta() .setEnchanted() .getItem(); diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/LanguageManager.java b/src/main/java/me/darkolythe/deepstorageplus/utils/LanguageManager.java index 7ce5a2a..2d3540d 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/utils/LanguageManager.java +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/LanguageManager.java @@ -1,6 +1,7 @@ package me.darkolythe.deepstorageplus.utils; import me.darkolythe.deepstorageplus.DeepStoragePlus; +import org.bukkit.ChatColor; import java.util.HashMap; import java.util.Map; @@ -86,10 +87,6 @@ public static void setup(DeepStoragePlus main) { } public static String getValue(String key) { - if (translateMap.containsKey(key)) { - return translateMap.get(key); - } else { - return "[Invalid Translate Key]"; - } + return ChatColor.translateAlternateColorCodes('&', translateMap.getOrDefault(key, "[Invalid Translate Key]")); } } diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/DSPItem.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/DSPItem.java new file mode 100644 index 0000000..546bc36 --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/DSPItem.java @@ -0,0 +1,16 @@ +package me.darkolythe.deepstorageplus.utils.item; + +import org.bukkit.inventory.ItemStack; + +import java.util.List; + +public interface DSPItem { + + public DSPItem setName(String name); + + public DSPItem setLore(List lore); + + public DSPItem setItemMeta(); + + public ItemStack getItem(); +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/DSUWall.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/DSUWall.java new file mode 100644 index 0000000..b323cb9 --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/DSUWall.java @@ -0,0 +1,45 @@ +package me.darkolythe.deepstorageplus.utils.item.misc; + +import me.darkolythe.deepstorageplus.utils.ItemList; +import me.darkolythe.deepstorageplus.utils.item.DSPItem; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.List; +import java.util.Objects; + +public class DSUWall implements DSPItem{ + + private final ItemStack item; + private final ItemMeta meta; + + public DSUWall() { + this.item = new ItemStack(Material.PAPER); + this.meta = Objects.requireNonNull(item.getItemMeta()); + + meta.setCustomModelData(ItemList.GUI_BACKGROUND_MODEL_ID); + } + + @Override + public DSUWall setName(String name) { + meta.setDisplayName(name); + return this; + } + + @Override + public DSUWall setLore(List lore) { + return this; + } + + @Override + public DSUWall setItemMeta() { + item.setItemMeta(meta); + return this; + } + + @Override + public ItemStack getItem() { + return item; + } +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/EmptyLinkModuleSlot.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/EmptyLinkModuleSlot.java new file mode 100644 index 0000000..8828a3f --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/EmptyLinkModuleSlot.java @@ -0,0 +1,45 @@ +package me.darkolythe.deepstorageplus.utils.item.misc; + +import me.darkolythe.deepstorageplus.utils.ItemList; +import me.darkolythe.deepstorageplus.utils.item.DSPItem; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.List; +import java.util.Objects; + +public class EmptyLinkModuleSlot implements DSPItem { + + private final ItemStack item; + private final ItemMeta meta; + + public EmptyLinkModuleSlot() { + this.item = new ItemStack(Material.PAPER); + this.meta = Objects.requireNonNull(item.getItemMeta()); + + meta.setCustomModelData(ItemList.LINK_SLOT_MODEL_ID); + } + + @Override + public EmptyLinkModuleSlot setName(String name) { + meta.setDisplayName(name); + return this; + } + + @Override + public EmptyLinkModuleSlot setLore(List lore) { + return this; + } + + @Override + public EmptyLinkModuleSlot setItemMeta() { + item.setItemMeta(meta); + return this; + } + + @Override + public ItemStack getItem() { + return item; + } +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/EmptyStorageSlot.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/EmptyStorageSlot.java new file mode 100644 index 0000000..7e1d50b --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/EmptyStorageSlot.java @@ -0,0 +1,45 @@ +package me.darkolythe.deepstorageplus.utils.item.misc; + +import me.darkolythe.deepstorageplus.utils.ItemList; +import me.darkolythe.deepstorageplus.utils.item.DSPItem; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.List; +import java.util.Objects; + +public class EmptyStorageSlot implements DSPItem { + + private final ItemStack item; + private final ItemMeta meta; + + public EmptyStorageSlot() { + this.item = new ItemStack(Material.PAPER); + this.meta = Objects.requireNonNull(item.getItemMeta()); + + meta.setCustomModelData(ItemList.STORAGE_SLOT_MODEL_ID); + } + + @Override + public EmptyStorageSlot setName(String name) { + meta.setDisplayName(name); + return this; + } + + @Override + public EmptyStorageSlot setLore(List lore) { + return this; + } + + @Override + public EmptyStorageSlot setItemMeta() { + item.setItemMeta(meta); + return this; + } + + @Override + public ItemStack getItem() { + return item; + } +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/LinkModule.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/LinkModule.java new file mode 100644 index 0000000..c058159 --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/LinkModule.java @@ -0,0 +1,48 @@ +package me.darkolythe.deepstorageplus.utils.item.misc; + +import me.darkolythe.deepstorageplus.utils.ItemList; +import me.darkolythe.deepstorageplus.utils.item.DSPItem; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.List; +import java.util.Objects; + +public class LinkModule implements DSPItem{ + + private final ItemStack item; + private final ItemMeta meta; + + public LinkModule() { + this.item = new ItemStack(Material.PAPER); + this.meta = Objects.requireNonNull(item.getItemMeta()); + + meta.setCustomModelData(ItemList.LINK_MODULE_MODEL_ID); + } + + @Override + public LinkModule setName(String name) { + meta.setDisplayName(name); + return this; + } + + @Override + public LinkModule setLore(List lore) { + meta.setLore(lore); + return this; + } + + @Override + public LinkModule setItemMeta() { + item.setItemMeta(meta); + return this; + } + + @Override + public ItemStack getItem() { + return item; + } +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/SpeedUpgrade.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/SpeedUpgrade.java new file mode 100644 index 0000000..32b6d64 --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/SpeedUpgrade.java @@ -0,0 +1,58 @@ +package me.darkolythe.deepstorageplus.utils.item.misc; + +import me.darkolythe.deepstorageplus.utils.ItemList; +import me.darkolythe.deepstorageplus.utils.item.DSPItem; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.List; +import java.util.Objects; + +public class SpeedUpgrade implements DSPItem{ + + private final ItemStack item; + private final ItemMeta meta; + + public SpeedUpgrade() { + this.item = new ItemStack(Material.PAPER); + this.meta = Objects.requireNonNull(item.getItemMeta()); + + meta.setCustomModelData(ItemList.SPEEDUPGRADE_MODEL_ID); + } + + @Override + public SpeedUpgrade setName(String name) { + meta.setDisplayName(name); + return this; + } + + @Override + public SpeedUpgrade setLore(List lore) { + meta.setLore(lore); + return this; + } + + @Override + public SpeedUpgrade setItemMeta() { + item.setItemMeta(meta); + return this; + } + + @Override + public ItemStack getItem() { + return item; + } + + public SpeedUpgrade hideEnchantment() { + meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + return this; + } + + public SpeedUpgrade setEnchanted() { + item.addUnsafeEnchantment(Enchantment.ARROW_INFINITE, 1); + return this; + } +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/WirelessReceiver.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/WirelessReceiver.java new file mode 100644 index 0000000..49c4bb2 --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/WirelessReceiver.java @@ -0,0 +1,46 @@ +package me.darkolythe.deepstorageplus.utils.item.misc; + +import me.darkolythe.deepstorageplus.utils.ItemList; +import me.darkolythe.deepstorageplus.utils.item.DSPItem; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.List; +import java.util.Objects; + +public class WirelessReceiver implements DSPItem{ + + private final ItemStack item; + private final ItemMeta meta; + + public WirelessReceiver() { + this.item = new ItemStack(Material.PAPER); + this.meta = Objects.requireNonNull(item.getItemMeta()); + + this.meta.setCustomModelData(ItemList.RECEIVER_MODEL_ID); + } + + @Override + public WirelessReceiver setName(String name) { + meta.setDisplayName(name); + return this; + } + + @Override + public WirelessReceiver setLore(List lore) { + meta.setLore(lore); + return this; + } + + @Override + public WirelessReceiver setItemMeta() { + item.setItemMeta(meta); + return this; + } + + @Override + public ItemStack getItem() { + return item; + } +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/WirelessTerminal.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/WirelessTerminal.java new file mode 100644 index 0000000..ad77b4a --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/misc/WirelessTerminal.java @@ -0,0 +1,58 @@ +package me.darkolythe.deepstorageplus.utils.item.misc; + +import me.darkolythe.deepstorageplus.utils.ItemList; +import me.darkolythe.deepstorageplus.utils.item.DSPItem; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.List; +import java.util.Objects; + +public class WirelessTerminal implements DSPItem{ + + private final ItemStack item; + private final ItemMeta meta; + + public WirelessTerminal() { + this.item = new ItemStack(Material.PAPER); + this.meta = Objects.requireNonNull(item.getItemMeta()); + + this.meta.setCustomModelData(ItemList.TERMINAL_MODEL_ID); + } + + @Override + public WirelessTerminal setName(String name) { + meta.setDisplayName(name); + return this; + } + + @Override + public WirelessTerminal setLore(List lore) { + meta.setLore(lore); + return this; + } + + @Override + public WirelessTerminal setItemMeta() { + item.setItemMeta(meta); + return this; + } + + @Override + public ItemStack getItem() { + return item; + } + + public WirelessTerminal hideEnchantment() { + meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + return this; + } + + public WirelessTerminal setEnchanted() { + item.addUnsafeEnchantment(Enchantment.ARROW_INFINITE, 1); + return this; + } +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/storagecells/StorageCell.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/storagecells/StorageCell.java new file mode 100644 index 0000000..0bd1924 --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/storagecells/StorageCell.java @@ -0,0 +1,49 @@ +package me.darkolythe.deepstorageplus.utils.item.storagecells; + +import me.darkolythe.deepstorageplus.utils.item.DSPItem; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.BundleMeta; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.List; +import java.util.Objects; + +public class StorageCell implements DSPItem{ + + private final ItemStack item; + private final ItemMeta meta; + + public StorageCell() { + this.item = new ItemStack(Material.PAPER); + this.meta = Objects.requireNonNull(item.getItemMeta()); + } + + @Override + public StorageCell setName(String name) { + meta.setDisplayName(name); + return this; + } + + @Override + public StorageCell setLore(List lore) { + meta.setLore(lore); + return this; + } + + @Override + public StorageCell setItemMeta() { + item.setItemMeta(meta); + return this; + } + + @Override + public ItemStack getItem() { + return item; + } + + public StorageCell setCustomModelData(int modelData) { + meta.setCustomModelData(modelData); + return this; + } +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/ItemBuilder.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/storagecontainer/StorageContainer.java similarity index 50% rename from src/main/java/me/darkolythe/deepstorageplus/utils/ItemBuilder.java rename to src/main/java/me/darkolythe/deepstorageplus/utils/item/storagecontainer/StorageContainer.java index e620d13..a459c9f 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/utils/ItemBuilder.java +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/storagecontainer/StorageContainer.java @@ -1,75 +1,64 @@ -package me.darkolythe.deepstorageplus.utils; +package me.darkolythe.deepstorageplus.utils.item.storagecontainer; +import me.darkolythe.deepstorageplus.utils.LanguageManager; +import me.darkolythe.deepstorageplus.utils.item.DSPItem; import org.bukkit.ChatColor; import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import java.util.ArrayList; import java.util.List; +import java.util.Objects; -public class ItemBuilder { +public class StorageContainer implements DSPItem{ private final ItemStack item; private final ItemMeta meta; - public ItemBuilder(Material material) { - this.item = new ItemStack(material); - this.meta = item.getItemMeta(); + public StorageContainer() { + this.item = new ItemStack(Material.MUSIC_DISC_13); + this.meta = Objects.requireNonNull(item.getItemMeta()); } - public ItemBuilder setName(String name) { + @Override + public StorageContainer setName(String name) { meta.setDisplayName(name); return this; } - public ItemBuilder setLore(int maxSize) { - List lore = new ArrayList<>(); - - lore.add(ChatColor.GREEN + LanguageManager.getValue("currentstorage") + ": " + 0 + "/" + maxSize); - lore.add(ChatColor.GREEN + LanguageManager.getValue("currenttypes") + ": " + 0 + "/" + 7); - - for (int i = 0; i < 7; i++) { - lore.add(ChatColor.GRAY + " - " + LanguageManager.getValue("empty")); - } - - this.setLore(lore); - return this; - } - - public ItemBuilder setLore(List lore) { + @Override + public StorageContainer setLore(List lore) { meta.setLore(lore); return this; } - public ItemBuilder setModelData(int modelData) { - meta.setCustomModelData(modelData); - return this; - } - - public ItemBuilder setUnbreakable() { - meta.setUnbreakable(true); - return this; - } - - public ItemBuilder setEnchanted() { - item.addUnsafeEnchantment(Enchantment.DURABILITY, 1); + @Override + public StorageContainer setItemMeta() { + item.setItemMeta(meta); return this; } - public ItemBuilder setFlags(ItemFlag... flags) { - meta.addItemFlags(flags); - return this; + @Override + public ItemStack getItem() { + return item; } - public ItemBuilder setItemMeta() { - item.setItemMeta(meta); + public StorageContainer setCustomModelData(int modelData){ + meta.setCustomModelData(modelData); return this; } - public ItemStack getItem() { - return item; + public StorageContainer setLore(int maxSize) { + List lore = new ArrayList<>(); + + lore.add(ChatColor.GREEN + LanguageManager.getValue("currentstorage") + ": " + 0 + "/" + maxSize); + lore.add(ChatColor.GREEN + LanguageManager.getValue("currenttypes") + ": " + 0 + "/7"); + + for (int i = 0; i < 7; i++) { + lore.add(ChatColor.GRAY + " - " + LanguageManager.getValue("empty")); + } + + return setLore(lore); } } diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/wrench/SorterWrench.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/wrench/SorterWrench.java new file mode 100644 index 0000000..09a6258 --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/wrench/SorterWrench.java @@ -0,0 +1,47 @@ +package me.darkolythe.deepstorageplus.utils.item.wrench; + +import me.darkolythe.deepstorageplus.utils.ItemList; +import me.darkolythe.deepstorageplus.utils.item.DSPItem; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.List; +import java.util.Objects; + +public class SorterWrench implements DSPItem{ + + private final ItemStack item; + private final ItemMeta meta; + + public SorterWrench() { + this.item = new ItemStack(Material.PAPER); + this.meta = Objects.requireNonNull(item.getItemMeta()); + + meta.setCustomModelData(ItemList.SORTER_WRENCH_MODEL_ID); + } + + + @Override + public SorterWrench setName(String name) { + meta.setDisplayName(name); + return this; + } + + @Override + public SorterWrench setLore(List lore) { + meta.setLore(lore); + return this; + } + + @Override + public SorterWrench setItemMeta() { + item.setItemMeta(meta); + return this; + } + + @Override + public ItemStack getItem() { + return item; + } +} diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/wrench/StorageWrench.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/wrench/StorageWrench.java new file mode 100644 index 0000000..a5c8f1d --- /dev/null +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/wrench/StorageWrench.java @@ -0,0 +1,46 @@ +package me.darkolythe.deepstorageplus.utils.item.wrench; + +import me.darkolythe.deepstorageplus.utils.ItemList; +import me.darkolythe.deepstorageplus.utils.item.DSPItem; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.List; +import java.util.Objects; + +public class StorageWrench implements DSPItem{ + + private final ItemStack item; + private final ItemMeta meta; + + public StorageWrench() { + this.item = new ItemStack(Material.PAPER); + this.meta = Objects.requireNonNull(item.getItemMeta()); + + this.meta.setCustomModelData(ItemList.STORAGE_WRENCH_MODEL_ID); + } + + @Override + public StorageWrench setName(String name) { + meta.setDisplayName(name); + return this; + } + + @Override + public StorageWrench setLore(List lore) { + meta.setLore(lore); + return this; + } + + @Override + public StorageWrench setItemMeta() { + item.setItemMeta(meta); + return this; + } + + @Override + public ItemStack getItem() { + return item; + } +} From 597a36ba06436066e6e4ce4ee2c4f1b116008ce2 Mon Sep 17 00:00:00 2001 From: Andre601 <11576465+Andre601@users.noreply.github.com> Date: Thu, 16 Dec 2021 21:37:54 +0100 Subject: [PATCH 6/8] Use Iron Horse Armor --- pom.xml | 12 +++++++++--- .../darkolythe/deepstorageplus/utils/ItemList.java | 2 +- .../item/storagecontainer/StorageContainer.java | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 8aef727..deb89a2 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,11 @@ CodeMC - https://repo.codemc.org/repository/maven-public + https://repo.codemc.org/repository/maven-public/ + + + jitpack + https://jitpack.io/ @@ -30,7 +34,7 @@ org.spigotmc spigot-api - 1.15-R0.1-SNAPSHOT + 1.17-R0.1-SNAPSHOT provided @@ -44,7 +48,7 @@ CustomRecipeAPI 1.0.0 system - C:\Users\ChrisWalker\Desktop\1.17server\plugins\CustomRecipeAPI-1.5.1.jar + D:\Users\Andre_601\Test-Server\plugins\CustomRecipeAPI-1.6.0.jar de.tr7zw @@ -59,9 +63,11 @@ org.apache.maven.plugins maven-jar-plugin 2.3.1 + org.apache.maven.plugins diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java b/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java index f5e1583..f6035cf 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/ItemList.java @@ -234,7 +234,7 @@ public static boolean isStorageContainerItem(ItemStack item) { return false; } - if (item.getType() != Material.MUSIC_DISC_13) { + if (item.getType() != Material.IRON_HORSE_ARMOR) { return false; } diff --git a/src/main/java/me/darkolythe/deepstorageplus/utils/item/storagecontainer/StorageContainer.java b/src/main/java/me/darkolythe/deepstorageplus/utils/item/storagecontainer/StorageContainer.java index a459c9f..f463f7d 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/utils/item/storagecontainer/StorageContainer.java +++ b/src/main/java/me/darkolythe/deepstorageplus/utils/item/storagecontainer/StorageContainer.java @@ -17,7 +17,7 @@ public class StorageContainer implements DSPItem{ private final ItemMeta meta; public StorageContainer() { - this.item = new ItemStack(Material.MUSIC_DISC_13); + this.item = new ItemStack(Material.IRON_HORSE_ARMOR); this.meta = Objects.requireNonNull(item.getItemMeta()); } From 271824c88b1e3b7463bc339dac094bc5cb5b592b Mon Sep 17 00:00:00 2001 From: Andre601 <11576465+Andre601@users.noreply.github.com> Date: Thu, 16 Dec 2021 21:39:14 +0100 Subject: [PATCH 7/8] Add comment in pom.xml --- pom.xml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index deb89a2..f5042c6 100644 --- a/pom.xml +++ b/pom.xml @@ -24,10 +24,6 @@ CodeMC https://repo.codemc.org/repository/maven-public/ - - jitpack - https://jitpack.io/ - @@ -48,6 +44,7 @@ CustomRecipeAPI 1.0.0 system + D:\Users\Andre_601\Test-Server\plugins\CustomRecipeAPI-1.6.0.jar From c73015fe70b7ae276c4317fd8fe7c6b967f9c41a Mon Sep 17 00:00:00 2001 From: Andre601 <11576465+Andre601@users.noreply.github.com> Date: Thu, 16 Dec 2021 21:44:00 +0100 Subject: [PATCH 8/8] Register Events through constructor --- .../deepstorageplus/DeepStoragePlus.java | 8 ------ .../dsu/listeners/IOListener.java | 1 + .../dsu/listeners/InteractionListener.java | 28 ------------------- .../dsu/listeners/InventoryListener.java | 1 + .../dsu/listeners/StorageBreakListener.java | 1 + .../dsu/listeners/WirelessListener.java | 2 ++ .../dsu/listeners/WrenchListener.java | 1 + .../deepstorageplus/io/ConfigManager.java | 1 + 8 files changed, 7 insertions(+), 36 deletions(-) delete mode 100644 src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InteractionListener.java diff --git a/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java b/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java index 5d7813e..89fa453 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java +++ b/src/main/java/me/darkolythe/deepstorageplus/DeepStoragePlus.java @@ -100,14 +100,6 @@ public void onEnable() { inventorylistener.addText(); - getServer().getPluginManager().registerEvents(inventorylistener, plugin); - getServer().getPluginManager().registerEvents(wrenchlistener, plugin); - getServer().getPluginManager().registerEvents(wirelesslistener, plugin); - getServer().getPluginManager().registerEvents(iolistener, plugin); - getServer().getPluginManager().registerEvents(storagebreakslistener, plugin); - getServer().getPluginManager().registerEvents(configmanager, plugin); - getServer().getPluginManager().registerEvents(new InteractionListener(), plugin); - getCommand("deepstorageplus").setExecutor(new CommandHandler(itemList)); getCommand("dsp").setExecutor(new CommandHandler(itemList)); diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/IOListener.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/IOListener.java index b27e894..17dde77 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/IOListener.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/IOListener.java @@ -36,6 +36,7 @@ public class IOListener implements Listener { private DeepStoragePlus main; public IOListener(DeepStoragePlus plugin) { this.main = plugin; // set it equal to an instance of main + Bukkit.getServer().getPluginManager().registerEvents(this, plugin); } @EventHandler(priority = EventPriority.HIGHEST) diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InteractionListener.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InteractionListener.java deleted file mode 100644 index 7374ddb..0000000 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InteractionListener.java +++ /dev/null @@ -1,28 +0,0 @@ -package me.darkolythe.deepstorageplus.dsu.listeners; - -import me.darkolythe.deepstorageplus.utils.ItemList; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.inventory.ItemStack; - -public class InteractionListener implements Listener { - - @EventHandler - public void onJukeboxInteraction(PlayerInteractEvent event) { - if (event.getAction() != Action.RIGHT_CLICK_BLOCK){ - return; - } - - Block block = event.getClickedBlock(); - if (block != null && block.getType() == Material.JUKEBOX) { - ItemStack item = event.getPlayer().getInventory().getItemInMainHand(); - if (!event.isCancelled() && ItemList.isStorageContainerItem(item)) { - event.setCancelled(true); - } - } - } -} diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java index a877907..e4769e1 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/InventoryListener.java @@ -33,6 +33,7 @@ public class InventoryListener implements Listener { private DeepStoragePlus main; public InventoryListener(DeepStoragePlus plugin) { this.main = plugin; // set it equal to an instance of main + Bukkit.getServer().getPluginManager().registerEvents(this, plugin); } @EventHandler diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/StorageBreakListener.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/StorageBreakListener.java index f7f603f..40b4b42 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/StorageBreakListener.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/StorageBreakListener.java @@ -24,6 +24,7 @@ public class StorageBreakListener implements Listener { DeepStoragePlus main; public StorageBreakListener(DeepStoragePlus plugin) { main = plugin; + Bukkit.getServer().getPluginManager().registerEvents(this, plugin); } @EventHandler (priority = EventPriority.HIGHEST) diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/WirelessListener.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/WirelessListener.java index 20ff8a2..7577b3d 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/WirelessListener.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/WirelessListener.java @@ -4,6 +4,7 @@ import me.darkolythe.deepstorageplus.dsu.managers.DSUManager; import me.darkolythe.deepstorageplus.utils.LanguageManager; import me.darkolythe.deepstorageplus.utils.RecipeManager; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Chunk; import org.bukkit.Material; @@ -35,6 +36,7 @@ public class WirelessListener implements Listener { private DeepStoragePlus main; public WirelessListener(DeepStoragePlus plugin) { this.main = plugin; // set it equal to an instance of main + Bukkit.getServer().getPluginManager().registerEvents(this, plugin); } @EventHandler(priority = EventPriority.HIGHEST) diff --git a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/WrenchListener.java b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/WrenchListener.java index 7342746..44585ab 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/WrenchListener.java +++ b/src/main/java/me/darkolythe/deepstorageplus/dsu/listeners/WrenchListener.java @@ -26,6 +26,7 @@ public class WrenchListener implements Listener { private DeepStoragePlus main; public WrenchListener(DeepStoragePlus plugin) { main = plugin; + Bukkit.getServer().getPluginManager().registerEvents(this, plugin); } @EventHandler (priority = EventPriority.HIGHEST) diff --git a/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java b/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java index 3def76b..03cc290 100644 --- a/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java +++ b/src/main/java/me/darkolythe/deepstorageplus/io/ConfigManager.java @@ -15,6 +15,7 @@ public class ConfigManager implements Listener { private DeepStoragePlus main; public ConfigManager(DeepStoragePlus plugin) { main = plugin; + Bukkit.getServer().getPluginManager().registerEvents(this, plugin); } private final String link = "https://mc-packs.net/download/59195941485ccb77792854e7e8e7d9d521822403"; //MAKE SURE NOT TO ZIP WHOLE FOLDER. ONLY ZIP TWO FILES INSIDE