From d412a967768f893139be3f56f1d6e55c45aec4ae Mon Sep 17 00:00:00 2001 From: Big Pappa Date: Sat, 15 Aug 2026 21:10:04 -0500 Subject: [PATCH] 1.4.0 item Options tweaks for server commands. --- .../movetocategory/MoveToCategoryMenu.java | 8 +- .../rswarehouse/item/ItemsMenuListener.java | 10 + .../item/options/ItemOptionsMenu.java | 237 +++++++++++++++--- .../item/options/ItemOptionsMenuListener.java | 67 +++++ ...rverCommandMaterialPickerMenuListener.java | 11 +- 5 files changed, 295 insertions(+), 38 deletions(-) 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 8569944..46a43ee 100644 --- a/src/main/java/com/rsscripting/rswarehouse/category/movetocategory/MoveToCategoryMenu.java +++ b/src/main/java/com/rsscripting/rswarehouse/category/movetocategory/MoveToCategoryMenu.java @@ -76,6 +76,13 @@ public class MoveToCategoryMenu { for (WarehouseCategory category : categories) { + if ( + category.id() == 1000 + || category.id() == 1001 + ) { + continue; + } + if (category.displayName().equalsIgnoreCase( "Uncategorized" )) { @@ -83,7 +90,6 @@ public class MoveToCategoryMenu { uncategorized = category; } - else { displayCategories.add( diff --git a/src/main/java/com/rsscripting/rswarehouse/item/ItemsMenuListener.java b/src/main/java/com/rsscripting/rswarehouse/item/ItemsMenuListener.java index 28430fd..246f3d7 100644 --- a/src/main/java/com/rsscripting/rswarehouse/item/ItemsMenuListener.java +++ b/src/main/java/com/rsscripting/rswarehouse/item/ItemsMenuListener.java @@ -87,6 +87,16 @@ public class ItemsMenuListener } + if ( + ( + session.getItemsCategoryId() == 1000 + || session.getItemsCategoryId() == 1001 + ) + && event.getClick() != ClickType.SHIFT_RIGHT + ) { + return; + } + if (event.getCurrentItem() == null) { return; 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 cfbc453..e0c93f3 100644 --- a/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenu.java +++ b/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenu.java @@ -52,6 +52,11 @@ public class ItemOptionsMenu { && warehouseItem.subcategoryId() != null; + boolean isRulesOrCommands = + isRulesOrCommands( + warehouseItem + ); + menu.setItem( 4, RSMenuUtils.createMenuItem( @@ -60,7 +65,43 @@ public class ItemOptionsMenu { ) ); - if (isSubCategory) { + if (isRulesOrCommands) { + + String sectionName = + warehouseItem.categoryId() == 1001 + ? "Server Command" + : "Rules"; + + menu.setItem( + 10, + RSMenuUtils.createMenuItemWithLore( + Material.CRAFTER, + "§4Not Available", + List.of( + "§7Not available for", + "§7" + sectionName + " items." + ) + ) + ); + + menu.setItem( + 25, + RSMenuUtils.createMenuItem( + Material.NAME_TAG, + "§eEdit Display Name" + ) + ); + + menu.setItem( + 28, + RSMenuUtils.createMenuItem( + Material.WRITABLE_BOOK, + "§eEdit Lore" + ) + ); + + } + else if (isSubCategory) { menu.setItem( 10, @@ -92,8 +133,8 @@ public class ItemOptionsMenu { ) ); - - } else { + } + else { menu.setItem( 10, @@ -103,7 +144,6 @@ public class ItemOptionsMenu { ) ); - menu.setItem( 25, RSMenuUtils.createMenuItemWithLore( @@ -160,23 +200,96 @@ public class ItemOptionsMenu { ) ); - menu.setItem( - 14, - RSMenuUtils.createMenuItem( - Material.PISTON, - "§eMove to Category" - ) - ); + if (isRulesOrCommands) { - menu.setItem( - 16, - RSMenuUtils.createMenuItem( - Material.STICKY_PISTON, - "§eMove to SubCategory" - ) - ); + String sectionName = + warehouseItem.categoryId() == 1001 + ? "Server Command" + : "Rules"; - if (canDelete) { + menu.setItem( + 14, + RSMenuUtils.createMenuItemWithLore( + Material.PISTON, + "§4Not Available", + List.of( + "§7Not available for", + "§7" + sectionName + " items." + ) + ) + ); + + } + else { + + menu.setItem( + 14, + RSMenuUtils.createMenuItem( + Material.PISTON, + "§eMove to Category" + ) + ); + + } + + if (isRulesOrCommands) { + + String sectionName = + warehouseItem.categoryId() == 1001 + ? "Server Command" + : "Rules"; + + menu.setItem( + 16, + RSMenuUtils.createMenuItemWithLore( + Material.STICKY_PISTON, + "§4Not Available", + List.of( + "§7Not available for", + "§7" + sectionName + " items." + ) + ) + ); + + } + else { + + menu.setItem( + 16, + RSMenuUtils.createMenuItem( + Material.STICKY_PISTON, + "§eMove to SubCategory" + ) + ); + + } + + if (isRulesOrCommands) { + + String deleteName = + warehouseItem.categoryId() == 1001 + ? "Delete Server Command" + : "Delete Rule"; + + menu.setItem( + 19, + RSMenuUtils.createMenuItemWithLore( + Material.BARRIER, + "§4" + deleteName, + List.of( + "§4CAUTION!! CAUTION!! CAUTION!!", + "§7Deletes this " + + ( + warehouseItem.categoryId() == 1001 + ? "Server Command." + : "Rule." + ) + ) + ) + ); + + } + else if (canDelete) { menu.setItem( 19, @@ -226,23 +339,69 @@ public class ItemOptionsMenu { } - menu.setItem( - 21, - RSMenuUtils.createMenuItem( - Material.OAK_SIGN, - "§eCopy to Category" - ) - ); + if (isRulesOrCommands) { + String sectionName = + warehouseItem.categoryId() == 1001 + ? "Server Command" + : "Rules"; + menu.setItem( + 21, + RSMenuUtils.createMenuItemWithLore( + Material.OAK_SIGN, + "§4Not Available", + List.of( + "§7Not available for", + "§7" + sectionName + " items." + ) + ) + ); - menu.setItem( - 23, - RSMenuUtils.createMenuItem( - Material.OAK_HANGING_SIGN, - "§eCopy to SubCategory" - ) - ); + } + else { + + menu.setItem( + 21, + RSMenuUtils.createMenuItem( + Material.OAK_SIGN, + "§eCopy to Category" + ) + ); + + } + + if (isRulesOrCommands) { + + String sectionName = + warehouseItem.categoryId() == 1001 + ? "Server Command" + : "Rules"; + + menu.setItem( + 23, + RSMenuUtils.createMenuItemWithLore( + Material.OAK_HANGING_SIGN, + "§4Not Available", + List.of( + "§7Not available for", + "§7" + sectionName + " items." + ) + ) + ); + + } + else { + + menu.setItem( + 23, + RSMenuUtils.createMenuItem( + Material.OAK_HANGING_SIGN, + "§eCopy to SubCategory" + ) + ); + + } player.openInventory( menu @@ -250,4 +409,16 @@ public class ItemOptionsMenu { } + private static boolean isRulesOrCommands( + WarehouseItem warehouseItem + ) { + + return warehouseItem != null + && ( + warehouseItem.categoryId() == 1000 + || warehouseItem.categoryId() == 1001 + ); + + } + } \ No newline at end of file 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 e625d01..b8f290d 100644 --- a/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenuListener.java +++ b/src/main/java/com/rsscripting/rswarehouse/item/options/ItemOptionsMenuListener.java @@ -89,6 +89,12 @@ public class ItemOptionsMenuListener holder.getItemId() ); + if (isRulesOrCommands(warehouseItem)) { + + return; + + } + if ( warehouseItem != null && @@ -114,15 +120,39 @@ public class ItemOptionsMenuListener if (event.getSlot() == 14) { + WarehouseItem warehouseItem = + ItemDAO.getItemById( + holder.getItemId() + ); + + if (isRulesOrCommands(warehouseItem)) { + + return; + + } + MoveToCategoryMenu.open( player, holder.getItemId() ); + return; + } if (event.getSlot() == 16) { + WarehouseItem warehouseItem = + ItemDAO.getItemById( + holder.getItemId() + ); + + if (isRulesOrCommands(warehouseItem)) { + + return; + + } + MoveToSubCategoryMenu.open( player, holder.getItemId(), @@ -219,15 +249,40 @@ public class ItemOptionsMenuListener if (event.getSlot() == 21) { + WarehouseItem warehouseItem = + ItemDAO.getItemById( + holder.getItemId() + ); + + if (isRulesOrCommands(warehouseItem)) { + + return; + + } + CopyToCategoryMenu.open( player, holder.getItemId(), 0 ); + + return; + } if (event.getSlot() == 23) { + WarehouseItem warehouseItem = + ItemDAO.getItemById( + holder.getItemId() + ); + + if (isRulesOrCommands(warehouseItem)) { + + return; + + } + CopyToSubCategoryMenu.open( player, holder.getItemId(), @@ -318,4 +373,16 @@ public class ItemOptionsMenuListener } + private boolean isRulesOrCommands( + WarehouseItem warehouseItem + ) { + + return warehouseItem != null + && ( + warehouseItem.categoryId() == 1000 + || warehouseItem.categoryId() == 1001 + ); + + } + } \ 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 index 02971e9..5af9764 100644 --- a/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandMaterialPickerMenuListener.java +++ b/src/main/java/com/rsscripting/rswarehouse/servercommands/ServerCommandMaterialPickerMenuListener.java @@ -1,6 +1,7 @@ package com.rsscripting.rswarehouse.servercommands; import com.rsscripting.rswarehouse.dao.admin.CreateServerCommandDAO; +import com.rsscripting.rswarehouse.item.ItemsMenu; import com.rsscripting.rswarehouse.menuholder.RSMenuHolder; import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSession; import com.rsscripting.rswarehouse.session.admin.ServerCommandCreationSessionManager; @@ -119,10 +120,12 @@ public class ServerCommandMaterialPickerMenuListener "§aServer Command created successfully." ); - - // CategoryLoreMenu.open( - // player - // ); + ItemsMenu.open( + player, + 1001, + "Server Commands", + 0 + ); }