diff --git a/pom.xml b/pom.xml
index 63c97c9..04bb273 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
com.rsscripting
RS-Warehouse
RS-Warehouse
- 1.3.3
+ 1.4.0
21
diff --git a/src/main/java/com/rsscripting/rswarehouse/RSWarehouse.java b/src/main/java/com/rsscripting/rswarehouse/RSWarehouse.java
index c8ce84f..3e1ac7f 100644
--- a/src/main/java/com/rsscripting/rswarehouse/RSWarehouse.java
+++ b/src/main/java/com/rsscripting/rswarehouse/RSWarehouse.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse;
-import com.rsscripting.rswarehouse.admin.admindao.PurgeVariantsDAO;
+import com.rsscripting.rswarehouse.dao.admin.PurgeVariantsDAO;
import com.rsscripting.rswarehouse.chestautoprocess.ChestAutoProcessingTask;
import com.rsscripting.rswarehouse.commands.RSPluginCommand;
import com.rsscripting.rswarehouse.commands.RSTabCompleter;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryOptionsMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryOptionsMenuListener.java
deleted file mode 100644
index 98389e1..0000000
--- a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryOptionsMenuListener.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.rsscripting.rswarehouse.admin.adminsessions;
-
-public class CategoryOptionsMenuListener {
-}
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/AdminMenu.java b/src/main/java/com/rsscripting/rswarehouse/adminmenu/AdminMenu.java
similarity index 91%
rename from src/main/java/com/rsscripting/rswarehouse/admin/AdminMenu.java
rename to src/main/java/com/rsscripting/rswarehouse/adminmenu/AdminMenu.java
index 68789b5..c3da23d 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/AdminMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/adminmenu/AdminMenu.java
@@ -1,7 +1,7 @@
-package com.rsscripting.rswarehouse.admin;
+package com.rsscripting.rswarehouse.adminmenu;
-import com.rsscripting.rswarehouse.admin.admindao.WarehouseStatisticsDAO;
+import com.rsscripting.rswarehouse.dao.admin.WarehouseStatisticsDAO;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
import com.rsscripting.rswarehouse.utils.VersionUtils;
@@ -29,7 +29,7 @@ public class AdminMenu {
new RSMenuHolder(
"ADMIN"
),
- 9,
+ 18,
Component.text(
MENU_TITLE
).color(
@@ -184,6 +184,17 @@ public class AdminMenu {
)
);
+ menu.setItem(
+ 12,
+ RSMenuUtils.createMenuItemWithLore(
+ Material.COMMAND_BLOCK,
+ "§aCreate Server Command",
+ List.of(
+ "§7Create a server command entry."
+ )
+ )
+ );
+
player.openInventory(menu);
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/AdminMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/adminmenu/AdminMenuListener.java
similarity index 84%
rename from src/main/java/com/rsscripting/rswarehouse/admin/AdminMenuListener.java
rename to src/main/java/com/rsscripting/rswarehouse/adminmenu/AdminMenuListener.java
index 7a31e64..9f87888 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/AdminMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/adminmenu/AdminMenuListener.java
@@ -1,12 +1,13 @@
-package com.rsscripting.rswarehouse.admin;
+package com.rsscripting.rswarehouse.adminmenu;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSessionManager;
import com.rsscripting.rswarehouse.config.ConfigManager;
-import com.rsscripting.rswarehouse.conversion.ConvertMenuListener;
+import com.rsscripting.rswarehouse.chestconvert.ConvertMenuListener;
import com.rsscripting.rswarehouse.category.categorycreation.CategoryNameMenu;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.constants.RSConstants;
-import com.rsscripting.rswarehouse.main.MainMenu;
import com.rsscripting.rswarehouse.navigation.NavigationManager;
+import com.rsscripting.rswarehouse.servercommands.ServerCommandInternalNameMenu;
import com.rsscripting.rswarehouse.session.GuiSessionManager;
import org.bukkit.block.Block;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
@@ -133,6 +134,19 @@ public class AdminMenuListener
}
+ if (event.getRawSlot() == 12) {
+
+ ServerCommandCreationSessionManager.createSession(
+ player.getUniqueId()
+ );
+
+ ServerCommandInternalNameMenu.open(
+ player
+ );
+
+ return;
+ }
+
}
}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategoryPageNumberMenu.java b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategoryPageNumberMenu.java
similarity index 90%
rename from src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategoryPageNumberMenu.java
rename to src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategoryPageNumberMenu.java
index b1ceefe..334fe5b 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategoryPageNumberMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategoryPageNumberMenu.java
@@ -1,7 +1,7 @@
-package com.rsscripting.rswarehouse.admin.assignpageslot;
+package com.rsscripting.rswarehouse.assignpageslot;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryPageSlotSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryPageSlotSessionManager;
+import com.rsscripting.rswarehouse.session.admin.CategoryPageSlotSession;
+import com.rsscripting.rswarehouse.session.admin.CategoryPageSlotSessionManager;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Material;
@@ -9,7 +9,7 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.MenuType;
import org.bukkit.inventory.meta.ItemMeta;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import org.bukkit.inventory.view.AnvilView;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategoryPageNumberMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategoryPageNumberMenuListener.java
similarity index 93%
rename from src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategoryPageNumberMenuListener.java
rename to src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategoryPageNumberMenuListener.java
index 38c6d4d..7faec15 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategoryPageNumberMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategoryPageNumberMenuListener.java
@@ -1,7 +1,7 @@
-package com.rsscripting.rswarehouse.admin.assignpageslot;
+package com.rsscripting.rswarehouse.assignpageslot;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryPageSlotSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryPageSlotSessionManager;
+import com.rsscripting.rswarehouse.session.admin.CategoryPageSlotSession;
+import com.rsscripting.rswarehouse.session.admin.CategoryPageSlotSessionManager;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategorySlotNumberMenu.java b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategorySlotNumberMenu.java
similarity index 89%
rename from src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategorySlotNumberMenu.java
rename to src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategorySlotNumberMenu.java
index 5cbfaef..14cdf9c 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategorySlotNumberMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategorySlotNumberMenu.java
@@ -1,7 +1,7 @@
-package com.rsscripting.rswarehouse.admin.assignpageslot;
+package com.rsscripting.rswarehouse.assignpageslot;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryPageSlotSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryPageSlotSessionManager;
+import com.rsscripting.rswarehouse.session.admin.CategoryPageSlotSession;
+import com.rsscripting.rswarehouse.session.admin.CategoryPageSlotSessionManager;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Material;
@@ -10,7 +10,7 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.MenuType;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.view.AnvilView;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import java.util.List;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategorySlotNumberMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategorySlotNumberMenuListener.java
similarity index 92%
rename from src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategorySlotNumberMenuListener.java
rename to src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategorySlotNumberMenuListener.java
index 7c4ead7..b1d658f 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/CategorySlotNumberMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/CategorySlotNumberMenuListener.java
@@ -1,8 +1,8 @@
-package com.rsscripting.rswarehouse.admin.assignpageslot;
+package com.rsscripting.rswarehouse.assignpageslot;
-import com.rsscripting.rswarehouse.admin.admindao.CategoryPlacementDAO;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryPageSlotSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryPageSlotSessionManager;
+import com.rsscripting.rswarehouse.dao.admin.CategoryPlacementDAO;
+import com.rsscripting.rswarehouse.session.admin.CategoryPageSlotSession;
+import com.rsscripting.rswarehouse.session.admin.CategoryPageSlotSessionManager;
import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/PageNumberMenu.java b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/PageNumberMenu.java
similarity index 90%
rename from src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/PageNumberMenu.java
rename to src/main/java/com/rsscripting/rswarehouse/assignpageslot/PageNumberMenu.java
index b42ddd7..5d7f71b 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/PageNumberMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/PageNumberMenu.java
@@ -1,8 +1,8 @@
-package com.rsscripting.rswarehouse.admin.assignpageslot;
+package com.rsscripting.rswarehouse.assignpageslot;
-import com.rsscripting.rswarehouse.admin.adminsessions.PageSlotAssignmentSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.PageSlotAssignmentSessionManager;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.session.admin.PageSlotAssignmentSession;
+import com.rsscripting.rswarehouse.session.admin.PageSlotAssignmentSessionManager;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/PageNumberMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/PageNumberMenuListener.java
similarity index 93%
rename from src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/PageNumberMenuListener.java
rename to src/main/java/com/rsscripting/rswarehouse/assignpageslot/PageNumberMenuListener.java
index 84a0707..a60d688 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/PageNumberMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/PageNumberMenuListener.java
@@ -1,7 +1,7 @@
-package com.rsscripting.rswarehouse.admin.assignpageslot;
+package com.rsscripting.rswarehouse.assignpageslot;
-import com.rsscripting.rswarehouse.admin.adminsessions.PageSlotAssignmentSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.PageSlotAssignmentSessionManager;
+import com.rsscripting.rswarehouse.session.admin.PageSlotAssignmentSession;
+import com.rsscripting.rswarehouse.session.admin.PageSlotAssignmentSessionManager;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/SlotNumberMenu.java b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/SlotNumberMenu.java
similarity index 89%
rename from src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/SlotNumberMenu.java
rename to src/main/java/com/rsscripting/rswarehouse/assignpageslot/SlotNumberMenu.java
index 9b64a9f..04ac1c8 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/SlotNumberMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/SlotNumberMenu.java
@@ -1,8 +1,8 @@
-package com.rsscripting.rswarehouse.admin.assignpageslot;
+package com.rsscripting.rswarehouse.assignpageslot;
-import com.rsscripting.rswarehouse.admin.adminsessions.PageSlotAssignmentSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.PageSlotAssignmentSessionManager;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.session.admin.PageSlotAssignmentSession;
+import com.rsscripting.rswarehouse.session.admin.PageSlotAssignmentSessionManager;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/SlotNumberMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/SlotNumberMenuListener.java
similarity index 92%
rename from src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/SlotNumberMenuListener.java
rename to src/main/java/com/rsscripting/rswarehouse/assignpageslot/SlotNumberMenuListener.java
index 3b77954..1a39b44 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/assignpageslot/SlotNumberMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/assignpageslot/SlotNumberMenuListener.java
@@ -1,8 +1,8 @@
-package com.rsscripting.rswarehouse.admin.assignpageslot;
+package com.rsscripting.rswarehouse.assignpageslot;
-import com.rsscripting.rswarehouse.admin.adminsessions.PageSlotAssignmentSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.PageSlotAssignmentSessionManager;
-import com.rsscripting.rswarehouse.placement.placementdao.ItemPlacementDAO;
+import com.rsscripting.rswarehouse.session.admin.PageSlotAssignmentSession;
+import com.rsscripting.rswarehouse.session.admin.PageSlotAssignmentSessionManager;
+import com.rsscripting.rswarehouse.dao.ItemPlacementDAO;
import com.rsscripting.rswarehouse.item.ItemsMenu;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositMenu.java b/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositMenu.java
index d2d73e5..eb2f9fe 100644
--- a/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.autodeposit;
-import com.rsscripting.rswarehouse.autodeposit.autodepositdao.AutoDepositDAO;
+import com.rsscripting.rswarehouse.dao.AutoDepositDAO;
import com.rsscripting.rswarehouse.session.GuiSession;
import com.rsscripting.rswarehouse.session.GuiSessionManager;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
diff --git a/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositMenuListener.java
index 8504dcc..aa06409 100644
--- a/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositMenuListener.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.autodeposit;
-import com.rsscripting.rswarehouse.autodeposit.autodepositdao.AutoDepositDAO;
+import com.rsscripting.rswarehouse.dao.AutoDepositDAO;
import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
import com.rsscripting.rswarehouse.session.GuiSession;
import com.rsscripting.rswarehouse.session.GuiSessionManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositPickupListener.java b/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositPickupListener.java
index 5608ee4..38f2c0e 100644
--- a/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositPickupListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/autodeposit/AutoDepositPickupListener.java
@@ -1,8 +1,8 @@
package com.rsscripting.rswarehouse.autodeposit;
-import com.rsscripting.rswarehouse.autodeposit.autodepositdao.AutoDepositDAO;
-import com.rsscripting.rswarehouse.inventory.inventorydao.InventoryLookupDAO;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.AutoDepositDAO;
+import com.rsscripting.rswarehouse.dao.InventoryLookupDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryDisplayNameMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryDisplayNameMenuListener.java
index 1ea03c3..cebf235 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryDisplayNameMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryDisplayNameMenuListener.java
@@ -1,7 +1,7 @@
package com.rsscripting.rswarehouse.category.categorycreation;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
-import com.rsscripting.rswarehouse.admin.AdminMenu;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
+import com.rsscripting.rswarehouse.adminmenu.AdminMenu;
import com.rsscripting.rswarehouse.session.GuiSession;
import com.rsscripting.rswarehouse.session.GuiSessionManager;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryLoreMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryLoreMenuListener.java
index 4ce4a35..3f679aa 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryLoreMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryLoreMenuListener.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.category.categorycreation;
-import com.rsscripting.rswarehouse.admin.admindao.CreateCategoryDAO;
+import com.rsscripting.rswarehouse.dao.admin.CreateCategoryDAO;
import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.session.GuiSession;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryNameMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryNameMenuListener.java
index 05caa99..a072a96 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryNameMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/categorycreation/CategoryNameMenuListener.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.category.categorycreation;
-import com.rsscripting.rswarehouse.admin.AdminMenu;
+import com.rsscripting.rswarehouse.adminmenu.AdminMenu;
import com.rsscripting.rswarehouse.session.GuiSession;
import com.rsscripting.rswarehouse.session.GuiSessionManager;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditDisplayNameMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditDisplayNameMenuListener.java
index fdd7491..ed645da 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditDisplayNameMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditDisplayNameMenuListener.java
@@ -1,8 +1,8 @@
package com.rsscripting.rswarehouse.category.categoryedit;
-import com.rsscripting.rswarehouse.admin.admindao.UpdateCategoryDAO;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSessionManager;
+import com.rsscripting.rswarehouse.dao.admin.UpdateCategoryDAO;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSession;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSessionManager;
import com.rsscripting.rswarehouse.category.categoryoptions.CategoryOptionsMenu;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenu.java b/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenu.java
index 3d15d25..c6946f0 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenu.java
@@ -1,8 +1,8 @@
package com.rsscripting.rswarehouse.category.categoryedit;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSessionManager;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSession;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSessionManager;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenuChatListener.java b/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenuChatListener.java
index 2d0915b..368940b 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenuChatListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenuChatListener.java
@@ -1,7 +1,7 @@
package com.rsscripting.rswarehouse.category.categoryedit;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSessionManager;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSession;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSessionManager;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenuListener.java
index b41f03b..6231f50 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditLoreMenuListener.java
@@ -1,8 +1,8 @@
package com.rsscripting.rswarehouse.category.categoryedit;
-import com.rsscripting.rswarehouse.admin.admindao.UpdateCategoryDAO;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSessionManager;
+import com.rsscripting.rswarehouse.dao.admin.UpdateCategoryDAO;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSession;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSessionManager;
import com.rsscripting.rswarehouse.category.categoryoptions.CategoryOptionsMenu;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditMaterialMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditMaterialMenuListener.java
index f63e757..14455ed 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditMaterialMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/categoryedit/CategoryEditMaterialMenuListener.java
@@ -1,8 +1,8 @@
package com.rsscripting.rswarehouse.category.categoryedit;
-import com.rsscripting.rswarehouse.admin.admindao.UpdateCategoryDAO;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSessionManager;
+import com.rsscripting.rswarehouse.dao.admin.UpdateCategoryDAO;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSession;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSessionManager;
import com.rsscripting.rswarehouse.category.categoryoptions.CategoryOptionsMenu;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categorymenu/CategoryMenu.java b/src/main/java/com/rsscripting/rswarehouse/category/categorymenu/CategoryMenu.java
index 8f4bf28..009070f 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categorymenu/CategoryMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/categorymenu/CategoryMenu.java
@@ -1,5 +1,7 @@
package com.rsscripting.rswarehouse.category.categorymenu;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
+import com.rsscripting.rswarehouse.config.ConfigManager;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.constants.RSKeys;
@@ -97,6 +99,9 @@ public class CategoryMenu {
WarehouseCategory uncategorized =
null;
+ WarehouseCategory serverCommands =
+ null;
+
List displayCategories =
new ArrayList<>();
@@ -104,7 +109,6 @@ public class CategoryMenu {
WarehouseCategory category
: categories
) {
-
if (
category.displayName()
.equalsIgnoreCase(
@@ -115,6 +119,16 @@ public class CategoryMenu {
uncategorized =
category;
+ }
+ else if (category.id() == 1001) {
+
+
+ if (ConfigManager.isServerCommandsEnabled()) {
+
+ serverCommands = category;
+
+ }
+
}
else {
@@ -420,6 +434,54 @@ public class CategoryMenu {
}
+ if (serverCommands != null) {
+
+ ItemStack icon =
+ RSMenuUtils.createMenuItemWithLore(
+ Material.valueOf(
+ serverCommands.material()
+ ),
+ "§a"
+ + serverCommands.displayName(),
+ serverCommands.lore() == null
+ || serverCommands.lore().isBlank()
+ ? List.of()
+ : Arrays.asList(
+ serverCommands.lore()
+ .split("\n")
+ )
+ );
+
+ ItemMeta meta =
+ icon.getItemMeta();
+
+ if (meta != null) {
+
+ meta.addItemFlags(
+ ItemFlag.HIDE_ATTRIBUTES,
+ ItemFlag.HIDE_ADDITIONAL_TOOLTIP
+ );
+
+ meta.getPersistentDataContainer()
+ .set(
+ RSKeys.CATEGORY_ID,
+ PersistentDataType.INTEGER,
+ serverCommands.id()
+ );
+
+ icon.setItemMeta(
+ meta
+ );
+
+ }
+
+ menu.setItem(
+ 6,
+ icon
+ );
+
+ }
+
player.openInventory(
menu
);
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categorymenu/CategoryMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/category/categorymenu/CategoryMenuListener.java
index 3dc30dd..cb2add9 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categorymenu/CategoryMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/categorymenu/CategoryMenuListener.java
@@ -3,7 +3,6 @@ package com.rsscripting.rswarehouse.category.categorymenu;
import com.rsscripting.rswarehouse.category.categoryoptions.CategoryOptionsMenu;
import com.rsscripting.rswarehouse.autodeposit.AutoDepositMenu;
-import com.rsscripting.rswarehouse.item.ItemsMenu;
import com.rsscripting.rswarehouse.navigation.NavigationManager;
import com.rsscripting.rswarehouse.session.GuiSession;
import com.rsscripting.rswarehouse.session.GuiSessionManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categoryoptions/CategoryOptionsMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/category/categoryoptions/CategoryOptionsMenuListener.java
index 3f04136..e8337c2 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categoryoptions/CategoryOptionsMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/categoryoptions/CategoryOptionsMenuListener.java
@@ -1,15 +1,15 @@
package com.rsscripting.rswarehouse.category.categoryoptions;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryEditSessionManager;
-import com.rsscripting.rswarehouse.admin.assignpageslot.CategoryPageNumberMenu;
-import com.rsscripting.rswarehouse.admin.adminsessions.CategoryPageSlotSessionManager;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSession;
+import com.rsscripting.rswarehouse.session.admin.CategoryEditSessionManager;
+import com.rsscripting.rswarehouse.assignpageslot.CategoryPageNumberMenu;
+import com.rsscripting.rswarehouse.session.admin.CategoryPageSlotSessionManager;
import com.rsscripting.rswarehouse.category.categoryedit.CategoryEditDisplayNameMenu;
import com.rsscripting.rswarehouse.category.categoryedit.CategoryEditLoreMenu;
import com.rsscripting.rswarehouse.category.categoryedit.CategoryEditMaterialMenu;
import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/copytocategory/CopyToCategoryMenu.java b/src/main/java/com/rsscripting/rswarehouse/category/copytocategory/CopyToCategoryMenu.java
index 4ae16b8..ad4a954 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/copytocategory/CopyToCategoryMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/copytocategory/CopyToCategoryMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.category.copytocategory;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.constants.RSKeys;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/copytocategory/CopyToCategoryMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/category/copytocategory/CopyToCategoryMenuListener.java
index f7fcec1..660a553 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/copytocategory/CopyToCategoryMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/copytocategory/CopyToCategoryMenuListener.java
@@ -1,7 +1,7 @@
package com.rsscripting.rswarehouse.category.copytocategory;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
-import com.rsscripting.rswarehouse.placement.placementdao.ItemPlacementDAO;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.ItemPlacementDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.constants.RSKeys;
import com.rsscripting.rswarehouse.item.ItemsMenu;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/movetocategory/MoveToCategoryMenu.java b/src/main/java/com/rsscripting/rswarehouse/category/movetocategory/MoveToCategoryMenu.java
index a17d835..8569944 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/movetocategory/MoveToCategoryMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/movetocategory/MoveToCategoryMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.category.movetocategory;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/movetocategory/MoveToCategoryMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/category/movetocategory/MoveToCategoryMenuListener.java
index 95ef0ee..566efe2 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/movetocategory/MoveToCategoryMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/category/movetocategory/MoveToCategoryMenuListener.java
@@ -1,7 +1,7 @@
package com.rsscripting.rswarehouse.category.movetocategory;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
-import com.rsscripting.rswarehouse.placement.placementdao.ItemPlacementDAO;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.ItemPlacementDAO;
import com.rsscripting.rswarehouse.item.ItemsMenu;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.constants.RSKeys;
diff --git a/src/main/java/com/rsscripting/rswarehouse/chestautoprocess/ChestAutoProcessingTask.java b/src/main/java/com/rsscripting/rswarehouse/chestautoprocess/ChestAutoProcessingTask.java
index 3d7c7c3..0be5673 100644
--- a/src/main/java/com/rsscripting/rswarehouse/chestautoprocess/ChestAutoProcessingTask.java
+++ b/src/main/java/com/rsscripting/rswarehouse/chestautoprocess/ChestAutoProcessingTask.java
@@ -1,7 +1,7 @@
package com.rsscripting.rswarehouse.chestautoprocess;
-import com.rsscripting.rswarehouse.deposit.dao.ChestDAO;
-import com.rsscripting.rswarehouse.deposit.dao.WarehouseChestDAO;
+import com.rsscripting.rswarehouse.dao.ChestDAO;
+import com.rsscripting.rswarehouse.dao.WarehouseChestDAO;
import org.bukkit.block.Chest;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
diff --git a/src/main/java/com/rsscripting/rswarehouse/conversion/ConvertMenu.java b/src/main/java/com/rsscripting/rswarehouse/chestconvert/ConvertMenu.java
similarity index 97%
rename from src/main/java/com/rsscripting/rswarehouse/conversion/ConvertMenu.java
rename to src/main/java/com/rsscripting/rswarehouse/chestconvert/ConvertMenu.java
index 50cd979..e3040ce 100644
--- a/src/main/java/com/rsscripting/rswarehouse/conversion/ConvertMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/chestconvert/ConvertMenu.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.conversion;
+package com.rsscripting.rswarehouse.chestconvert;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/conversion/ConvertMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/chestconvert/ConvertMenuListener.java
similarity index 96%
rename from src/main/java/com/rsscripting/rswarehouse/conversion/ConvertMenuListener.java
rename to src/main/java/com/rsscripting/rswarehouse/chestconvert/ConvertMenuListener.java
index b100021..7a28953 100644
--- a/src/main/java/com/rsscripting/rswarehouse/conversion/ConvertMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/chestconvert/ConvertMenuListener.java
@@ -1,10 +1,9 @@
-package com.rsscripting.rswarehouse.conversion;
+package com.rsscripting.rswarehouse.chestconvert;
-import com.rsscripting.rswarehouse.deposit.dao.ChestDAO;
-import com.rsscripting.rswarehouse.deposit.dao.WarehouseChestDAO;
-import com.rsscripting.rswarehouse.deposit.dao.VerifyIsChestDAO;
+import com.rsscripting.rswarehouse.dao.ChestDAO;
+import com.rsscripting.rswarehouse.dao.WarehouseChestDAO;
+import com.rsscripting.rswarehouse.dao.VerifyIsChestDAO;
import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
-import com.rsscripting.rswarehouse.main.MainMenu;
import com.rsscripting.rswarehouse.constants.RSConstants;
import com.rsscripting.rswarehouse.navigation.NavigationManager;
import com.rsscripting.rswarehouse.session.GuiSession;
diff --git a/src/main/java/com/rsscripting/rswarehouse/commands/RSPluginCommand.java b/src/main/java/com/rsscripting/rswarehouse/commands/RSPluginCommand.java
index 1a95bf9..07bb898 100644
--- a/src/main/java/com/rsscripting/rswarehouse/commands/RSPluginCommand.java
+++ b/src/main/java/com/rsscripting/rswarehouse/commands/RSPluginCommand.java
@@ -1,7 +1,6 @@
package com.rsscripting.rswarehouse.commands;
import com.rsscripting.rswarehouse.config.ConfigManager;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
import com.rsscripting.rswarehouse.constants.RSConstants;
import com.rsscripting.rswarehouse.navigation.NavigationManager;
import com.rsscripting.rswarehouse.utils.VersionUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/commands/ShopCommand.java b/src/main/java/com/rsscripting/rswarehouse/commands/ShopCommand.java
index 8cfcfd1..d425c24 100644
--- a/src/main/java/com/rsscripting/rswarehouse/commands/ShopCommand.java
+++ b/src/main/java/com/rsscripting/rswarehouse/commands/ShopCommand.java
@@ -1,6 +1,5 @@
package com.rsscripting.rswarehouse.commands;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
import com.rsscripting.rswarehouse.deposit.DepositInventory;
import com.rsscripting.rswarehouse.navigation.NavigationManager;
import org.bukkit.command.Command;
diff --git a/src/main/java/com/rsscripting/rswarehouse/config/ConfigManager.java b/src/main/java/com/rsscripting/rswarehouse/config/ConfigManager.java
index 9a24b2e..254d1f5 100644
--- a/src/main/java/com/rsscripting/rswarehouse/config/ConfigManager.java
+++ b/src/main/java/com/rsscripting/rswarehouse/config/ConfigManager.java
@@ -53,19 +53,6 @@ public class ConfigManager {
}
- /*
- | Warehouse Chest name
- */
-
- public String getWarehouseChestName() {
-
- return config.getString(
- "warehouse-chest-name",
- "Community Warehouse"
- );
-
- }
-
/*
| Uncateforized enabled
*/
@@ -80,13 +67,15 @@ public class ConfigManager {
}
/*
- | Chest Protection Enabled
- */
+|--------------------------------------------------------------------------
+| Server Commands Enabled
+|--------------------------------------------------------------------------
+*/
- public boolean isWarehouseChestProtectionEnabled() {
+ public static boolean isServerCommandsEnabled() {
return config.getBoolean(
- "protect-warehouse-chests",
+ "display.show-server-commands",
true
);
diff --git a/src/main/java/com/rsscripting/rswarehouse/autodeposit/autodepositdao/AutoDepositDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/AutoDepositDAO.java
similarity index 99%
rename from src/main/java/com/rsscripting/rswarehouse/autodeposit/autodepositdao/AutoDepositDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/AutoDepositDAO.java
index 2182761..1d12cb7 100644
--- a/src/main/java/com/rsscripting/rswarehouse/autodeposit/autodepositdao/AutoDepositDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/AutoDepositDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.autodeposit.autodepositdao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/category/categorymenu/CategoryDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/CategoryDAO.java
similarity index 99%
rename from src/main/java/com/rsscripting/rswarehouse/category/categorymenu/CategoryDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/CategoryDAO.java
index b976696..9c39e83 100644
--- a/src/main/java/com/rsscripting/rswarehouse/category/categorymenu/CategoryDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/CategoryDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.category.categorymenu;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
diff --git a/src/main/java/com/rsscripting/rswarehouse/deposit/dao/ChestDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/ChestDAO.java
similarity index 98%
rename from src/main/java/com/rsscripting/rswarehouse/deposit/dao/ChestDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/ChestDAO.java
index b42da7a..0027fb4 100644
--- a/src/main/java/com/rsscripting/rswarehouse/deposit/dao/ChestDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/ChestDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.deposit.dao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.RSWarehouse;
import com.rsscripting.rswarehouse.database.DatabaseManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/variants/dao/DamagedVariantsDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/DamagedVariantsDAO.java
similarity index 99%
rename from src/main/java/com/rsscripting/rswarehouse/variants/dao/DamagedVariantsDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/DamagedVariantsDAO.java
index 1a2b6e3..2790202 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variants/dao/DamagedVariantsDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/DamagedVariantsDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.variants.dao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import com.rsscripting.rswarehouse.model.DamagedVariant;
diff --git a/src/main/java/com/rsscripting/rswarehouse/discovery/discoverydao/DiscoveryDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/DiscoveryDAO.java
similarity index 96%
rename from src/main/java/com/rsscripting/rswarehouse/discovery/discoverydao/DiscoveryDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/DiscoveryDAO.java
index e959105..be5ba31 100644
--- a/src/main/java/com/rsscripting/rswarehouse/discovery/discoverydao/DiscoveryDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/DiscoveryDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.discovery.discoverydao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/variants/dao/EnchantedVariantsDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/EnchantedVariantsDAO.java
similarity index 99%
rename from src/main/java/com/rsscripting/rswarehouse/variants/dao/EnchantedVariantsDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/EnchantedVariantsDAO.java
index cbe98ab..d967224 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variants/dao/EnchantedVariantsDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/EnchantedVariantsDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.variants.dao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import com.rsscripting.rswarehouse.model.EnchantedVariant;
diff --git a/src/main/java/com/rsscripting/rswarehouse/inventory/inventorydao/InventoryCreationDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/InventoryCreationDAO.java
similarity index 95%
rename from src/main/java/com/rsscripting/rswarehouse/inventory/inventorydao/InventoryCreationDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/InventoryCreationDAO.java
index 38dd4f2..5c487bf 100644
--- a/src/main/java/com/rsscripting/rswarehouse/inventory/inventorydao/InventoryCreationDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/InventoryCreationDAO.java
@@ -1,6 +1,5 @@
-package com.rsscripting.rswarehouse.inventory.inventorydao;
+package com.rsscripting.rswarehouse.dao;
-import com.rsscripting.rswarehouse.references.referencesdao.WarehouseReferenceDAO;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
import org.bukkit.inventory.ItemStack;
diff --git a/src/main/java/com/rsscripting/rswarehouse/inventory/inventorydao/InventoryLookupDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/InventoryLookupDAO.java
similarity index 97%
rename from src/main/java/com/rsscripting/rswarehouse/inventory/inventorydao/InventoryLookupDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/InventoryLookupDAO.java
index 163ebbf..2be181f 100644
--- a/src/main/java/com/rsscripting/rswarehouse/inventory/inventorydao/InventoryLookupDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/InventoryLookupDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.inventory.inventorydao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/inventory/InventoryQuantityDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/InventoryQuantityDAO.java
similarity index 98%
rename from src/main/java/com/rsscripting/rswarehouse/inventory/InventoryQuantityDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/InventoryQuantityDAO.java
index 309bbdd..a8b428b 100644
--- a/src/main/java/com/rsscripting/rswarehouse/inventory/InventoryQuantityDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/InventoryQuantityDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.inventory;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/itemdao/ItemDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/ItemDAO.java
similarity index 95%
rename from src/main/java/com/rsscripting/rswarehouse/item/itemdao/ItemDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/ItemDAO.java
index 14d95a1..30c89dd 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/itemdao/ItemDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/ItemDAO.java
@@ -1,11 +1,6 @@
-package com.rsscripting.rswarehouse.item.itemdao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.RSWarehouse;
-import com.rsscripting.rswarehouse.discovery.discoverydao.DiscoveryDAO;
-import com.rsscripting.rswarehouse.inventory.inventorydao.InventoryCreationDAO;
-import com.rsscripting.rswarehouse.inventory.inventorydao.InventoryLookupDAO;
-import com.rsscripting.rswarehouse.inventory.InventoryQuantityDAO;
-import com.rsscripting.rswarehouse.references.referencesdao.WarehouseReferenceDAO;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/placement/placementdao/ItemPlacementDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/ItemPlacementDAO.java
similarity index 98%
rename from src/main/java/com/rsscripting/rswarehouse/placement/placementdao/ItemPlacementDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/ItemPlacementDAO.java
index b76b60a..37679a3 100644
--- a/src/main/java/com/rsscripting/rswarehouse/placement/placementdao/ItemPlacementDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/ItemPlacementDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.placement.placementdao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import com.rsscripting.rswarehouse.model.WarehouseItem;
@@ -7,7 +7,7 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
-import static com.rsscripting.rswarehouse.item.itemdao.ItemDAO.getItemById;
+import static com.rsscripting.rswarehouse.dao.ItemDAO.getItemById;
public class ItemPlacementDAO {
diff --git a/src/main/java/com/rsscripting/rswarehouse/variants/dao/PartiallyFilledVariantsDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/PartiallyFilledVariantsDAO.java
similarity index 99%
rename from src/main/java/com/rsscripting/rswarehouse/variants/dao/PartiallyFilledVariantsDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/PartiallyFilledVariantsDAO.java
index 4bd2684..e364ff2 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variants/dao/PartiallyFilledVariantsDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/PartiallyFilledVariantsDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.variants.dao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import com.rsscripting.rswarehouse.model.PartiallyFilledVariant;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/subcategorydao/SubCategoryDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/SubCategoryDAO.java
similarity index 99%
rename from src/main/java/com/rsscripting/rswarehouse/subcategory/subcategorydao/SubCategoryDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/SubCategoryDAO.java
index 3993ca4..e3f5c35 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/subcategorydao/SubCategoryDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/SubCategoryDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.subcategory.subcategorydao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
diff --git a/src/main/java/com/rsscripting/rswarehouse/deposit/dao/VerifyIsChestDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/VerifyIsChestDAO.java
similarity index 97%
rename from src/main/java/com/rsscripting/rswarehouse/deposit/dao/VerifyIsChestDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/VerifyIsChestDAO.java
index 6caf6c2..914a013 100644
--- a/src/main/java/com/rsscripting/rswarehouse/deposit/dao/VerifyIsChestDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/VerifyIsChestDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.deposit.dao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.RSWarehouse;
import com.rsscripting.rswarehouse.database.DatabaseManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/deposit/dao/WarehouseChestDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/WarehouseChestDAO.java
similarity index 98%
rename from src/main/java/com/rsscripting/rswarehouse/deposit/dao/WarehouseChestDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/WarehouseChestDAO.java
index f292a7c..c6f6e7e 100644
--- a/src/main/java/com/rsscripting/rswarehouse/deposit/dao/WarehouseChestDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/WarehouseChestDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.deposit.dao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.RSWarehouse;
import com.rsscripting.rswarehouse.config.ConfigManager;
@@ -18,7 +18,7 @@ import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
-import static com.rsscripting.rswarehouse.deposit.dao.VerifyIsChestDAO.isWarehouseChest;
+import static com.rsscripting.rswarehouse.dao.VerifyIsChestDAO.isWarehouseChest;
public class WarehouseChestDAO {
diff --git a/src/main/java/com/rsscripting/rswarehouse/references/referencesdao/WarehouseReferenceDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/WarehouseReferenceDAO.java
similarity index 97%
rename from src/main/java/com/rsscripting/rswarehouse/references/referencesdao/WarehouseReferenceDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/WarehouseReferenceDAO.java
index a063324..f17b7a7 100644
--- a/src/main/java/com/rsscripting/rswarehouse/references/referencesdao/WarehouseReferenceDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/WarehouseReferenceDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.references.referencesdao;
+package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import com.rsscripting.rswarehouse.model.WarehouseItem;
@@ -11,7 +11,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
-import static com.rsscripting.rswarehouse.item.itemdao.ItemDAO.getItemById;
+import static com.rsscripting.rswarehouse.dao.ItemDAO.getItemById;
public class WarehouseReferenceDAO {
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/CategoryPlacementDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/admin/CategoryPlacementDAO.java
similarity index 95%
rename from src/main/java/com/rsscripting/rswarehouse/admin/admindao/CategoryPlacementDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/admin/CategoryPlacementDAO.java
index 8e9cb04..ad35328 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/CategoryPlacementDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/admin/CategoryPlacementDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.admindao;
+package com.rsscripting.rswarehouse.dao.admin;
import com.rsscripting.rswarehouse.database.DatabaseManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/CreateCategoryDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/admin/CreateCategoryDAO.java
similarity index 97%
rename from src/main/java/com/rsscripting/rswarehouse/admin/admindao/CreateCategoryDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/admin/CreateCategoryDAO.java
index ca55f41..20b7903 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/CreateCategoryDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/admin/CreateCategoryDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.admindao;
+package com.rsscripting.rswarehouse.dao.admin;
import com.rsscripting.rswarehouse.database.DatabaseManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/dao/admin/CreateServerCommandDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/admin/CreateServerCommandDAO.java
new file mode 100644
index 0000000..a65a0a3
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/admin/CreateServerCommandDAO.java
@@ -0,0 +1,257 @@
+package com.rsscripting.rswarehouse.dao.admin;
+
+import com.rsscripting.rswarehouse.database.DatabaseManager;
+import com.rsscripting.rswarehouse.utils.ItemStackUtils;
+import org.bukkit.Material;
+import org.bukkit.inventory.ItemStack;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.sql.SQLException;
+
+public class CreateServerCommandDAO {
+
+ public static int createServerCommand(
+ String internalName,
+ String displayName,
+ String material,
+ String lore
+ ) {
+
+ try (
+ Connection connection =
+ DatabaseManager.getConnection()
+ ) {
+
+ connection.setAutoCommit(false);
+
+ try {
+
+ /*
+ * Create the Server Command category.
+ */
+
+ int nextDisplayOrder = 1;
+
+ try (
+ PreparedStatement maxStatement =
+ connection.prepareStatement(
+ """
+ SELECT COALESCE(
+ MAX(display_order),
+ 0
+ )
+ FROM warehouse_categories
+ """
+ )
+ ) {
+
+ ResultSet resultSet =
+ maxStatement.executeQuery();
+
+ if (resultSet.next()) {
+
+ nextDisplayOrder =
+ resultSet.getInt(1) + 1;
+
+ }
+
+ }
+
+ int commandCategoryId;
+
+ try (
+ PreparedStatement statement =
+ connection.prepareStatement(
+ """
+ INSERT INTO warehouse_categories (
+ parent_category_id,
+ internal_name,
+ display_name,
+ material,
+ lore,
+ display_order,
+ page,
+ slot
+ )
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ """,
+ Statement.RETURN_GENERATED_KEYS
+ )
+ ) {
+
+ statement.setInt(
+ 1,
+ 1001
+ );
+
+ statement.setString(
+ 2,
+ internalName
+ );
+
+ statement.setString(
+ 3,
+ displayName
+ );
+
+ statement.setString(
+ 4,
+ material
+ );
+
+ statement.setString(
+ 5,
+ lore
+ );
+
+ statement.setInt(
+ 6,
+ nextDisplayOrder
+ );
+
+ statement.setInt(
+ 7,
+ 0
+ );
+
+ statement.setInt(
+ 8,
+ 0
+ );
+
+ statement.executeUpdate();
+
+ ResultSet keys =
+ statement.getGeneratedKeys();
+
+ if (!keys.next()) {
+
+ connection.rollback();
+
+ return -1;
+
+ }
+
+ commandCategoryId =
+ keys.getInt(1);
+
+ }
+
+
+ /*
+ * Create the display-only navigation item.
+ */
+
+ ItemStack item =
+ new ItemStack(
+ Material.valueOf(
+ material
+ )
+ );
+
+ String serializedItem =
+ ItemStackUtils.serialize(
+ item
+ );
+
+ try (
+ PreparedStatement statement =
+ connection.prepareStatement(
+ """
+ INSERT INTO warehouse_items (
+ category_id,
+ serialized_item,
+ default_lore,
+ inventory_id,
+ subcategory_id,
+ created_at,
+ page,
+ slot
+ )
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ """
+ )
+ ) {
+
+ statement.setInt(
+ 1,
+ 1001
+ );
+
+ statement.setString(
+ 2,
+ serializedItem
+ );
+
+ statement.setString(
+ 3,
+ null
+ );
+
+ statement.setObject(
+ 4,
+ null
+ );
+
+ statement.setInt(
+ 5,
+ commandCategoryId
+ );
+
+ statement.setString(
+ 6,
+ String.valueOf(
+ System.currentTimeMillis()
+ )
+ );
+
+ statement.setObject(
+ 7,
+ null
+ );
+
+ statement.setObject(
+ 8,
+ null
+ );
+
+ statement.executeUpdate();
+
+ }
+
+ connection.commit();
+
+ return commandCategoryId;
+
+ }
+
+ catch (SQLException exception) {
+
+ connection.rollback();
+
+ exception.printStackTrace();
+
+ }
+
+ finally {
+
+ connection.setAutoCommit(true);
+
+ }
+
+ }
+
+ catch (SQLException exception) {
+
+ exception.printStackTrace();
+
+ }
+
+ return -1;
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/CreateSubCategoryDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/admin/CreateSubCategoryDAO.java
similarity index 98%
rename from src/main/java/com/rsscripting/rswarehouse/admin/admindao/CreateSubCategoryDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/admin/CreateSubCategoryDAO.java
index 51d3043..dd518d3 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/CreateSubCategoryDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/admin/CreateSubCategoryDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.admindao;
+package com.rsscripting.rswarehouse.dao.admin;
import com.rsscripting.rswarehouse.database.DatabaseManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/PurgeVariantsDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/admin/PurgeVariantsDAO.java
similarity index 98%
rename from src/main/java/com/rsscripting/rswarehouse/admin/admindao/PurgeVariantsDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/admin/PurgeVariantsDAO.java
index e129865..26695fc 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/PurgeVariantsDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/admin/PurgeVariantsDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.admindao;
+package com.rsscripting.rswarehouse.dao.admin;
import com.rsscripting.rswarehouse.database.DatabaseManager;
import org.bukkit.Bukkit;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/UpdateCategoryDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/admin/UpdateCategoryDAO.java
similarity index 98%
rename from src/main/java/com/rsscripting/rswarehouse/admin/admindao/UpdateCategoryDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/admin/UpdateCategoryDAO.java
index cf644a4..b40e1db 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/UpdateCategoryDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/admin/UpdateCategoryDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.admindao;
+package com.rsscripting.rswarehouse.dao.admin;
import com.rsscripting.rswarehouse.database.DatabaseManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/WarehouseStatisticsDAO.java b/src/main/java/com/rsscripting/rswarehouse/dao/admin/WarehouseStatisticsDAO.java
similarity index 98%
rename from src/main/java/com/rsscripting/rswarehouse/admin/admindao/WarehouseStatisticsDAO.java
rename to src/main/java/com/rsscripting/rswarehouse/dao/admin/WarehouseStatisticsDAO.java
index b61eed0..d639053 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/admindao/WarehouseStatisticsDAO.java
+++ b/src/main/java/com/rsscripting/rswarehouse/dao/admin/WarehouseStatisticsDAO.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.admindao;
+package com.rsscripting.rswarehouse.dao.admin;
import com.rsscripting.rswarehouse.database.DatabaseManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/database/DatabaseTableCreator.java b/src/main/java/com/rsscripting/rswarehouse/database/DatabaseTableCreator.java
index 05957db..b4d4011 100644
--- a/src/main/java/com/rsscripting/rswarehouse/database/DatabaseTableCreator.java
+++ b/src/main/java/com/rsscripting/rswarehouse/database/DatabaseTableCreator.java
@@ -92,6 +92,31 @@ public class DatabaseTableCreator {
"""
);
+ connection.createStatement().execute(
+ """
+ INSERT OR IGNORE INTO warehouse_categories (
+ id,
+ internal_name,
+ display_name,
+ material,
+ lore,
+ display_order,
+ page,
+ slot
+ )
+ VALUES (
+ 1001,
+ 'server_commands',
+ 'Server Commands',
+ 'BOOK',
+ '\nCommands and descriptions available on this server.',
+ 0,
+ 0,
+ 6
+ )
+ """
+ );
+
connection.createStatement().execute(
"""
@@ -183,7 +208,6 @@ public class DatabaseTableCreator {
);
} catch (Exception e) {
-
plugin.getLogger().log(
Level.SEVERE,
"Failed to create tables.",
diff --git a/src/main/java/com/rsscripting/rswarehouse/deposit/WarehouseChestProcessor.java b/src/main/java/com/rsscripting/rswarehouse/deposit/WarehouseChestProcessor.java
index dcf902f..e90d0aa 100644
--- a/src/main/java/com/rsscripting/rswarehouse/deposit/WarehouseChestProcessor.java
+++ b/src/main/java/com/rsscripting/rswarehouse/deposit/WarehouseChestProcessor.java
@@ -1,12 +1,12 @@
package com.rsscripting.rswarehouse.deposit;
-import com.rsscripting.rswarehouse.deposit.dao.ChestDAO;
-import com.rsscripting.rswarehouse.inventory.inventorydao.InventoryCreationDAO;
-import com.rsscripting.rswarehouse.inventory.inventorydao.InventoryLookupDAO;
-import com.rsscripting.rswarehouse.variants.dao.DamagedVariantsDAO;
-import com.rsscripting.rswarehouse.variants.dao.EnchantedVariantsDAO;
-import com.rsscripting.rswarehouse.variants.dao.PartiallyFilledVariantsDAO;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.ChestDAO;
+import com.rsscripting.rswarehouse.dao.InventoryCreationDAO;
+import com.rsscripting.rswarehouse.dao.InventoryLookupDAO;
+import com.rsscripting.rswarehouse.dao.DamagedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.EnchantedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.PartiallyFilledVariantsDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.config.ConfigManager;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
import org.bukkit.block.Chest;
diff --git a/src/main/java/com/rsscripting/rswarehouse/deposit/WarehouseCloseListener.java b/src/main/java/com/rsscripting/rswarehouse/deposit/WarehouseCloseListener.java
index 7842c8b..8574d49 100644
--- a/src/main/java/com/rsscripting/rswarehouse/deposit/WarehouseCloseListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/deposit/WarehouseCloseListener.java
@@ -1,9 +1,7 @@
package com.rsscripting.rswarehouse.deposit;
-import com.rsscripting.rswarehouse.admin.admindao.PurgeVariantsDAO;
-import com.rsscripting.rswarehouse.deposit.dao.VerifyIsChestDAO;
+import com.rsscripting.rswarehouse.dao.VerifyIsChestDAO;
import com.rsscripting.rswarehouse.config.ConfigManager;
-import com.rsscripting.rswarehouse.navigation.NavigationManager;
import org.bukkit.block.Chest;
import org.bukkit.block.DoubleChest;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/rsscripting/rswarehouse/discovery/0 b/src/main/java/com/rsscripting/rswarehouse/discovery/0
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/ItemsBuilder.java b/src/main/java/com/rsscripting/rswarehouse/item/ItemsBuilder.java
index 1dd487d..f174905 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/ItemsBuilder.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/ItemsBuilder.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.item;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/ItemsMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/item/ItemsMenuListener.java
index c21c9af..28430fd 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/ItemsMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/ItemsMenuListener.java
@@ -1,8 +1,7 @@
package com.rsscripting.rswarehouse.item;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.item.options.ItemOptionsMenu;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.navigation.NavigationManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/ItemsPagination.java b/src/main/java/com/rsscripting/rswarehouse/item/ItemsPagination.java
index fc56f70..e139951 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/ItemsPagination.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/ItemsPagination.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.item;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import java.util.ArrayList;
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/TransactionAmountMenu.java b/src/main/java/com/rsscripting/rswarehouse/item/TransactionAmountMenu.java
index 7c156de..4068578 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/TransactionAmountMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/TransactionAmountMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.item;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/TransactionAmountMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/item/TransactionAmountMenuListener.java
index 589b529..b88569c 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/TransactionAmountMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/TransactionAmountMenuListener.java
@@ -1,7 +1,6 @@
package com.rsscripting.rswarehouse.item;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.session.GuiSession;
import com.rsscripting.rswarehouse.session.GuiSessionManager;
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/TransactionConfirmHandler.java b/src/main/java/com/rsscripting/rswarehouse/item/TransactionConfirmHandler.java
index 9348538..3f16a84 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/TransactionConfirmHandler.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/TransactionConfirmHandler.java
@@ -3,7 +3,7 @@ package com.rsscripting.rswarehouse.item;
import com.rsscripting.rswarehouse.session.TransactionSession;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
public class TransactionConfirmHandler {
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/TransactionVariantBuilder.java b/src/main/java/com/rsscripting/rswarehouse/item/TransactionVariantBuilder.java
index a437ebc..e8f6926 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/TransactionVariantBuilder.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/TransactionVariantBuilder.java
@@ -1,8 +1,8 @@
package com.rsscripting.rswarehouse.item;
-import com.rsscripting.rswarehouse.variants.dao.DamagedVariantsDAO;
-import com.rsscripting.rswarehouse.variants.dao.EnchantedVariantsDAO;
-import com.rsscripting.rswarehouse.variants.dao.PartiallyFilledVariantsDAO;
+import com.rsscripting.rswarehouse.dao.DamagedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.EnchantedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.PartiallyFilledVariantsDAO;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
import com.rsscripting.rswarehouse.constants.RSKeys;
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/TransactionWithdrawHandler.java b/src/main/java/com/rsscripting/rswarehouse/item/TransactionWithdrawHandler.java
index 3c64135..57cb4b3 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/TransactionWithdrawHandler.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/TransactionWithdrawHandler.java
@@ -1,8 +1,8 @@
package com.rsscripting.rswarehouse.item;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
-import com.rsscripting.rswarehouse.autodeposit.autodepositdao.AutoDepositDAO;
+import com.rsscripting.rswarehouse.dao.AutoDepositDAO;
import com.rsscripting.rswarehouse.session.TransactionSession;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/deleteitem/DeleteConfirmationMenu.java b/src/main/java/com/rsscripting/rswarehouse/item/deleteitem/DeleteConfirmationMenu.java
index 9c148a5..39ea699 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/deleteitem/DeleteConfirmationMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/deleteitem/DeleteConfirmationMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.item.deleteitem;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/deleteitem/DeleteConfirmationMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/item/deleteitem/DeleteConfirmationMenuListener.java
index b473653..5ab65a1 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/deleteitem/DeleteConfirmationMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/deleteitem/DeleteConfirmationMenuListener.java
@@ -1,12 +1,12 @@
package com.rsscripting.rswarehouse.item.deleteitem;
import com.rsscripting.rswarehouse.item.options.ItemOptionsMenu;
-import com.rsscripting.rswarehouse.inventory.InventoryQuantityDAO;
-import com.rsscripting.rswarehouse.references.referencesdao.WarehouseReferenceDAO;
-import com.rsscripting.rswarehouse.variants.dao.DamagedVariantsDAO;
-import com.rsscripting.rswarehouse.variants.dao.EnchantedVariantsDAO;
-import com.rsscripting.rswarehouse.variants.dao.PartiallyFilledVariantsDAO;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.InventoryQuantityDAO;
+import com.rsscripting.rswarehouse.dao.WarehouseReferenceDAO;
+import com.rsscripting.rswarehouse.dao.DamagedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.EnchantedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.PartiallyFilledVariantsDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import org.bukkit.Material;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenu.java b/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenu.java
index 66cf8db..cfbc453 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenu.java
@@ -1,9 +1,9 @@
package com.rsscripting.rswarehouse.item.options;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
-import com.rsscripting.rswarehouse.references.referencesdao.WarehouseReferenceDAO;
+import com.rsscripting.rswarehouse.dao.WarehouseReferenceDAO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
diff --git a/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenuListener.java
index 4e946b8..e625d01 100644
--- a/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenuListener.java
@@ -5,18 +5,18 @@ import com.rsscripting.rswarehouse.subcategory.copytosubcategory.CopyToSubCatego
import com.rsscripting.rswarehouse.item.deleteitem.DeleteConfirmationMenu;
import com.rsscripting.rswarehouse.category.movetocategory.MoveToCategoryMenu;
import com.rsscripting.rswarehouse.subcategory.movetosubcategory.MoveToSubCategoryMenu;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryCreationSessionManager;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryEditSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryEditSessionManager;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryCreationSessionManager;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryEditSession;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryEditSessionManager;
import com.rsscripting.rswarehouse.subcategory.items.SubCategoryEditDisplayNameMenu;
import com.rsscripting.rswarehouse.subcategory.items.SubCategoryEditLoreMenu;
import com.rsscripting.rswarehouse.subcategory.items.SubCategoryInternalNameMenu;
-import com.rsscripting.rswarehouse.admin.adminsessions.PageSlotAssignmentSessionManager;
-import com.rsscripting.rswarehouse.admin.assignpageslot.PageNumberMenu;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
-import com.rsscripting.rswarehouse.subcategory.subcategorydao.SubCategoryDAO;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
-import com.rsscripting.rswarehouse.references.referencesdao.WarehouseReferenceDAO;
+import com.rsscripting.rswarehouse.session.admin.PageSlotAssignmentSessionManager;
+import com.rsscripting.rswarehouse.assignpageslot.PageNumberMenu;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.SubCategoryDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.WarehouseReferenceDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/rsscripting/rswarehouse/main/MainMenu.java b/src/main/java/com/rsscripting/rswarehouse/mainmenu/MainMenu.java
similarity index 98%
rename from src/main/java/com/rsscripting/rswarehouse/main/MainMenu.java
rename to src/main/java/com/rsscripting/rswarehouse/mainmenu/MainMenu.java
index a3ed086..4d5fecb 100644
--- a/src/main/java/com/rsscripting/rswarehouse/main/MainMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/mainmenu/MainMenu.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.main;
+package com.rsscripting.rswarehouse.mainmenu;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.constants.RSConstants;
diff --git a/src/main/java/com/rsscripting/rswarehouse/main/MainMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/mainmenu/MainMenuListener.java
similarity index 93%
rename from src/main/java/com/rsscripting/rswarehouse/main/MainMenuListener.java
rename to src/main/java/com/rsscripting/rswarehouse/mainmenu/MainMenuListener.java
index 79b66c3..ee3f859 100644
--- a/src/main/java/com/rsscripting/rswarehouse/main/MainMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/mainmenu/MainMenuListener.java
@@ -1,10 +1,9 @@
-package com.rsscripting.rswarehouse.main;
+package com.rsscripting.rswarehouse.mainmenu;
-import com.rsscripting.rswarehouse.deposit.dao.WarehouseChestDAO;
+import com.rsscripting.rswarehouse.dao.WarehouseChestDAO;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
-import com.rsscripting.rswarehouse.admin.AdminMenu;
-import com.rsscripting.rswarehouse.conversion.ConvertMenuListener;
+import com.rsscripting.rswarehouse.adminmenu.AdminMenu;
+import com.rsscripting.rswarehouse.chestconvert.ConvertMenuListener;
import com.rsscripting.rswarehouse.constants.RSConstants;
import com.rsscripting.rswarehouse.navigation.NavigationManager;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/navigation/NavigationManager.java b/src/main/java/com/rsscripting/rswarehouse/navigation/NavigationManager.java
index 4310b1a..9fe7cc0 100644
--- a/src/main/java/com/rsscripting/rswarehouse/navigation/NavigationManager.java
+++ b/src/main/java/com/rsscripting/rswarehouse/navigation/NavigationManager.java
@@ -2,7 +2,7 @@ package com.rsscripting.rswarehouse.navigation;
import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
import com.rsscripting.rswarehouse.item.ItemsMenu;
-import com.rsscripting.rswarehouse.main.MainMenu;
+import com.rsscripting.rswarehouse.mainmenu.MainMenu;
import com.rsscripting.rswarehouse.session.GuiSessionManager;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/rsscripting/rswarehouse/otherlisteners/WarehouseChestBreakListener.java b/src/main/java/com/rsscripting/rswarehouse/otherlisteners/WarehouseChestBreakListener.java
index a04d4d8..6f511cf 100644
--- a/src/main/java/com/rsscripting/rswarehouse/otherlisteners/WarehouseChestBreakListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/otherlisteners/WarehouseChestBreakListener.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.otherlisteners;
-import com.rsscripting.rswarehouse.deposit.dao.VerifyIsChestDAO;
+import com.rsscripting.rswarehouse.dao.VerifyIsChestDAO;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/com/rsscripting/rswarehouse/placement/0 b/src/main/java/com/rsscripting/rswarehouse/placement/0
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/java/com/rsscripting/rswarehouse/references/0 b/src/main/java/com/rsscripting/rswarehouse/references/0
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/java/com/rsscripting/rswarehouse/registration/ListenerRegistration.java b/src/main/java/com/rsscripting/rswarehouse/registration/ListenerRegistration.java
index 6124496..c2d7f46 100644
--- a/src/main/java/com/rsscripting/rswarehouse/registration/ListenerRegistration.java
+++ b/src/main/java/com/rsscripting/rswarehouse/registration/ListenerRegistration.java
@@ -6,12 +6,13 @@ import com.rsscripting.rswarehouse.category.categoryedit.CategoryEditDisplayName
import com.rsscripting.rswarehouse.category.categoryedit.CategoryEditLoreMenuChatListener;
import com.rsscripting.rswarehouse.category.categoryedit.CategoryEditLoreMenuListener;
import com.rsscripting.rswarehouse.category.categoryedit.CategoryEditMaterialMenuListener;
+import com.rsscripting.rswarehouse.servercommands.*;
import com.rsscripting.rswarehouse.subcategory.items.*;
-import com.rsscripting.rswarehouse.admin.AdminMenuListener;
-import com.rsscripting.rswarehouse.admin.assignpageslot.CategoryPageNumberMenuListener;
-import com.rsscripting.rswarehouse.admin.assignpageslot.CategorySlotNumberMenuListener;
-import com.rsscripting.rswarehouse.admin.assignpageslot.PageNumberMenuListener;
-import com.rsscripting.rswarehouse.admin.assignpageslot.SlotNumberMenuListener;
+import com.rsscripting.rswarehouse.adminmenu.AdminMenuListener;
+import com.rsscripting.rswarehouse.assignpageslot.CategoryPageNumberMenuListener;
+import com.rsscripting.rswarehouse.assignpageslot.CategorySlotNumberMenuListener;
+import com.rsscripting.rswarehouse.assignpageslot.PageNumberMenuListener;
+import com.rsscripting.rswarehouse.assignpageslot.SlotNumberMenuListener;
import com.rsscripting.rswarehouse.category.categoryoptions.CategoryOptionsMenuListener;
import com.rsscripting.rswarehouse.category.copytocategory.CopyToCategoryMenuListener;
import com.rsscripting.rswarehouse.subcategory.copytosubcategory.CopyToSubCategoryMenuListener;
@@ -20,7 +21,7 @@ import com.rsscripting.rswarehouse.item.options.ItemOptionsMenuListener;
import com.rsscripting.rswarehouse.category.movetocategory.MoveToCategoryMenuListener;
import com.rsscripting.rswarehouse.subcategory.movetosubcategory.MoveToSubCategoryMenuListener;
import com.rsscripting.rswarehouse.deposit.WarehouseCloseListener;
-import com.rsscripting.rswarehouse.conversion.ConvertMenuListener;
+import com.rsscripting.rswarehouse.chestconvert.ConvertMenuListener;
import com.rsscripting.rswarehouse.autodeposit.AutoDepositMenuListener;
import com.rsscripting.rswarehouse.autodeposit.AutoDepositPickupListener;
import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenuListener;
@@ -30,7 +31,7 @@ import com.rsscripting.rswarehouse.variantsenchanted.EnchantedVariantsMenuListen
import com.rsscripting.rswarehouse.variantsenchanted.EnchantedVariantsTransactionMenuListener;
import com.rsscripting.rswarehouse.item.ItemsMenuListener;
import com.rsscripting.rswarehouse.item.TransactionAmountMenuListener;
-import com.rsscripting.rswarehouse.main.MainMenuListener;
+import com.rsscripting.rswarehouse.mainmenu.MainMenuListener;
import com.rsscripting.rswarehouse.otherlisteners.RSUpdateNotificationListener;
import com.rsscripting.rswarehouse.otherlisteners.WarehouseChestBreakListener;
import com.rsscripting.rswarehouse.variantspartiallyfilled.PartiallyFilledVariantsMenuListener;
@@ -46,6 +47,8 @@ public final class ListenerRegistration {
RSWarehouse plugin
) {
+ /* Convert Menu */
+
ConvertMenuListener conversionListener =
new ConvertMenuListener();
@@ -61,9 +64,81 @@ public final class ListenerRegistration {
)
);
+ /* Admin Menu */
+
ListenerRegistrar.register(
plugin,
- new SubCategoryDisplayNameMenuListener()
+ new AdminMenuListener(
+ conversionListener
+ )
+ );
+
+ /* Assign Page/Slot */
+
+ ListenerRegistrar.register(
+ plugin,
+ new CategoryPageNumberMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new CategorySlotNumberMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new PageNumberMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new SlotNumberMenuListener()
+ );
+
+ /* Auto Deposit */
+
+ ListenerRegistrar.register(
+ plugin,
+ new AutoDepositMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new AutoDepositPickupListener()
+ );
+
+ /* Category Creation */
+
+ ListenerRegistrar.register(
+ plugin,
+ new CategoryDisplayNameMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new CategoryLoreChatListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new CategoryLoreMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new CategoryMaterialPickerMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new CategoryNameMenuListener()
+ );
+
+ /* Category Edit */
+
+ ListenerRegistrar.register(
+ plugin,
+ new CategoryEditDisplayNameMenuListener()
);
ListenerRegistrar.register(
@@ -74,11 +149,6 @@ public final class ListenerRegistration {
ListenerRegistrar.register(
plugin,
new CategoryEditLoreMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new CategoryEditDisplayNameMenuListener()
);
ListenerRegistrar.register(
@@ -86,6 +156,135 @@ public final class ListenerRegistration {
new CategoryEditMaterialMenuListener()
);
+ /* Category Menu */
+
+ ListenerRegistrar.register(
+ plugin,
+ new CategoryMenuListener()
+ );
+
+ /* Category Options */
+
+ ListenerRegistrar.register(
+ plugin,
+ new CategoryOptionsMenuListener()
+ );
+
+ /* Copy To Category */
+
+ ListenerRegistrar.register(
+ plugin,
+ new CopyToSubCategoryMenuListener()
+ );
+
+ /* Move To Category */
+
+ ListenerRegistrar.register(
+ plugin,
+ new MoveToCategoryMenuListener()
+ );
+
+ /* Deposit */
+
+ ListenerRegistrar.register(
+ plugin,
+ new WarehouseCloseListener()
+ );
+
+ /* Items Deletion */
+
+ ListenerRegistrar.register(
+ plugin,
+ new DeleteConfirmationMenuListener()
+ );
+
+ /* Item Options */
+
+ ListenerRegistrar.register(
+ plugin,
+ new ItemOptionsMenuListener()
+ );
+
+ /* Items */
+
+ ListenerRegistrar.register(
+ plugin,
+ new ItemsMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new TransactionAmountMenuListener()
+ );
+
+ /* Warehouse Chest Break */
+
+ ListenerRegistrar.register(
+ plugin,
+ new WarehouseChestBreakListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new RSUpdateNotificationListener()
+ );
+
+ /* Server Commands */
+
+ ListenerRegistrar.register(
+ plugin,
+ new ServerCommandDisplayNameMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new ServerCommandInternalNameMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new ServerCommandLoreChatListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new ServerCommandLoreMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new ServerCommandMaterialPickerMenuListener()
+ );
+
+ /* Copy To SubCategory */
+
+ ListenerRegistrar.register(
+ plugin,
+ new CopyToCategoryMenuListener()
+ );
+
+ /* Subcategory Items */
+
+ ListenerRegistrar.register(
+ plugin,
+ new SubCategoryDisplayNameMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new SubCategoryEditDisplayNameMenuListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new SubCategoryEditLoreChatListener()
+ );
+
+ ListenerRegistrar.register(
+ plugin,
+ new SubCategoryEditLoreMenuListener()
+ );
+
ListenerRegistrar.register(
plugin,
new SubCategoryInternalNameMenuListener()
@@ -101,127 +300,14 @@ public final class ListenerRegistration {
new SubCategoryLoreMenuListener()
);
+ /* Move To SubCategory */
+
ListenerRegistrar.register(
plugin,
new MoveToSubCategoryMenuListener()
);
- ListenerRegistrar.register(
- plugin,
- new RSUpdateNotificationListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new SubCategoryEditDisplayNameMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new SubCategoryEditLoreMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new SubCategoryEditLoreChatListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new DeleteConfirmationMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new ItemOptionsMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new AdminMenuListener(
- conversionListener
- )
- );
-
- ListenerRegistrar.register(
- plugin,
- new CategoryLoreMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new EnchantedVariantsMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new EnchantedVariantsTransactionMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new PartiallyFilledVariantsTransactionMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new CategoryLoreChatListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new MoveToCategoryMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new AutoDepositMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new AutoDepositPickupListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new WarehouseChestBreakListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new WarehouseCloseListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new PartiallyFilledVariantsMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new CategoryNameMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new CategoryDisplayNameMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new CategoryMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new CategoryMaterialPickerMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new ItemsMenuListener()
- );
+ /* Variants Damaged */
ListenerRegistrar.register(
plugin,
@@ -233,47 +319,30 @@ public final class ListenerRegistration {
new DamagedVariantsTransactionMenuListener()
);
+ /* Variants Enchanted */
+
ListenerRegistrar.register(
plugin,
- new TransactionAmountMenuListener()
+ new EnchantedVariantsMenuListener()
);
ListenerRegistrar.register(
plugin,
- new PageNumberMenuListener()
+ new EnchantedVariantsTransactionMenuListener()
+ );
+
+ /* Variants Parially Filled */
+
+ ListenerRegistrar.register(
+ plugin,
+ new PartiallyFilledVariantsTransactionMenuListener()
);
ListenerRegistrar.register(
plugin,
- new SlotNumberMenuListener()
+ new PartiallyFilledVariantsMenuListener()
);
- ListenerRegistrar.register(
- plugin,
- new CopyToSubCategoryMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new CopyToCategoryMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new CategoryOptionsMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new CategoryPageNumberMenuListener()
- );
-
- ListenerRegistrar.register(
- plugin,
- new CategorySlotNumberMenuListener()
- );
-
-
}
}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandDisplayNameMenu.java b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandDisplayNameMenu.java
new file mode 100644
index 0000000..5962f3f
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandDisplayNameMenu.java
@@ -0,0 +1,86 @@
+package com.rsscripting.rswarehouse.servercommands;
+
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.format.NamedTextColor;
+import org.bukkit.Material;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.MenuType;
+import org.bukkit.inventory.meta.ItemMeta;
+import org.bukkit.inventory.view.AnvilView;
+
+import java.util.List;
+
+public class ServerCommandDisplayNameMenu {
+
+ public static final String TITLE =
+ "Command Display Title";
+
+ public static void open(Player player) {
+
+ AnvilView view = MenuType.ANVIL
+ .builder()
+ .title(
+ Component.text(
+ TITLE
+ )
+ )
+ .build(player);
+
+ ItemStack confirm = new ItemStack(Material.LIME_WOOL);
+
+ ItemMeta meta = confirm.getItemMeta();
+
+ meta.displayName(
+ Component.text("")
+ );
+
+ meta.lore(
+ List.of(
+ Component.text(
+ "Save and proceed to description."
+ ).color(
+ NamedTextColor.WHITE
+ )
+ )
+ );
+
+ confirm.setItemMeta(meta);
+
+ view.setItem(
+ 0,
+ confirm
+ );
+
+
+ ItemStack cancel = new ItemStack(Material.RED_WOOL);
+
+ ItemMeta metacancel = cancel.getItemMeta();
+
+ metacancel.displayName(
+ Component.text("")
+ );
+
+ metacancel.lore(
+ List.of(
+ Component.text(
+ "Cancel"
+ ).color(
+ NamedTextColor.WHITE
+ )
+ )
+ );
+
+ cancel.setItemMeta(metacancel);
+
+
+ view.setItem(
+ 1,
+ cancel
+ );
+
+ view.open();
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandDisplayNameMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandDisplayNameMenuListener.java
new file mode 100644
index 0000000..6b32c52
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandDisplayNameMenuListener.java
@@ -0,0 +1,135 @@
+package com.rsscripting.rswarehouse.servercommands;
+
+import com.rsscripting.rswarehouse.adminmenu.AdminMenu;
+import com.rsscripting.rswarehouse.utils.RSMessageUtils;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSession;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSessionManager;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.inventory.InventoryClickEvent;
+import org.bukkit.event.inventory.InventoryCloseEvent;
+import org.bukkit.inventory.view.AnvilView;
+
+public class ServerCommandDisplayNameMenuListener implements Listener {
+
+ @EventHandler
+ public void onInventoryClick(InventoryClickEvent event) {
+
+ if (!(event.getView() instanceof AnvilView anvilView)) {
+ return;
+ }
+
+ if (!event.getView()
+ .title()
+ .toString()
+ .contains(
+ ServerCommandDisplayNameMenu.TITLE
+ )) {
+
+ return;
+
+ }
+
+ Player player =
+ (Player) event.getWhoClicked();
+
+ ServerCommandCreationSession session =
+ ServerCommandCreationSessionManager.getSession(
+ player.getUniqueId()
+ );
+
+ if (session == null) {
+
+ return;
+
+ }
+
+ event.setCancelled(true);
+
+ if (event.getCurrentItem() == null) {
+ return;
+ }
+
+ if (event.getRawSlot() == 0) {
+
+ String categoryName =
+ anvilView.getRenameText();
+
+ if (categoryName.length() > 25) {
+
+ RSMessageUtils.error(
+ player,
+ "Command titles may not exceed 25 characters."
+ );
+
+ return;
+
+ }
+
+ if (categoryName.isBlank()) {
+
+ RSMessageUtils.error(
+ player,
+ "Command title cannot be empty."
+ );
+
+ return;
+
+ }
+
+ session.setPendingServerCommandDisplayName(
+ categoryName
+ );
+
+ event.getView().getTopInventory().clear();
+
+ ServerCommandLoreMenu.open(
+ player
+ );
+
+ return;
+
+ }
+
+ if (event.getRawSlot() == 1) {
+
+ event.getView().getTopInventory().clear();
+
+ AdminMenu.open(
+ player
+ );
+
+ }
+ }
+
+ @EventHandler
+ public void onInventoryClose(
+ InventoryCloseEvent event
+ ) {
+
+ if (!(event.getView()
+ instanceof AnvilView)) {
+
+ return;
+
+ }
+
+ if (!event.getView()
+ .title()
+ .toString()
+ .contains(
+ ServerCommandDisplayNameMenu.TITLE
+ )) {
+
+ return;
+
+ }
+
+ event.getView()
+ .getTopInventory()
+ .clear();
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandInternalNameMenu.java b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandInternalNameMenu.java
new file mode 100644
index 0000000..ec73eb2
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandInternalNameMenu.java
@@ -0,0 +1,87 @@
+package com.rsscripting.rswarehouse.servercommands;
+
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.format.NamedTextColor;
+import org.bukkit.Material;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.MenuType;
+import org.bukkit.inventory.meta.ItemMeta;
+import org.bukkit.inventory.view.AnvilView;
+
+import java.util.List;
+
+
+public class ServerCommandInternalNameMenu {
+
+ public static final String TITLE =
+ "Command Internal Name";
+
+ public static void open(Player player) {
+
+ AnvilView view = MenuType.ANVIL
+ .builder()
+ .title(
+ Component.text(
+ TITLE
+ )
+ )
+ .build(player);
+
+ ItemStack confirm = new ItemStack(Material.LIME_WOOL);
+
+ ItemMeta meta = confirm.getItemMeta();
+
+ meta.displayName(
+ Component.text("")
+ );
+
+ meta.lore(
+ List.of(
+ Component.text(
+ "Save and proceed to title."
+ ).color(
+ NamedTextColor.WHITE
+ )
+ )
+ );
+
+ confirm.setItemMeta(meta);
+
+ view.setItem(
+ 0,
+ confirm
+ );
+
+
+ ItemStack cancel = new ItemStack(Material.RED_WOOL);
+
+ ItemMeta metacancel = cancel.getItemMeta();
+
+ metacancel.displayName(
+ Component.text("")
+ );
+
+ metacancel.lore(
+ List.of(
+ Component.text(
+ "Cancel"
+ ).color(
+ NamedTextColor.WHITE
+ )
+ )
+ );
+
+ cancel.setItemMeta(metacancel);
+
+
+ view.setItem(
+ 1,
+ cancel
+ );
+
+ view.open();
+
+ }
+
+}
diff --git a/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandInternalNameMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandInternalNameMenuListener.java
new file mode 100644
index 0000000..e1b3c92
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandInternalNameMenuListener.java
@@ -0,0 +1,135 @@
+package com.rsscripting.rswarehouse.servercommands;
+
+import com.rsscripting.rswarehouse.adminmenu.AdminMenu;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSession;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSessionManager;
+import com.rsscripting.rswarehouse.utils.RSMessageUtils;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.inventory.InventoryClickEvent;
+import org.bukkit.event.inventory.InventoryCloseEvent;
+import org.bukkit.inventory.view.AnvilView;
+
+public class ServerCommandInternalNameMenuListener implements Listener {
+
+ @EventHandler
+ public void onInventoryClick(InventoryClickEvent event) {
+
+ if (!(event.getView() instanceof AnvilView anvilView)) {
+ return;
+ }
+
+ if (!event.getView()
+ .title()
+ .toString()
+ .contains(
+ ServerCommandInternalNameMenu.TITLE
+ )) {
+
+ return;
+
+ }
+
+ Player player =
+ (Player) event.getWhoClicked();
+
+ event.setCancelled(true);
+
+ ServerCommandCreationSession session =
+ ServerCommandCreationSessionManager.getSession(
+ player.getUniqueId()
+ );
+
+ if (session == null) {
+
+ return;
+
+ }
+
+ if (event.getCurrentItem() == null) {
+ return;
+ }
+
+ if (event.getRawSlot() == 0) {
+
+ String categoryName =
+ anvilView.getRenameText();
+
+ if (categoryName.length() > 25) {
+
+ RSMessageUtils.error(
+ player,
+ "Command names may not exceed 25 characters."
+ );
+
+ return;
+
+ }
+
+ if (categoryName.isBlank()) {
+
+ RSMessageUtils.error(
+ player,
+ "Command name cannot be empty."
+ );
+
+ return;
+
+ }
+
+ session.setPendingServerCommandName(
+ categoryName
+ );
+
+ event.getView().getTopInventory().clear();
+
+ ServerCommandDisplayNameMenu.open(
+ player
+ );
+
+ return;
+
+ }
+
+ if (event.getRawSlot() == 1) {
+
+ event.getView().getTopInventory().clear();
+
+ AdminMenu.open(
+ player
+ );
+
+ }
+ }
+
+ @EventHandler
+ public void onInventoryClose(
+ InventoryCloseEvent event
+ ) {
+
+ if (!(event.getView()
+ instanceof AnvilView)) {
+
+ return;
+
+ }
+
+ if (!event.getView()
+ .title()
+ .toString()
+ .contains(
+ ServerCommandInternalNameMenu.TITLE
+ )) {
+
+ return;
+
+ }
+
+ event.getView()
+ .getTopInventory()
+ .clear();
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandLoreChatListener.java b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandLoreChatListener.java
new file mode 100644
index 0000000..4fcb7b3
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandLoreChatListener.java
@@ -0,0 +1,136 @@
+package com.rsscripting.rswarehouse.servercommands;
+
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSession;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSessionManager;
+import com.rsscripting.rswarehouse.utils.RSMessageUtils;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.AsyncPlayerChatEvent;
+
+public class ServerCommandLoreChatListener
+ implements Listener {
+
+ @EventHandler
+ public void onPlayerChat(
+ AsyncPlayerChatEvent event
+ ) {
+
+ Player player =
+ event.getPlayer();
+
+ ServerCommandCreationSession session =
+ ServerCommandCreationSessionManager.getSession(
+ player.getUniqueId()
+ );
+
+ if (session == null) {
+
+ return;
+
+ }
+
+ int loreSlot =
+ session.getPendingServerCommandLoreSlot();
+
+ if (loreSlot < 0) {
+
+ return;
+
+ }
+
+ event.setCancelled(
+ true
+ );
+
+ String message =
+ event.getMessage();
+
+ if (message.length() > 50) {
+
+ RSMessageUtils.error(
+ player,
+ "Lore lines may not exceed 50 characters."
+ );
+
+ Bukkit.getScheduler()
+ .runTask(
+ Bukkit.getPluginManager()
+ .getPlugin(
+ "RS-Warehouse"
+ ),
+ () -> ServerCommandLoreMenu.open(
+ player
+ )
+ );
+
+ return;
+
+ }
+
+ if (
+ message.equalsIgnoreCase(
+ "cancel"
+ )
+ ) {
+
+ session.setPendingServerCommandLoreSlot(
+ -1
+ );
+
+ session.setPendingServerCommandLoreExpiration(
+ 0
+ );
+
+ Bukkit.getScheduler()
+ .runTask(
+ Bukkit.getPluginManager()
+ .getPlugin(
+ "RS-Warehouse"
+ ),
+ () -> ServerCommandLoreMenu.open(
+ player
+ )
+ );
+
+ return;
+
+ }
+
+ session.setPendingServerCommandLore(
+ loreSlot,
+ message
+ );
+
+ session.setPendingServerCommandLoreSlot(
+ -1
+ );
+
+ session.setPendingServerCommandLoreExpiration(
+ 0
+ );
+
+ Bukkit.getScheduler()
+ .runTask(
+ Bukkit.getPluginManager()
+ .getPlugin(
+ "RS-Warehouse"
+ ),
+ () -> {
+
+ RSMessageUtils.success(
+ player,
+ "Lore line saved."
+ );
+
+ ServerCommandLoreMenu.open(
+ player
+ );
+
+ }
+ );
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandLoreMenu.java b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandLoreMenu.java
new file mode 100644
index 0000000..18156be
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandLoreMenu.java
@@ -0,0 +1,142 @@
+package com.rsscripting.rswarehouse.servercommands;
+
+import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSession;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSessionManager;
+import com.rsscripting.rswarehouse.utils.RSMenuUtils;
+import net.kyori.adventure.text.Component;
+import org.bukkit.Bukkit;
+import org.bukkit.Material;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.Inventory;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ServerCommandLoreMenu {
+
+ public static void open(
+ Player player
+ ) {
+
+ Inventory menu =
+ Bukkit.createInventory(
+ new RSMenuHolder(
+ "SERVER_COMMAND_LORE"
+ ),
+ 27,
+ Component.text(
+ "Server Command Lore"
+ )
+ );
+
+ for (int i = 0; i < menu.getSize(); i++) {
+
+ menu.setItem(
+ i,
+ RSMenuUtils.createFillerPane()
+ );
+
+ }
+
+ ServerCommandCreationSession session =
+ ServerCommandCreationSessionManager.getSession(
+ player.getUniqueId()
+ );
+
+ for (int i = 0; i < 5; i++) {
+
+ ItemStack book =
+ new ItemStack(
+ Material.WRITABLE_BOOK
+ );
+
+ ItemMeta meta =
+ book.getItemMeta();
+
+ meta.displayName(
+ Component.text(
+ "Lore Line "
+ + (i + 1)
+ )
+ );
+
+ List lore =
+ new ArrayList<>();
+
+ String value =
+ session.getPendingServerCommandLore(i);
+
+ if (
+ value == null
+ || value.isBlank()
+ ) {
+
+ lore.add(
+ Component.text(
+ "(Empty)"
+ )
+ );
+
+ }
+
+ else {
+
+ lore.add(
+ Component.text(
+ value
+ )
+ );
+
+ }
+
+ lore.add(
+ Component.empty()
+ );
+
+ lore.add(
+ Component.text(
+ "Click to edit."
+ )
+ );
+
+ meta.lore(
+ lore
+ );
+
+ book.setItemMeta(
+ meta
+ );
+
+ menu.setItem(
+ 11 + i,
+ book
+ );
+
+ }
+
+ menu.setItem(
+ 22,
+ RSMenuUtils.createMenuItem(
+ Material.LIME_WOOL,
+ "§aCreate Server Command"
+ )
+ );
+
+ menu.setItem(
+ 4,
+ RSMenuUtils.createMenuItem(
+ Material.OAK_DOOR,
+ "§eBack"
+ )
+ );
+
+ player.openInventory(
+ menu
+ );
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandLoreMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandLoreMenuListener.java
new file mode 100644
index 0000000..9aeb5e2
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandLoreMenuListener.java
@@ -0,0 +1,171 @@
+package com.rsscripting.rswarehouse.servercommands;
+
+import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSession;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSessionManager;
+import com.rsscripting.rswarehouse.utils.RSMessageUtils;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.inventory.InventoryClickEvent;
+
+public class ServerCommandLoreMenuListener
+ implements Listener {
+
+ @EventHandler
+ public void onInventoryClick(
+ InventoryClickEvent event
+ ) {
+
+ if (!(event.getInventory()
+ .getHolder()
+ instanceof RSMenuHolder holder)) {
+
+ return;
+
+ }
+
+ if (!holder.getMenuId().equals(
+ "SERVER_COMMAND_LORE"
+ )) {
+
+ return;
+
+ }
+
+ event.setCancelled(
+ true
+ );
+
+ Player player =
+ (Player) event.getWhoClicked();
+
+ ServerCommandCreationSession session =
+ ServerCommandCreationSessionManager.getSession(
+ player.getUniqueId()
+ );
+
+ switch (event.getSlot()) {
+
+ case 4 -> ServerCommandDisplayNameMenu.open(
+ player
+ );
+
+ case 11 -> editLore(
+ player,
+ session,
+ 0
+ );
+
+ case 12 -> editLore(
+ player,
+ session,
+ 1
+ );
+
+ case 13 -> editLore(
+ player,
+ session,
+ 2
+ );
+
+ case 14 -> editLore(
+ player,
+ session,
+ 3
+ );
+
+ case 15 -> editLore(
+ player,
+ session,
+ 4
+ );
+
+ case 22 -> {
+
+ ServerCommandMaterialPickerMenu.open(
+ player,
+ 0
+ );
+
+ }
+
+ }
+
+ }
+
+ private void editLore(
+ Player player,
+ ServerCommandCreationSession session,
+ int loreSlot
+ ) {
+
+ session.setPendingServerCommandLoreSlot(
+ loreSlot
+ );
+
+ session.setPendingServerCommandLoreExpiration(
+ System.currentTimeMillis()
+ + 30000
+ );
+
+ final long expiration =
+ session.getPendingServerCommandLoreExpiration();
+
+ Bukkit.getScheduler()
+ .runTaskLater(
+ Bukkit.getPluginManager()
+ .getPlugin(
+ "RS-Warehouse"
+ ),
+ () -> {
+
+ if (
+ session.getPendingServerCommandLoreExpiration()
+ != expiration
+ ) {
+
+ return;
+
+ }
+
+ session.setPendingServerCommandLoreSlot(
+ -1
+ );
+
+ session.setPendingServerCommandLoreExpiration(
+ 0
+ );
+
+ RSMessageUtils.error(
+ player,
+ "Lore input timed out."
+ );
+
+ },
+ 20L * 30
+ );
+
+ player.closeInventory();
+
+ RSMessageUtils.info(
+ player,
+ "Enter lore for line "
+ + (loreSlot + 1)
+ + " in chat."
+ );
+
+ RSMessageUtils.info(
+ player,
+ "Type 'cancel' to abort."
+ );
+
+ RSMessageUtils.info(
+ player,
+ "Auto-Cancels after 30 seconds."
+ );
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandMaterialPickerMenu.java b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandMaterialPickerMenu.java
new file mode 100644
index 0000000..080b9b8
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandMaterialPickerMenu.java
@@ -0,0 +1,110 @@
+package com.rsscripting.rswarehouse.servercommands;
+
+import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
+import com.rsscripting.rswarehouse.utils.RSMenuUtils;
+import org.bukkit.Bukkit;
+import org.bukkit.Material;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.Inventory;
+import org.bukkit.inventory.ItemStack;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class ServerCommandMaterialPickerMenu {
+
+ public static void open(
+ Player player,
+ int page
+ ) {
+
+ Inventory menu =
+ Bukkit.createInventory(
+ new RSMenuHolder(
+ "SERVER_COMMAND_MATERIAL_PICKER"
+ ),
+ 54,
+ "Select Command Material"
+ );
+
+ int slot = 0;
+
+ List materials =
+ Arrays.stream(
+ Material.values()
+ )
+ .filter(
+ Material::isItem
+ )
+ .filter(
+ material ->
+ !material.name().endsWith(
+ "_SMITHING_TEMPLATE"
+ )
+ )
+ .toList();
+
+ int startIndex =
+ page * 45;
+
+ int maxPages =
+ (int) Math.ceil(
+ (double) materials.size()
+ / 45
+ );
+
+ for (int inventorySlot = 0;
+ inventorySlot < 45;
+ inventorySlot++) {
+
+ int materialIndex =
+ startIndex + inventorySlot;
+
+ if (materialIndex >= materials.size()) {
+
+ break;
+
+ }
+
+ menu.setItem(
+ inventorySlot,
+ new ItemStack(
+ materials.get(
+ materialIndex
+ )
+ )
+ );
+
+ }
+
+ if (page > 0) {
+
+ menu.setItem(
+ 45,
+ RSMenuUtils.createMenuItem(
+ Material.ARROW,
+ "§cPrevious Page"
+ )
+ );
+
+ }
+
+ if (page < maxPages - 1) {
+
+ menu.setItem(
+ 53,
+ RSMenuUtils.createMenuItem(
+ Material.ARROW,
+ "§aNext Page"
+ )
+ );
+
+ }
+
+ player.openInventory(
+ menu
+ );
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandMaterialPickerMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandMaterialPickerMenuListener.java
new file mode 100644
index 0000000..02971e9
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandMaterialPickerMenuListener.java
@@ -0,0 +1,167 @@
+package com.rsscripting.rswarehouse.servercommands;
+
+import com.rsscripting.rswarehouse.dao.admin.CreateServerCommandDAO;
+import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSession;
+import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSessionManager;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.inventory.InventoryClickEvent;
+
+public class ServerCommandMaterialPickerMenuListener
+ implements Listener {
+
+ @EventHandler
+ public void onInventoryClick(
+ InventoryClickEvent event
+ ) {
+
+ if (!(event.getInventory()
+ .getHolder()
+ instanceof RSMenuHolder holder)) {
+
+ return;
+
+ }
+
+ if (!holder.getMenuId().equals(
+ "SERVER_COMMAND_MATERIAL_PICKER"
+ )) {
+
+ return;
+
+ }
+
+ event.setCancelled(
+ true
+ );
+
+ if (event.getCurrentItem() == null) {
+
+ return;
+
+ }
+
+ Player player =
+ (Player) event.getWhoClicked();
+
+ ServerCommandCreationSession session =
+ ServerCommandCreationSessionManager.getSession(
+ player.getUniqueId()
+ );
+
+ if (session == null) {
+
+ player.closeInventory();
+
+ return;
+ }
+
+ int page =
+ session.getPendingServerCommandMaterialPickerPage();
+
+ if (event.getSlot() == 45) {
+
+ session.setPendingServerCommandMaterialPickerPage(
+ Math.max(
+ 0,
+ page - 1
+ )
+ );
+
+ ServerCommandMaterialPickerMenu.open(
+ player,
+ session.getPendingServerCommandMaterialPickerPage()
+ );
+
+ return;
+ }
+
+ if (event.getSlot() == 53) {
+
+ session.setPendingServerCommandMaterialPickerPage(
+ page + 1
+ );
+
+ ServerCommandMaterialPickerMenu.open(
+ player,
+ session.getPendingServerCommandMaterialPickerPage()
+ );
+
+ return;
+ }
+
+ session.setPendingServerCommandMaterial(
+ event.getCurrentItem()
+ .getType()
+ .name()
+ );
+
+ int commandCategoryId =
+ CreateServerCommandDAO.createServerCommand(
+ session.getPendingServerCommandName(),
+ session.getPendingServerCommandDisplayName(),
+ session.getPendingServerCommandMaterial(),
+ buildLore(session)
+ );
+
+ if (commandCategoryId == -1) {
+
+ player.sendMessage(
+ "§cFailed to create Server Command."
+ );
+
+ return;
+ }
+
+ player.sendMessage(
+ "§aServer Command created successfully."
+ );
+
+
+ // CategoryLoreMenu.open(
+ // player
+ // );
+
+ }
+
+ private String buildLore(
+ ServerCommandCreationSession session
+ ) {
+
+ StringBuilder loreBuilder =
+ new StringBuilder();
+
+ for (int i = 0; i < 5; i++) {
+
+ String line =
+ session.getPendingServerCommandLore(
+ i
+ );
+
+ if (line == null) {
+
+ line = "";
+
+ }
+
+ loreBuilder.append(
+ line
+ );
+
+ if (i < 4) {
+
+ loreBuilder.append(
+ "\n"
+ );
+
+ }
+
+ }
+
+ return loreBuilder.toString();
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryEditSession.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryEditSession.java
similarity index 97%
rename from src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryEditSession.java
rename to src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryEditSession.java
index 4ce4417..1a29be9 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryEditSession.java
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryEditSession.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.adminsessions;
+package com.rsscripting.rswarehouse.session.admin;
public class CategoryEditSession {
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryEditSessionManager.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryEditSessionManager.java
similarity index 94%
rename from src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryEditSessionManager.java
rename to src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryEditSessionManager.java
index 123ade7..bc0defc 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryEditSessionManager.java
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryEditSessionManager.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.adminsessions;
+package com.rsscripting.rswarehouse.session.admin;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryPageSlotSession.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryPageSlotSession.java
similarity index 92%
rename from src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryPageSlotSession.java
rename to src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryPageSlotSession.java
index 23d2ec7..f56e778 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryPageSlotSession.java
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryPageSlotSession.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.adminsessions;
+package com.rsscripting.rswarehouse.session.admin;
public class CategoryPageSlotSession {
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryPageSlotSessionManager.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryPageSlotSessionManager.java
similarity index 93%
rename from src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryPageSlotSessionManager.java
rename to src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryPageSlotSessionManager.java
index f8f3726..9a99c51 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/CategoryPageSlotSessionManager.java
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/CategoryPageSlotSessionManager.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.adminsessions;
+package com.rsscripting.rswarehouse.session.admin;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/PageSlotAssignmentSession.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/PageSlotAssignmentSession.java
similarity index 94%
rename from src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/PageSlotAssignmentSession.java
rename to src/main/java/com/rsscripting/rswarehouse/session/admin/PageSlotAssignmentSession.java
index fd21b5e..9adfc7f 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/PageSlotAssignmentSession.java
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/PageSlotAssignmentSession.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.adminsessions;
+package com.rsscripting.rswarehouse.session.admin;
public class PageSlotAssignmentSession {
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/PageSlotAssignmentSessionManager.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/PageSlotAssignmentSessionManager.java
similarity index 89%
rename from src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/PageSlotAssignmentSessionManager.java
rename to src/main/java/com/rsscripting/rswarehouse/session/admin/PageSlotAssignmentSessionManager.java
index 50bdcfd..d597969 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/PageSlotAssignmentSessionManager.java
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/PageSlotAssignmentSessionManager.java
@@ -1,7 +1,7 @@
-package com.rsscripting.rswarehouse.admin.adminsessions;
+package com.rsscripting.rswarehouse.session.admin;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.model.WarehouseItem;
diff --git a/src/main/java/com/rsscripting/rswarehouse/session/admin/ServerCommandCreationSession.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/ServerCommandCreationSession.java
new file mode 100644
index 0000000..55efb97
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/ServerCommandCreationSession.java
@@ -0,0 +1,149 @@
+package com.rsscripting.rswarehouse.session.admin;
+
+public class ServerCommandCreationSession {
+
+ private String pendingServerCommandName;
+
+ private String pendingServerCommandDisplayName;
+
+ private final String[] pendingServerCommandLore =
+ new String[5];
+
+ private int pendingServerCommandLoreSlot = -1;
+
+ private long pendingServerCommandLoreExpiration;
+
+ private String pendingServerCommandMaterial;
+
+ private int pendingServerCommandMaterialPickerPage = 0;
+
+
+ public String getPendingServerCommandName() {
+
+ return pendingServerCommandName;
+
+ }
+
+ public void setPendingServerCommandName(
+ String pendingServerCommandName
+ ) {
+
+ this.pendingServerCommandName =
+ pendingServerCommandName;
+
+ }
+
+
+ public String getPendingServerCommandDisplayName() {
+
+ return pendingServerCommandDisplayName;
+
+ }
+
+ public void setPendingServerCommandDisplayName(
+ String pendingServerCommandDisplayName
+ ) {
+
+ this.pendingServerCommandDisplayName =
+ pendingServerCommandDisplayName;
+
+ }
+
+
+ public String getPendingServerCommandLore(
+ int index
+ ) {
+
+ return pendingServerCommandLore[index];
+
+ }
+
+ public void setPendingServerCommandLore(
+ int index,
+ String value
+ ) {
+
+ pendingServerCommandLore[index] =
+ value;
+
+ }
+
+ public void clearPendingServerCommandLore() {
+
+ for (
+ int i = 0;
+ i < pendingServerCommandLore.length;
+ i++
+ ) {
+
+ pendingServerCommandLore[i] =
+ null;
+
+ }
+
+ }
+
+
+ public int getPendingServerCommandLoreSlot() {
+
+ return pendingServerCommandLoreSlot;
+
+ }
+
+ public void setPendingServerCommandLoreSlot(
+ int pendingServerCommandLoreSlot
+ ) {
+
+ this.pendingServerCommandLoreSlot =
+ pendingServerCommandLoreSlot;
+
+ }
+
+
+ public long getPendingServerCommandLoreExpiration() {
+
+ return pendingServerCommandLoreExpiration;
+
+ }
+
+ public void setPendingServerCommandLoreExpiration(
+ long pendingServerCommandLoreExpiration
+ ) {
+
+ this.pendingServerCommandLoreExpiration =
+ pendingServerCommandLoreExpiration;
+
+ }
+
+
+ public String getPendingServerCommandMaterial() {
+
+ return pendingServerCommandMaterial;
+
+ }
+
+ public void setPendingServerCommandMaterial(
+ String pendingServerCommandMaterial
+ ) {
+
+ this.pendingServerCommandMaterial =
+ pendingServerCommandMaterial;
+
+ }
+
+ public int getPendingServerCommandMaterialPickerPage() {
+
+ return pendingServerCommandMaterialPickerPage;
+
+ }
+
+ public void setPendingServerCommandMaterialPickerPage(
+ int pendingServerCommandMaterialPickerPage
+ ) {
+
+ this.pendingServerCommandMaterialPickerPage =
+ pendingServerCommandMaterialPickerPage;
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/session/admin/ServerCommandCreationSessionManager.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/ServerCommandCreationSessionManager.java
new file mode 100644
index 0000000..9e84513
--- /dev/null
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/ServerCommandCreationSessionManager.java
@@ -0,0 +1,46 @@
+package com.rsscripting.rswarehouse.session.admin;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+public class ServerCommandCreationSessionManager {
+
+ private static final Map sessions =
+ new HashMap<>();
+
+
+ public static void createSession(
+ UUID uuid
+ ) {
+
+ sessions.put(
+ uuid,
+ new ServerCommandCreationSession()
+ );
+
+ }
+
+
+ public static ServerCommandCreationSession getSession(
+ UUID uuid
+ ) {
+
+ return sessions.get(
+ uuid
+ );
+
+ }
+
+
+ public static void removeSession(
+ UUID uuid
+ ) {
+
+ sessions.remove(
+ uuid
+ );
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryCreationSession.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryCreationSession.java
similarity index 96%
rename from src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryCreationSession.java
rename to src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryCreationSession.java
index 3e1170f..a66d497 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryCreationSession.java
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryCreationSession.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.adminsessions;
+package com.rsscripting.rswarehouse.session.admin;
public class SubCategoryCreationSession {
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryCreationSessionManager.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryCreationSessionManager.java
similarity index 93%
rename from src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryCreationSessionManager.java
rename to src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryCreationSessionManager.java
index 5b1588c..9cef529 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryCreationSessionManager.java
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryCreationSessionManager.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.adminsessions;
+package com.rsscripting.rswarehouse.session.admin;
import java.util.HashMap;
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryEditSession.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryEditSession.java
similarity index 95%
rename from src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryEditSession.java
rename to src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryEditSession.java
index 2eaf677..2b951f0 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryEditSession.java
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryEditSession.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.adminsessions;
+package com.rsscripting.rswarehouse.session.admin;
public class SubCategoryEditSession {
diff --git a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryEditSessionManager.java b/src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryEditSessionManager.java
similarity index 94%
rename from src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryEditSessionManager.java
rename to src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryEditSessionManager.java
index 4e64284..8a07c12 100644
--- a/src/main/java/com/rsscripting/rswarehouse/admin/adminsessions/SubCategoryEditSessionManager.java
+++ b/src/main/java/com/rsscripting/rswarehouse/session/admin/SubCategoryEditSessionManager.java
@@ -1,4 +1,4 @@
-package com.rsscripting.rswarehouse.admin.adminsessions;
+package com.rsscripting.rswarehouse.session.admin;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/copytosubcategory/CopyToSubCategoryMenu.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/copytosubcategory/CopyToSubCategoryMenu.java
index ee857dc..8111132 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/copytosubcategory/CopyToSubCategoryMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/copytosubcategory/CopyToSubCategoryMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.subcategory.copytosubcategory;
-import com.rsscripting.rswarehouse.subcategory.subcategorydao.SubCategoryDAO;
+import com.rsscripting.rswarehouse.dao.SubCategoryDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.constants.RSKeys;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/copytosubcategory/CopyToSubCategoryMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/copytosubcategory/CopyToSubCategoryMenuListener.java
index 62302aa..586eead 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/copytosubcategory/CopyToSubCategoryMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/copytosubcategory/CopyToSubCategoryMenuListener.java
@@ -1,8 +1,8 @@
package com.rsscripting.rswarehouse.subcategory.copytosubcategory;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
-import com.rsscripting.rswarehouse.placement.placementdao.ItemPlacementDAO;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.ItemPlacementDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import com.rsscripting.rswarehouse.constants.RSKeys;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryDisplayNameMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryDisplayNameMenuListener.java
index e0e5d1c..1fe57a6 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryDisplayNameMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryDisplayNameMenuListener.java
@@ -1,9 +1,9 @@
package com.rsscripting.rswarehouse.subcategory.items;
-import com.rsscripting.rswarehouse.admin.AdminMenu;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryCreationSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryCreationSessionManager;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
+import com.rsscripting.rswarehouse.adminmenu.AdminMenu;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryCreationSession;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryCreationSessionManager;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditDisplayNameMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditDisplayNameMenuListener.java
index 4e3aa7a..a2fd36c 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditDisplayNameMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditDisplayNameMenuListener.java
@@ -1,9 +1,9 @@
package com.rsscripting.rswarehouse.subcategory.items;
-import com.rsscripting.rswarehouse.admin.admindao.UpdateCategoryDAO;
+import com.rsscripting.rswarehouse.dao.admin.UpdateCategoryDAO;
import com.rsscripting.rswarehouse.item.options.ItemOptionsMenu;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryEditSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryEditSessionManager;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryEditSession;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryEditSessionManager;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreChatListener.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreChatListener.java
index 3865bd8..827670a 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreChatListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreChatListener.java
@@ -1,7 +1,7 @@
package com.rsscripting.rswarehouse.subcategory.items;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryEditSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryEditSessionManager;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryEditSession;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryEditSessionManager;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreMenu.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreMenu.java
index 7a2cb2c..e52dc45 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreMenu.java
@@ -1,8 +1,8 @@
package com.rsscripting.rswarehouse.subcategory.items;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryEditSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryEditSessionManager;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryEditSession;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryEditSessionManager;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreMenuListener.java
index f2cebb9..1f47daf 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryEditLoreMenuListener.java
@@ -1,9 +1,9 @@
package com.rsscripting.rswarehouse.subcategory.items;
-import com.rsscripting.rswarehouse.admin.admindao.UpdateCategoryDAO;
+import com.rsscripting.rswarehouse.dao.admin.UpdateCategoryDAO;
import com.rsscripting.rswarehouse.item.options.ItemOptionsMenu;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryEditSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryEditSessionManager;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryEditSession;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryEditSessionManager;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.Bukkit;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryInternalNameMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryInternalNameMenuListener.java
index 9f30a60..21d687c 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryInternalNameMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryInternalNameMenuListener.java
@@ -1,8 +1,8 @@
package com.rsscripting.rswarehouse.subcategory.items;
-import com.rsscripting.rswarehouse.admin.AdminMenu;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryCreationSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryCreationSessionManager;
+import com.rsscripting.rswarehouse.adminmenu.AdminMenu;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryCreationSession;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryCreationSessionManager;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreChatListener.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreChatListener.java
index e841fd9..9e1d183 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreChatListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreChatListener.java
@@ -1,7 +1,7 @@
package com.rsscripting.rswarehouse.subcategory.items;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryCreationSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryCreationSessionManager;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryCreationSession;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryCreationSessionManager;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreMenu.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreMenu.java
index 597d595..2d45dd1 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreMenu.java
@@ -1,7 +1,7 @@
package com.rsscripting.rswarehouse.subcategory.items;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryCreationSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryCreationSessionManager;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryCreationSession;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryCreationSessionManager;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
import net.kyori.adventure.text.Component;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreMenuListener.java
index d4d9328..5d4666c 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/items/SubCategoryLoreMenuListener.java
@@ -1,10 +1,10 @@
package com.rsscripting.rswarehouse.subcategory.items;
-import com.rsscripting.rswarehouse.admin.admindao.CreateSubCategoryDAO;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryCreationSession;
-import com.rsscripting.rswarehouse.admin.adminsessions.SubCategoryCreationSessionManager;
-import com.rsscripting.rswarehouse.placement.placementdao.ItemPlacementDAO;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.admin.CreateSubCategoryDAO;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryCreationSession;
+import com.rsscripting.rswarehouse.session.admin.SubCategoryCreationSessionManager;
+import com.rsscripting.rswarehouse.dao.ItemPlacementDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.item.ItemsMenu;
import com.rsscripting.rswarehouse.model.WarehouseItem;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/movetosubcategory/MoveToSubCategoryMenu.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/movetosubcategory/MoveToSubCategoryMenu.java
index 5651a8b..ca17c14 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/movetosubcategory/MoveToSubCategoryMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/movetosubcategory/MoveToSubCategoryMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.subcategory.movetosubcategory;
-import com.rsscripting.rswarehouse.subcategory.subcategorydao.SubCategoryDAO;
+import com.rsscripting.rswarehouse.dao.SubCategoryDAO;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.constants.RSKeys;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/subcategory/movetosubcategory/MoveToSubCategoryMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/subcategory/movetosubcategory/MoveToSubCategoryMenuListener.java
index c2343ae..6e8c0e9 100644
--- a/src/main/java/com/rsscripting/rswarehouse/subcategory/movetosubcategory/MoveToSubCategoryMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/subcategory/movetosubcategory/MoveToSubCategoryMenuListener.java
@@ -1,8 +1,8 @@
package com.rsscripting.rswarehouse.subcategory.movetosubcategory;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryDAO;
-import com.rsscripting.rswarehouse.item.itemdao.ItemDAO;
-import com.rsscripting.rswarehouse.placement.placementdao.ItemPlacementDAO;
+import com.rsscripting.rswarehouse.dao.CategoryDAO;
+import com.rsscripting.rswarehouse.dao.ItemDAO;
+import com.rsscripting.rswarehouse.dao.ItemPlacementDAO;
import com.rsscripting.rswarehouse.item.ItemsMenu;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.model.WarehouseItem;
diff --git a/src/main/java/com/rsscripting/rswarehouse/variants/0 b/src/main/java/com/rsscripting/rswarehouse/variants/0
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsMenu.java b/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsMenu.java
index fdb1e88..fa8b3cf 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.variantsdamaged;
-import com.rsscripting.rswarehouse.variants.dao.DamagedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.DamagedVariantsDAO;
import com.rsscripting.rswarehouse.model.DamagedVariant;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsTransactionMenu.java b/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsTransactionMenu.java
index 329c887..5e64a25 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsTransactionMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsTransactionMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.variantsdamaged;
-import com.rsscripting.rswarehouse.variants.dao.DamagedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.DamagedVariantsDAO;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
import com.rsscripting.rswarehouse.utils.RSMenuUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsTransactionMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsTransactionMenuListener.java
index 9bf379b..9a81961 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsTransactionMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/variantsdamaged/DamagedVariantsTransactionMenuListener.java
@@ -1,9 +1,8 @@
package com.rsscripting.rswarehouse.variantsdamaged;
import com.rsscripting.rswarehouse.item.TransactionAmountMenu;
-import com.rsscripting.rswarehouse.variants.dao.DamagedVariantsDAO;
-import com.rsscripting.rswarehouse.autodeposit.autodepositdao.AutoDepositDAO;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
+import com.rsscripting.rswarehouse.dao.DamagedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.AutoDepositDAO;
import com.rsscripting.rswarehouse.model.DamagedVariant;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.item.TransactionUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsMenu.java b/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsMenu.java
index 5fa421f..f3e14d4 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.variantsenchanted;
-import com.rsscripting.rswarehouse.variants.dao.EnchantedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.EnchantedVariantsDAO;
import com.rsscripting.rswarehouse.model.EnchantedVariant;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsTransactionMenu.java b/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsTransactionMenu.java
index 92ebe23..05de86f 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsTransactionMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsTransactionMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.variantsenchanted;
-import com.rsscripting.rswarehouse.variants.dao.EnchantedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.EnchantedVariantsDAO;
import com.rsscripting.rswarehouse.model.EnchantedVariant;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsTransactionMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsTransactionMenuListener.java
index 62777c5..2e4cf5b 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsTransactionMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/variantsenchanted/EnchantedVariantsTransactionMenuListener.java
@@ -1,9 +1,8 @@
package com.rsscripting.rswarehouse.variantsenchanted;
import com.rsscripting.rswarehouse.item.TransactionAmountMenu;
-import com.rsscripting.rswarehouse.variants.dao.EnchantedVariantsDAO;
-import com.rsscripting.rswarehouse.autodeposit.autodepositdao.AutoDepositDAO;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
+import com.rsscripting.rswarehouse.dao.EnchantedVariantsDAO;
+import com.rsscripting.rswarehouse.dao.AutoDepositDAO;
import com.rsscripting.rswarehouse.model.EnchantedVariant;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.item.TransactionUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsMenu.java b/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsMenu.java
index 8906be3..7e1251b 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.variantspartiallyfilled;
-import com.rsscripting.rswarehouse.variants.dao.PartiallyFilledVariantsDAO;
+import com.rsscripting.rswarehouse.dao.PartiallyFilledVariantsDAO;
import com.rsscripting.rswarehouse.model.PartiallyFilledVariant;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsTransactionMenu.java b/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsTransactionMenu.java
index b733e8f..b3eca60 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsTransactionMenu.java
+++ b/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsTransactionMenu.java
@@ -1,6 +1,6 @@
package com.rsscripting.rswarehouse.variantspartiallyfilled;
-import com.rsscripting.rswarehouse.variants.dao.PartiallyFilledVariantsDAO;
+import com.rsscripting.rswarehouse.dao.PartiallyFilledVariantsDAO;
import com.rsscripting.rswarehouse.model.PartiallyFilledVariant;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.utils.ItemStackUtils;
diff --git a/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsTransactionMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsTransactionMenuListener.java
index a2d96d1..0887033 100644
--- a/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsTransactionMenuListener.java
+++ b/src/main/java/com/rsscripting/rswarehouse/variantspartiallyfilled/PartiallyFilledVariantsTransactionMenuListener.java
@@ -1,9 +1,8 @@
package com.rsscripting.rswarehouse.variantspartiallyfilled;
import com.rsscripting.rswarehouse.item.TransactionAmountMenu;
-import com.rsscripting.rswarehouse.variants.dao.PartiallyFilledVariantsDAO;
-import com.rsscripting.rswarehouse.autodeposit.autodepositdao.AutoDepositDAO;
-import com.rsscripting.rswarehouse.category.categorymenu.CategoryMenu;
+import com.rsscripting.rswarehouse.dao.PartiallyFilledVariantsDAO;
+import com.rsscripting.rswarehouse.dao.AutoDepositDAO;
import com.rsscripting.rswarehouse.model.PartiallyFilledVariant;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.item.TransactionUtils;
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index f29fc05..9bb0df7 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -7,6 +7,12 @@ display:
# to database and what date it happened.
show-discovery-information: true
+ # Display the Server Commands category.
+ # This category is a list of commands
+ # available on your server. It DOES NOT
+ # execute any commands.
+ show-server-commands: true
+
############################################
# Automatic-Chest scan and process settings.
############################################