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