62 Commits
Author SHA1 Message Date
BigPappa 09da9cbe66 2.0.0
Fixed:
- Map handling errors

Changed:
- Java 21 to java 25
2026-09-22 10:59:34 -05:00
BigPappa 1a2c27af99 1.6.0
26.3 Verfied
2026-09-19 08:18:07 -05:00
BigPappa 6d9bd57654 1.5.1
Docs Update
2026-09-13 14:06:38 -05:00
BigPappa 39f469eedf 1.5.1
Docs Update
2026-09-10 15:35:37 -05:00
BigPappa 059f43a18c 1.5.1
Docs Update
2026-09-10 15:33:28 -05:00
BigPappa 98a7b69058 1.5.1
Docs Update
2026-09-10 15:32:35 -05:00
BigPappa 92abe0f5f0 1.5.1
Docs Update
2026-09-10 15:11:51 -05:00
BigPappa dafd515beb 1.5.1
Docs Update
2026-09-10 15:10:19 -05:00
BigPappa fe9ce58751 1.5.1
Docs Update
2026-09-10 14:45:46 -05:00
BigPappa 648d573fcd 1.5.1
Fixed /Shop Deposit issue where:
- Create new item in config set to false
- New item created would be destroyed
2026-09-09 12:59:24 -05:00
BigPappa f6ba836c98 1.5.0
Docs update
2026-09-08 15:50:19 -05:00
BigPappa 61486763ec 1.5.0
Docs update
2026-09-08 15:48:56 -05:00
BigPappa 6a6454bbfe 1.5.0
Docs update
2026-09-08 15:38:43 -05:00
BigPappa 5e356b676d 1.5.0
Docs update
2026-09-08 15:34:00 -05:00
BigPappa 2a2a99af72 1.5.0
Docs update
2026-09-08 15:31:31 -05:00
BigPappa fd7b77ac43 1.5.0
Docs update
2026-09-08 14:35:15 -05:00
BigPappa 25cdefe152 1.5.0
Docs update
2026-09-08 14:33:50 -05:00
BigPappa 7f83d5c403 1.5.0
Docs update
2026-09-08 14:31:48 -05:00
BigPappa 59b0da3170 1.5.0
Docs update
2026-09-08 14:28:33 -05:00
BigPappa 15aead2b5a 1.5.0
Docs update
2026-09-08 14:27:52 -05:00
BigPappa 8f02e44191 1.5.0
Docs update
2026-09-08 14:10:27 -05:00
BigPappa 91eb3c4bea 1.5.0
Docs update
2026-09-08 14:06:53 -05:00
BigPappa 708946de40 1.5.0
Docs update
2026-09-08 14:06:24 -05:00
BigPappa d8108dbedc 1.5.0
Working on Docs now.
2026-08-30 06:48:23 -05:00
BigPappa 243ab18953 1.5.0
Working on Docs now.
2026-08-22 21:40:02 -05:00
BigPappa b15c0fb9c5 1.5.0
Working on Docs now.
2026-08-22 21:19:34 -05:00
BigPappa 1f0f8d9c39 1.5.0
Working on Docs now.
2026-08-22 12:41:01 -05:00
BigPappa 72b6940b6c 1.5.0
Working on Docs now.
2026-08-21 10:42:28 -05:00
BigPappa c9f5022ba6 1.5.0
Working on Docs now.
2026-08-21 10:41:50 -05:00
BigPappa fcdbc65a97 1.5.0
Working on Docs now.
2026-08-21 10:27:10 -05:00
BigPappa 3026129bc2 1.5.0
Working on Docs now.
2026-08-21 10:26:36 -05:00
BigPappa af44d394f8 1.5.0
Working on Docs now.
2026-08-21 10:16:08 -05:00
BigPappa 33a3ac1a04 1.5.0
Working on Docs now.
2026-08-21 10:13:27 -05:00
BigPappa e9af79d75e 1.5.0
Working on Docs now.
2026-08-21 09:37:27 -05:00
BigPappa 1547e4d1b2 1.5.0
Working on Docs now.
2026-08-20 19:41:14 -05:00
BigPappa 9b2ade0759 1.5.0
Working on Docs now.
2026-08-20 19:38:56 -05:00
BigPappa ced8a03492 1.5.0
Working on Docs now.
2026-08-20 19:33:00 -05:00
BigPappa 5a77e45910 1.5.0
Working on Docs now.
2026-08-20 19:30:08 -05:00
BigPappa b5f3babc4c 1.5.0
Fixed a few issues.
2026-08-19 14:46:03 -05:00
BigPappa 6eea38d344 1.5.0
Added Server Rules Section. Finished.
2026-08-16 02:52:13 -05:00
BigPappa 1ee460687d 1.5.0
Added Server Rules Section.
2026-08-16 02:03:51 -05:00
BigPappa d412a96776 1.4.0
item Options tweaks for server commands.
2026-08-15 21:10:04 -05:00
BigPappa 293be5887a 1.4.0
Added Server Player Commands section.
2026-08-15 09:08:04 -05:00
BigPappa 25a83e7dc5 1.3.3
Version Change.
2026-08-12 13:36:07 -05:00
BigPappa f963ca97c2 1.3.1
Visual cleanup.

Admin Menu
- Menu icon reorganization
- Menu resize
2026-08-12 13:33:45 -05:00
BigPappa 045738fa28 1.3.1
Visual cleanup.

Chest Menu:
- Moved "Open Warehouse" to slot 2.
- Reduced menu size to 1 row.
2026-08-12 13:18:42 -05:00
BigPappa b2bd9ecf39 1.3.0
Documentation Update
2026-08-12 12:30:36 -05:00
BigPappa 0becbb6089 1.3.0
Documentation Update
2026-08-09 14:54:06 -05:00
BigPappa 6f7f2cb15e 1.3.0
Documentation Update
2026-08-09 14:52:53 -05:00
BigPappa 8d19ba1e7f 1.3.0
Documentation Update
2026-08-09 14:51:47 -05:00
BigPappa cc3e0e4e69 1.3.0
Documentation Update
2026-08-09 14:46:09 -05:00
BigPappa 5e3d95472a 1.3.0
Documentation Update
2026-08-09 07:11:43 -05:00
BigPappa 4969de68f3 1.3.0
Documentation Update
2026-08-09 07:09:46 -05:00
BigPappa 0d234f151b 1.3.0
Documentation Update
2026-08-09 07:07:19 -05:00
BigPappa 992b3b65c1 1.3.0
Documentation Update
2026-08-09 07:06:21 -05:00
BigPappa ec06cb3cb0 1.3.0
Documentation Update
2026-08-09 07:04:07 -05:00
BigPappa ef41c1c34f 1.3.0
Documentation Update
2026-08-09 07:02:36 -05:00
BigPappa 943ba9a53b 1.3.0
Documentation Update
2026-08-09 06:51:01 -05:00
BigPappa dc18a5ded3 1.3.0
Documentation Update
2026-08-09 06:49:55 -05:00
BigPappa a992f044cd 1.3.0
Fix item pagination and unassigned item placement

- Keep unassigned items off earlier assigned pages
- Start unassigned items after the last assigned slot
- Continue unassigned items on subsequent pages
- Prevent unassigned item duplication
- Correct pagination for categories with no assigned items
- Update maximum page calculation to match pagination behavior
2026-08-09 06:46:27 -05:00
BigPappa b6d376a2f9 1.2.0
Issue: 002

Fix unassigned item pagination across assigned pages

- Keep unassigned items off earlier assigned pages
- Begin unassigned items after the last assigned slot
- Continue remaining unassigned items on subsequent pages
- Prevent unassigned item duplication between pages
- Preserve existing assigned item slot placement
2026-08-09 05:58:39 -05:00
BigPappa cb75e2bca7 1.1.0
Issue: 001

Bug Fix:
Fixed issue in Enchanted Variants.
Issue:
When clicking red wool to withdraw, center item disappears and amount does not update in title, however, withdraw is limited to amount in inventory and correct amount issued.
2026-08-09 05:27:08 -05:00
190 changed files with 5586 additions and 1068 deletions

No files matched your search

@@ -32,7 +32,7 @@ plugins/
📷 Screenshot
![Plugins Folder](../images/PluginsFolder.png)
![Plugins Folder](../images/PluginsFolder.jpg)
# Step 3 - Start Your Server
@@ -42,7 +42,7 @@ During startup RS-Warehouse will automatically create its data folder, configura
📷 Screenshot
![Plugins Folder](../images/PluginEnabled.png)
![Plugins Folder](../images/PluginEnabled.jpg)
---
@@ -55,10 +55,27 @@ Your plugins folder should now contain:
```
plugins/
└── RS-Warehouse/
└── db-files-templates
├── empty_database.db
└── populated_database.db
├── config.yml
└── database.db
```
📷 Screenshot
```
NOTE:
RS-Warehouse comes with 2 additional database files.
1) empty_database.db = A totally empty database file. No categories, no items.
the only items contained in this databse are the Uncategorized, Server
Rules, Server Commands, and Auto-Deposit categories
2) populated_database.db = A populated and organized database for your ease of
use. This is the default database.
![Plugins Folder](../images/PluginFolderFiles.png)
If you wish to start with a completely empty database, simply delete the plugins
database.db file, copy the empty_database.db file to the /RS-Warehouse directory
and rename it to database.db. Be sure to enter the admin menu and reload the
plugin or restart your server for the change to take effect.
```
+325
View File
@@ -0,0 +1,325 @@
# Configuration
RS-Warehouse includes a `config.yml` file that allows you to control how certain features of the plugin behave.
The configuration file is located at:
`plugins/RS-Warehouse/config.yml`
After changing a setting, reload the plugin for the changes to take effect.
---
# Display Settings
The `display` section controls optional information and categories that are shown to players.
```yaml
display:
```
## Show Discovery Information
```yaml
show-discovery-information: true
```
Controls whether RS-Warehouse displays information about when an item was first deposited into the Warehouse database.
When enabled, discovery information can include information about when the item was first discovered.
### Options
```text
true
```
Discovery information will be displayed.
```text
false
```
Discovery information will not be displayed.
---
## Show Server Commands
```yaml
show-server-commands: true
```
Controls whether the **Server Commands** category is displayed.
The Server Commands category contains a list of commands available on your server.
> **NOTE:** This category does not execute commands. It is only used to provide players with a list of available commands.
### Options
```text
true
```
The Server Commands category will be displayed.
```text
false
```
The Server Commands category will be hidden.
---
## Show Server Rules
```yaml
show-server-rules: true
```
Controls whether the **Server Rules** category is displayed.
This category can be used to provide players with a list of rules for your server.
### Options
```text
true
```
The Server Rules category will be displayed.
```text
false
```
The Server Rules category will be hidden.
---
# Automatic Chest Processing
The `chest-auto-processing` section controls automatic scanning and processing of Warehouse Chests.
```yaml
chest-auto-processing:
```
## Enable Automatic Processing
```yaml
enabled: true
```
Controls whether Warehouse Chests are automatically scanned and processed.
### Options
```text
true
```
Warehouse Chests will automatically be scanned and processed.
```text
false
```
Automatic processing will be disabled.
---
## Processing Interval
```yaml
interval-seconds: 30
```
Controls how often RS-Warehouse automatically scans and processes Warehouse Chests.
The value is measured in seconds.
For example:
```yaml
interval-seconds: 30
```
The plugin will process Warehouse Chests every 30 seconds.
Increasing this value means chests will be processed less frequently.
Decreasing this value means chests will be processed more frequently.
---
# Item Creation Settings
These settings control how RS-Warehouse handles items that do not currently exist in the Warehouse database.
## Allow Uncategorized Item Creation
```yaml
allow-uncategorized-item-creation: true
```
Controls whether new items can automatically be added to the **Uncategorized** category when they are deposited into a Warehouse Chest.
### Options
```text
true
```
Items that do not already exist in the Warehouse can be automatically added to the Uncategorized category.
```text
false
```
Items that do not already exist in the Warehouse will not automatically be created.
---
## Always Show Uncategorized
```yaml
always-show-uncategorized: false
```
Controls whether the **Uncategorized** category is always displayed in the main Warehouse Category Menu.
### Options
```text
true
```
The Uncategorized category will always be displayed.
```text
false
```
The Uncategorized category will only be displayed when it contains items.
---
## Allow Damaged Item Creation
```yaml
allow-damaged-item-creation: true
```
Controls whether damaged versions of items can automatically be added as damaged variants of their base item.
### Options
```text
true
```
Damaged items can automatically be added to the damaged variants menu of their base item.
```text
false
```
Damaged items will not automatically be added as damaged variants.
---
# Chest Close Processing
The `chest-close-processing` section controls whether Warehouse Chests are processed when a player closes them.
```yaml
chest-close-processing:
```
## Enable Chest Close Processing
```yaml
enabled: true
```
Controls whether a Warehouse Chest is immediately processed when a player closes it.
### Options
```text
true
```
The Warehouse Chest will be processed immediately when a player closes it.
```text
false
```
The Warehouse Chest will not be processed when it is closed.
Items will instead be processed according to the Automatic Chest Processing settings if automatic processing is enabled.
---
# Default Configuration
The default `config.yml` is:
```yaml
#
# RS-Warehouse
#
display:
# Display when item was first deposited
# 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
# Display the Server Rules category.
# This category is a list of rules for
# your server.
show-server-rules: true
############################################
# Automatic-Chest scan and process settings.
############################################
chest-auto-processing:
enabled: true
interval-seconds: 30
############################################
# Item Creation. Whether to allow automatic
# creation when items aren't in the database.
############################################
# Allow item to be added to Uncategorized
# if item is not currently in warehouse.
allow-uncategorized-item-creation: true
# Whether or not to always show the Uncategorized category.
# True = Uncategorized will always show.
# False = Uncategorized will only show if it has items inside.
always-show-uncategorized: false
# Allow damaged items to be added to
# damaged variant menu of base items.
allow-damaged-item-creation: true
#######################################
# Chest Close Processing Settings
#######################################
chest-close-processing:
# Process warehouse chests immediately
# when a player closes them.
enabled: true
```
@@ -1,67 +0,0 @@
# Creating a Warehouse Chest
This guide walks you through creating your first Warehouse Chest.
---
## Before You Begin
Ensure:
- RS-Warehouse is installed.
- You have administrative permissions.
- The server has been started at least once.
If not, complete the
[Installation And Setup](../01%29%20Getting%20Started/A%29%20Installation%20And%20Setup.md)
guide first.
---
## Step 1 - Convert A Chest
Place a normal chest anywhere in the world. Then with a stick in your hand SNEAK and strike the chest
with the chest. This will open the *Conversion* Menu.
📷 Screenshot
![ConversionMenu.png](../images/ConversionMenu.png)
---
## Step 3 - Convert the Chest
In the *Conversion* menu pick up the *Crafting Table*. The action will be cancelled and the chest will
be converted.
**NOTE:** Warehouse chests cannot be broken or damaged. To pick one up, you will need to convert
it back into a normal chest.
📷 Screenshot
![MainMenu.png](../images/MainMenu.png)
---
## Step 3A - *Main Chest Menu*
There are 3 options in this menu. Picking up the item triggers the next action.
1. Composter. This Will convert the chest back into a standard chest.
2. Command Block. This will open the chest *Administration Menu*
3. Book Shelf. This will open the *Warehouse Category Menu*.
📷 Screenshot
![MainMenuNumbered.png](../images/MainMenuNumbered.png)
---
## Step 4 - Open the Warehouse
Click on the *Book Shelf*. to open the *Warehouse Category Menu*. If you have
not created any categories yet you will only see 2 options in this menu. You can find
a fully organized and populated warehouse file in the *[Extras Folder](../Blank%20Pages/Extras%20Folder.md)* of the plugin.
1. Hopper. This is your [Auto-Deposit](../50%29%20Side%20Pages/Auto-Deposit.md) section.
2. Chest. This is the [UnCategorized Category](../50%29%20Side%20Pages/UnCategorized%20Category.md) section.
📷 Screenshot
![EmptyWarehouse.png](../images/EmptyWarehouse.png)
@@ -0,0 +1,63 @@
# Database Templates
RS-Warehouse includes a `db-files-templates` folder inside the plugin folder.
This folder contains two database templates:
- `empty_database.db`
- `populated_database.db`
These files can be used to quickly replace the active Warehouse database.
---
## Populated Database
The `populated_database.db` file is the default database included with RS-Warehouse.
It contains the preconfigured categories and items included with the plugin.
This database is automatically used as the starting database when RS-Warehouse is installed for the first time.
---
## Empty Database
The `empty_database.db` file is a completely empty Warehouse database.
It contains:
- Zero categories
- Zero items
This can be used if you want to start with a completely blank Warehouse and create your own category and item organization from scratch.
---
## Using a Database Template
To replace the active Warehouse database with one of the templates:
1. Stop the server or disable/reload the plugin.
2. Open:
`plugins/RS-Warehouse/db-files-templates/`
3. Choose the database template you want to use:
- `populated_database.db`
- `empty_database.db`
4. Make a copy of the selected file.
5. Rename the copied file to:
`database.db`
6. Copy it into:
`plugins/RS-Warehouse/`
7. Overwrite the existing `database.db` file.
8. Reload the RS-Warehouse plugin.
The selected database template will now become the active Warehouse database.
> **WARNING:** Replacing `database.db` will replace your current Warehouse categories, items, and stored database information. Make a backup of your existing `database.db` before replacing it if you may want to restore it later.
@@ -0,0 +1,23 @@
# Permissions
This page documents every permission node used by RS-Warehouse.
| Permission | Description | Default |
|---------------------|---------------------------------------------------------------------------|---------|
| `rswarehouse.admin` | Allows access to the RS-Warehouse Admin menu and administrative features. | OP |
## Admin Permission
The `rswarehouse.admin` permission is required to access the RS-Warehouse Admin menu.
Players must also be **OP** to access the Admin menu.
The Admin menu provides access to administrative functions such as:
- Creating and managing categories
- Managing subcategories
- Managing warehouse items
- Creating Server Commands
- Creating Server Rules
- Reloading the plugin
- Viewing warehouse statistics
Regular players do not need the admin permission to use the normal warehouse features.
@@ -0,0 +1,60 @@
# Creating Your First Category
Categories are used to organize items in the Warehouse. Your first category can be created from the **Admin Menu**.
## Open the Admin Menu
📷 Screenshot
![Plugins Folder](../images/Converted.jpg)
Open the Warehouse by sneaking and right clicking a warehouse chest with a stick and select the **Admin** option. From the Admin Menu, select:
**Create Category**. That option is the Book shelf icon.
📷 Screenshot
![Plugins Folder](../images/CreateCategory.jpg)
## Enter the Internal Name
The first step is to enter the category's internal name. This is an internal identifier that may be used for later features.
📷 Screenshot
![Plugins Folder](../images/CategoryName.jpg)
The internal name is used internally by RS-Warehouse and is not normally shown to players. Enter the name you want to use and confirm it.
## Enter the Display Name
Next, enter the name that players will see when viewing the category.
📷 Screenshot
![Plugins Folder](../images/CategoryDisplayName.jpg)
Choose a clear name that describes the items the category will contain.
For example:
- Building Blocks
- Tools
- Food
- Ores
## Add a Description
The category can have a description that appears in the category menu.
📷 Screenshot
![Plugins Folder](../images/CategoryLore.jpg)
You can add up to five lines of description text.
This is useful for explaining what belongs in the category.
## Choose the Category Icon
Next, select the material that will be used as the category's icon.
📷 Screenshot
![Plugins Folder](../images/CategoryMaterialPicker.jpg)
The **Select Material** menu displays available Minecraft items across multiple pages. Select the item you want to use as the category icon.
After you click on the item you want to use as the icon, the category will be created.
@@ -1,7 +1,6 @@
# Auto-Deposit
**Auto-Deposit** allows each player to choose which items should automatically be sent to the Warehouse when they pick them up.
When a player picks up an item that has been added to their Auto-Deposit filter, the item is sent directly to the Warehouse instead of being added to their inventory.
> **NOTE:** Auto-Deposit is configured separately by each player. Your Auto-Deposit items do not affect other players.
@@ -11,23 +10,19 @@ When a player picks up an item that has been added to their Auto-Deposit filter,
## Adding an Item to Auto-Deposit
Open the Warehouse and access the **Auto-Deposit** menu.
To add an item to your Auto-Deposit filter, place the item into the Auto-Deposit menu.
RS-Warehouse copies the item into your Auto-Deposit filter.
The original item is **not removed from your inventory**.
📷 Screenshot
![AutoDeposit.png](../images/AutoDeposit.png)
![Auto Deposit](../images/AutoDeposit.jpg)
---
## How Auto-Deposit Works
Once an item has been added to your Auto-Deposit filter, you can simply pick up that item normally.
When you pick up an item that matches one of your Auto-Deposit items:
1. RS-Warehouse detects the item pickup.
@@ -39,9 +34,7 @@ When you pick up an item that matches one of your Auto-Deposit items:
## Items Not in the Filter
Items that are not in your Auto-Deposit filter behave normally.
When you pick up an item that has not been added to Auto-Deposit, Minecraft adds the item to your inventory as usual.
This allows you to choose exactly which items should be automatically sent to the Warehouse.
---
@@ -49,12 +42,11 @@ This allows you to choose exactly which items should be automatically sent to th
## Managing Your Auto-Deposit Items
Your Auto-Deposit filter can be changed at any time.
Open the Auto-Deposit menu to view the items currently configured for automatic deposit.
📷 Screenshot
![AutoDeposit.png](../images/AutoDeposit.png)
![Auto Deposit](../images/AutoDeposit.jpg)
Items can be removed from the filter when you no longer want them to be automatically deposited by simply picking them
up. The item will disappear and will no longer be in the filter.
@@ -72,7 +64,6 @@ then *Auto-Deposit* is paused. If it is **GREEN** then *Auto-Deposit* is running
## Using Auto-Deposit with the Warehouse
Auto-Deposit is especially useful for items that you collect frequently.
For example, you may want all of the following to automatically go to the Warehouse:
- Cobblestone
@@ -0,0 +1,44 @@
# Warehouse Chest Deposits
A Warehouse Chest can automatically process items placed inside it and deposit them into the shared Warehouse.
RS-Warehouse supports two methods of processing items from a Warehouse Chest:
- **Auto-Scan**
- **Process on Close**
Both methods ultimately deposit eligible items into the Warehouse.
---
## Auto-Scan
Auto-Scan periodically checks the contents of the Warehouse Chest while the chest is open or in use.
When Auto-Scan is enabled, RS-Warehouse checks the chest at the configured interval and processes any eligible items it finds.
By default, Auto-Scan runs every **30 seconds**.
### Configuration
Auto-Scan is controlled by the following configuration settings:
```yaml
chest-auto-processing:
enabled: true
interval-seconds: 30
```
## Chest Close Processing
### How It Works
1. Place items into the Warehouse Chest.
2. RS-Warehouse automatically scans the chest when it is closed.
3. Eligible items are removed from the chest.
4. The items are deposited into the Warehouse.
5. The chest is left with any items that could not be processed.
### Configuration
Auto-Scan is controlled by the following configuration settings:
```yaml
chest-close-processing:
# Process warehouse chests immediately
# when a player closes them.
enabled: true
```
@@ -0,0 +1,44 @@
# shop deposit
The `/shop deposit` command opens the **Mass Deposit** menu, allowing you to deposit multiple items from your inventory into the Warehouse at once.
This is useful when you want to quickly deposit several items without opening the Warehouse Chest.
---
## Opening the Mass Deposit Menu
Use:
/shop deposit
The command opens the Mass Deposit screen.
📷 Screenshot
![Auto Deposit](../images/MassDeposit1.jpg)
---
## Adding Items
Place the items you want to deposit into the Mass Deposit menu.
Items can be added individually or in larger quantities.
Once the items have been added, the menu provides the option to process the deposit.
📷 Screenshot
![Auto Deposit](../images/MassDeposit2.jpg)
---
## Using `/shop deposit`
### 1. Open the menu
/shop deposit
### 2. Add items
Place the items you want to deposit into the Mass Deposit menu.
### 3. Process the deposit
The items will be deposited when you close the menu out..
### 4. Items are deposited
Successfully processed items are added to the Warehouse.
Any items that cannot be processed remain in the players inventory.
@@ -0,0 +1,90 @@
# Item Options
The **Item Options** menu provides administrators with tools for managing individual items in the Warehouse.
To open Item Options, **Shift-Right-Click** an item while viewing a category.
📷 Screenshot
![Plugins Folder](../images/ItemOptions.jpg)
The available options allow you to change how an item is displayed, organize items into categories and subcategories, control its position in the menu, and remove or duplicate item references.
---
## Edit Display Name
Icon: Name Tag
Change the name displayed to players for the selected item.
---
## Create SubCategory
Icon: Crafter
Create a new SubCategory using the selected item as the starting point. The Original item will be copied into the SubCategory when it is created.
---
## Assign Page / Slot
Icon: Book
Choose which page and slot the item appears in within its category.
---
## Edit Lore
Icon: Book With Quill
Change the description displayed underneath the SubCategory.
---
## Move to Category
Icon: Piston
Move the item from its current category to another category.
---
## Move to SubCategory
Icon: Sticky Piston
Move the item into an existing SubCategory.
---
## Delete Item
Icon: Barrier Block
Delete the selected item reference from the Warehouse.
Deletion is permanent and may be restricted when the item is still being used or contains inventory.
---
## Copy to Category
Icon: Sign
Create an additional reference to the same Warehouse item in another category.
---
## Copy to SubCategory
Icon: Hanging Sign
Create an additional reference to the same Warehouse item in a SubCategory.
---
## Back
Icon: Door
The **Back** button returns you to the category and page where the item was selected.
---
## Item Options at a Glance
| Option | Purpose |
|---|---|
| **Edit Display Name** | Change the item's displayed name |
| **Create SubCategory** | Create a SubCategory from the item |
| **Assign Page / Slot** | Choose the item's page and menu position |
| **Edit Lore** | Change the item's displayed description |
| **Move to Category** | Move the item to another category |
| **Move to SubCategory** | Move the item into a SubCategory |
| **Delete Item** | Remove the item reference |
| **Copy to Category** | Add another category reference |
| **Copy to SubCategory** | Add another SubCategory reference |
| **Back** | Return to the previous item list |
**Note:**
Some options are unavailable for special items such as **Convert To SubCategory** and **Delete**
@@ -1,51 +0,0 @@
# The UnCategorized Category
The **UnCategorized** category is where RS-Warehouse places items that have been discovered by the warehouse but have not yet been assigned to another category.
This allows items to be added to the warehouse immediately without requiring an administrator to organize every item first.
> **NOTE:** The UnCategorized category is intended to be a temporary holding area for items that have not yet been organized.
> This category can be enable and disabled in the plugins config.yml file. It is enabled by default.
---
## How Items Become UnCategorized
When an item is deposited into the warehouse, RS-Warehouse checks whether the item has been assigned to a category.
If the item has not been assigned to a category, it is placed in the **UnCategorized** category.
This means you can continue adding items to the warehouse without having to stop and organize each new item as it is discovered.
---
## Viewing UnCategorized Items
Open the Warehouse and select the **UnCategorized** category.
The category will display the items that have not yet been assigned to another category. These items can be withdrawn
just like any other item and even deposited. They can be moved by an admin into a *Category* or *SubCategory* by any
admin.
📷 Screenshot
![UnassignedCategory.png](../images/UnassignedCategory.png)
---
## Keeping the Warehouse Organized
The UnCategorized category makes it possible to build your warehouse inventory first and organize it later.
For example, you may discover several new items while playing:
1. Deposit the items into the Warehouse.
2. The items are automatically placed in **UnCategorized** if they have not yet been categorized.
3. Continue using the warehouse normally.
4. When convenient, open **UnCategorized**.
5. Move the items into their appropriate categories.
Once an item has been moved to its appropriate category, it will appear there instead of in Unassigned.
This allows the warehouse to remain usable without requiring constant administrative organization.
> **IMPORTANT:** Items in Unassigned are still part of the warehouse inventory. Unassigned simply means that they have not yet been organized into a specific category.
-82
View File
@@ -1,82 +0,0 @@
# Categories
Categories organize every item stored inside the warehouse.
Well-designed categories make browsing quick and intuitive.
---
## Opening Category Management
Open the Warehouse.
Open the Administration menu.
Select Categories.
📷 Screenshot
---
## Creating a Category
Choose **Create Category**.
📷 Screenshot
---
## Internal Name
Enter a unique internal name.
Example:
building_blocks
📷 Screenshot
---
## Display Name
Enter the player-visible name.
Examples:
- Building Blocks
- Food
- Farming
- Combat
📷 Screenshot
---
## Icon
Select an icon that represents the category.
📷 Screenshot
---
## Description
Enter an optional description.
This is displayed in the category lore.
📷 Screenshot
---
## Finished
Repeat these steps until your warehouse is organized.
---
⬅️ Previous: [Creating a Warehouse Chest](01%20Getting%20Started/C)%20Creating%20A%20Warehouse%20Chest.md)
➡️ Next: [Subcategories](Subcategories.md)
-11
View File
@@ -1,11 +0,0 @@
# Commands
| Command | Description |
|---------|-------------|
| *(To be completed)* | |
---
⬅️ Previous: [Permissions](Permissions.md)
➡️ Next: [Configuration](Configuration.md)
-13
View File
@@ -1,13 +0,0 @@
# Configuration
Every configuration option is documented below.
| Setting | Description | Default |
|----------|-------------|---------|
| *(To be completed)* | | |
---
⬅️ Previous: [Commands](Commands.md)
➡️ Next: [FAQ](01)%20Getting%20Started/FAQ.md)
-47
View File
@@ -1,47 +0,0 @@
# Depositing Items
Players can deposit items directly into the warehouse.
---
## Open the Warehouse
Open the Warehouse Chest.
📷 Screenshot
---
## Select Deposit
Choose Deposit.
📷 Screenshot
---
## Select Items
Choose the items to deposit.
📷 Screenshot
---
## Confirmation
Items are transferred into warehouse storage.
📷 Screenshot
---
## Finished
Your items are now available to all authorized players.
---
⬅️ Previous: [Subcategories](Subcategories.md)
➡️ Next: [Withdrawing Items](Withdrawing-Items.md)
View File
Whitespace-only changes.
-37
View File
@@ -1,37 +0,0 @@
# Frequently Asked Questions
## Why is my warehouse empty?
Items have not yet been deposited.
---
## Can multiple players use the same warehouse?
Yes.
---
## Does RS-Warehouse support SQLite?
Yes.
SQLite is used by default.
---
## Can I organize items?
Yes.
Categories and subcategories provide flexible organization.
---
## Where can I request features?
Please use the repository's **Issues** page.
---
⬅️ Previous: [Configuration](Configuration.md)
View File
Whitespace-only changes.
-13
View File
@@ -1,13 +0,0 @@
# Permissions
This page documents every permission node used by RS-Warehouse.
| Permission | Description | Default |
|------------|-------------|---------|
| *(To be completed)* | | |
---
⬅️ Previous: [Withdrawing Items](Withdrawing-Items.md)
➡️ Next: [Commands](Commands.md)
-76
View File
@@ -1,76 +0,0 @@
# Subcategories
Subcategories allow large categories to be broken into smaller groups.
Example:
Building Blocks
- Stone
- Wood
- Glass
- Decorative
---
## Creating a Subcategory
Open Category Management.
Choose a category.
Select Subcategories.
📷 Screenshot
---
## Create Subcategory
Choose Create.
📷 Screenshot
---
## Internal Name
Enter a unique internal name.
📷 Screenshot
---
## Display Name
Enter the player-visible name.
📷 Screenshot
---
## Icon
Select an icon.
📷 Screenshot
---
## Description
(Optional)
📷 Screenshot
---
## Finished
The subcategory is now available.
---
⬅️ Previous: [Categories](Categories.md)
➡️ Next: [Depositing Items](Depositing-Items.md)
Whitespace-only changes.
+10 -22
View File
@@ -2,29 +2,17 @@
### Getting Started
- Home
- [Installagion And Setup](01%29%20Getting%20Started/A%29%20Installation%20And%20Setup.md)
- [Creating A Warehouse Chest](01%29%20Getting%20Started/B%29%20Creating%20A%20Warehouse%20Chest.md)
- [Installation And Setup](01%29%20Getting%20Started/A%29%20Installation%20And%20Setup.md)
- [Configuration](01%29%20Getting%20Started/B%29%20Config%20File.md)
- [Database File Selection](01%29%20Getting%20Started/C%29%20Database%20File%20Selection.md)
- [Permissions](01%29%20Getting%20Started/D%29%20Permissions.md)
### Using the Warehouse
### Depositing items
- [Auto-Deposit](02%29%20Depositing%20Items/A%29%20Auto-Deposit.md)
- [Chest-Deposit](02%29%20Depositing%20Items/B%29%20Warehouse%20Chest%20Deposit.md)
- [Deposit Command](02%29%20Depositing%20Items/C%29%20Shop%20Deposit%20Command.md)
- [Auto-Deposit](50%29%20Side%20Pages/Auto-Deposit.md)
- [UnCategorized Category](50%29%20Side%20Pages/UnCategorized%20Category.md)
- [Depositing Items]
- [Withdrawing Items]
### Item Options
- [Item Option Menu](03%29%20Item%20Options/A%29%20Item%20Option%20Menu.md)
### Organization
- [Categories]
- [Subcategories]
### Administration
- [Permissions]
- [Commands]
- [Configuration]
### Reference
- [FAQ]
---
Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

+49 -6
View File
@@ -8,33 +8,76 @@
<groupId>com.rsscripting</groupId>
<artifactId>RS-Warehouse</artifactId>
<name>RS-Warehouse</name>
<version>1.0.0</version>
<version>2.0.0</version>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<maven.compiler.source>25</maven.compiler.source>
<maven.compiler.target>25</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<resources>
<!-- Normal resources that need filtering -->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>database.db</exclude>
<exclude>
database.db
</exclude>
<exclude>
db-files-templates/*.db
</exclude>
</excludes>
</resource>
<!-- Main database copied as binary -->
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>database.db</include>
<include>
database.db
</include>
</includes>
</resource>
<!-- Database template files copied as binary -->
<resource>
<directory>
src/main/resources/db-files-templates
</directory>
<targetPath>
db-files-templates
</targetPath>
<filtering>false</filtering>
<includes>
<include>
*.db
</include>
</includes>
</resource>
</resources>
@@ -56,7 +99,7 @@
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.21.6-R0.1-SNAPSHOT</version>
<version>26.3.build.32-alpha</version>
<scope>provided</scope>
</dependency>
@@ -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;
@@ -1,4 +0,0 @@
package com.rsscripting.rswarehouse.admin.adminsessions;
public class CategoryOptionsMenuListener {
}
@@ -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"
),
54,
18,
Component.text(
MENU_TITLE
).color(
@@ -77,7 +77,7 @@ public class AdminMenu {
*/
menu.setItem(
1,
6,
RSMenuUtils.createMenuItem(
Material.ENCHANTED_BOOK,
@@ -94,7 +94,7 @@ public class AdminMenu {
*/
menu.setItem(
7,
8,
RSMenuUtils.createMenuItemWithLore(
Material.BOOK,
@@ -127,7 +127,7 @@ public class AdminMenu {
);
menu.setItem(
10,
0,
RSMenuUtils.createMenuItemWithLore(
Material.BOOKSHELF,
"§aCreate Category",
@@ -138,7 +138,7 @@ public class AdminMenu {
);
menu.setItem(
16,
2,
RSMenuUtils.createMenuItemWithLore(
Material.WRITABLE_BOOK,
@@ -184,6 +184,27 @@ public class AdminMenu {
)
);
menu.setItem(
12,
RSMenuUtils.createMenuItemWithLore(
Material.COMMAND_BLOCK,
"§aCreate Server Command",
List.of(
"§7Create a server command entry."
)
)
);
menu.setItem(
14,
RSMenuUtils.createMenuItemWithLore(
Material.COMMAND_BLOCK,
"§aCreate Server Rule",
List.of(
"§7Create a server rule entry."
)
)
);
player.openInventory(menu);
@@ -1,13 +1,16 @@
package com.rsscripting.rswarehouse.admin;
package com.rsscripting.rswarehouse.adminmenu;
import com.rsscripting.rswarehouse.serverrule.ServerRuleInternalNameMenu;
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 com.rsscripting.rswarehouse.session.admin.ServerRuleCreationSessionManager;
import org.bukkit.block.Block;
import com.rsscripting.rswarehouse.utils.RSMessageUtils;
import org.bukkit.entity.Player;
@@ -110,7 +113,7 @@ public class AdminMenuListener
|--------------------------------------------------------------------------
*/
if (event.getRawSlot() == 1) {
if (event.getRawSlot() == 6) {
ConfigManager.reload();
@@ -125,7 +128,7 @@ public class AdminMenuListener
}
if (event.getRawSlot() == 10) {
if (event.getRawSlot() == 0) {
CategoryNameMenu.open(
player
@@ -133,6 +136,32 @@ public class AdminMenuListener
}
if (event.getRawSlot() == 12) {
ServerCommandCreationSessionManager.createSession(
player.getUniqueId()
);
ServerCommandInternalNameMenu.open(
player
);
return;
}
if (event.getRawSlot() == 14) {
ServerRuleCreationSessionManager.createSession(
player.getUniqueId()
);
ServerRuleInternalNameMenu.open(
player
);
return;
}
}
}
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -1,5 +1,8 @@
package com.rsscripting.rswarehouse.category.categorymenu;
import com.rsscripting.rswarehouse.dao.CategoryDAO;
import com.rsscripting.rswarehouse.config.ConfigManager;
import com.rsscripting.rswarehouse.dao.ItemDAO;
import com.rsscripting.rswarehouse.menuholder.RSMenuHolder;
import com.rsscripting.rswarehouse.model.WarehouseCategory;
import com.rsscripting.rswarehouse.constants.RSKeys;
@@ -97,6 +100,12 @@ public class CategoryMenu {
WarehouseCategory uncategorized =
null;
WarehouseCategory serverCommands =
null;
WarehouseCategory serverRules =
null;
List<WarehouseCategory> displayCategories =
new ArrayList<>();
@@ -104,7 +113,6 @@ public class CategoryMenu {
WarehouseCategory category
: categories
) {
if (
category.displayName()
.equalsIgnoreCase(
@@ -115,6 +123,24 @@ public class CategoryMenu {
uncategorized =
category;
}
else if (category.id() == 1001) {
if (ConfigManager.isServerCommandsEnabled()) {
serverCommands = category;
}
}
else if (category.id() == 1000) {
if (ConfigManager.isServerRulesEnabled()) {
serverRules = category;
}
}
else {
@@ -233,7 +259,7 @@ public class CategoryMenu {
}
int highestAssignedPage = 1;
int highestAssignedPage = 0;
List<WarehouseCategory> unassigned =
new ArrayList<>();
@@ -379,7 +405,15 @@ public class CategoryMenu {
}
if (uncategorized != null) {
if (
uncategorized != null
&& (
ConfigManager.isAlwaysShowUncategorized()
|| ItemDAO.categoryHasItems(
uncategorized.id()
)
)
) {
ItemStack icon =
RSMenuUtils.createMenuItem(
@@ -420,6 +454,102 @@ 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
);
}
if (serverRules != null) {
ItemStack icon =
RSMenuUtils.createMenuItemWithLore(
Material.valueOf(
serverRules.material()
),
"§a"
+ serverRules.displayName(),
serverRules.lore() == null
|| serverRules.lore().isBlank()
? List.of()
: Arrays.asList(
serverRules.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,
serverRules.id()
);
icon.setItemMeta(
meta
);
}
menu.setItem(
7,
icon
);
}
player.openInventory(
menu
);
@@ -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;
@@ -126,8 +125,10 @@ public class CategoryMenuListener
if (
player.isOp()
&& event.getClick()
== ClickType.SHIFT_RIGHT
&& event.getClick() == ClickType.SHIFT_RIGHT
&& categoryId != 1
&& categoryId != 1000
&& categoryId != 1001
) {
CategoryOptionsMenu.open(
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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(
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -3,6 +3,12 @@ package com.rsscripting.rswarehouse.config;
import com.rsscripting.rswarehouse.RSWarehouse;
import org.bukkit.configuration.file.FileConfiguration;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.logging.Level;
import java.io.InputStream;
public class ConfigManager {
private static FileConfiguration config;
@@ -22,6 +28,10 @@ public class ConfigManager {
RSWarehouse.getInstance()
.getConfig();
setupDefaultDatabase();
setupDatabaseTemplates();
}
/*
@@ -54,43 +64,150 @@ public class ConfigManager {
}
/*
| Warehouse Chest name
*/
|--------------------------------------------------------------------------
| Server Commands Enabled
|--------------------------------------------------------------------------
*/
public String getWarehouseChestName() {
return config.getString(
"warehouse-chest-name",
"Community Warehouse"
);
}
/*
| Uncateforized enabled
*/
public boolean isUncategorizedEnabled() {
public static boolean isServerCommandsEnabled() {
return config.getBoolean(
"allow-uncategorized-item-creation",
"display.show-server-commands",
true
);
}
/*
| Chest Protection Enabled
*/
public boolean isWarehouseChestProtectionEnabled() {
public static boolean isServerRulesEnabled() {
return config.getBoolean(
"protect-warehouse-chests",
"display.show-server-rules",
true
);
}
/*
|--------------------------------------------------------------------------
| UnCategorized Enabled
|--------------------------------------------------------------------------
*/
public static boolean isAlwaysShowUncategorized() {
return config.getBoolean(
"always-show-uncategorized",
false
);
}
private static void setupDatabaseTemplates() {
RSWarehouse plugin =
RSWarehouse.getInstance();
File templatesFolder =
new File(
plugin.getDataFolder(),
"db-files-templates"
);
if (!templatesFolder.exists()) {
templatesFolder.mkdirs();
}
File emptyDatabase =
new File(
templatesFolder,
"empty_database.db"
);
if (!emptyDatabase.exists()) {
plugin.saveResource(
"db-files-templates/empty_database.db",
false
);
}
File populatedDatabase =
new File(
templatesFolder,
"populated_database.db"
);
if (!populatedDatabase.exists()) {
plugin.saveResource(
"db-files-templates/populated_database.db",
false
);
}
}
private static void setupDefaultDatabase() {
RSWarehouse plugin =
RSWarehouse.getInstance();
File databaseFile =
new File(
plugin.getDataFolder(),
"database.db"
);
if (databaseFile.exists()) {
return;
}
if (!plugin.getDataFolder().exists()) {
plugin.getDataFolder().mkdirs();
}
try (
InputStream input =
plugin.getResource(
"db-files-templates/populated_database.db"
)
) {
if (input == null) {
plugin.getLogger().severe(
"Could not find populated_database.db in plugin resources."
);
return;
}
Files.copy(
input,
databaseFile.toPath()
);
}
catch (IOException exception) {
plugin.getLogger().log(
Level.SEVERE,
"Failed to create default database.",
exception
);
}
}
}
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -1,4 +1,4 @@
package com.rsscripting.rswarehouse.discovery.discoverydao;
package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
@@ -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;
@@ -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;
@@ -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;
@@ -1,4 +1,4 @@
package com.rsscripting.rswarehouse.inventory;
package com.rsscripting.rswarehouse.dao;
import com.rsscripting.rswarehouse.database.DatabaseManager;
@@ -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;
@@ -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 {
@@ -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;
@@ -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;
@@ -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;
@@ -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 {
@@ -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 {
@@ -1,4 +1,4 @@
package com.rsscripting.rswarehouse.admin.admindao;
package com.rsscripting.rswarehouse.dao.admin;
import com.rsscripting.rswarehouse.database.DatabaseManager;
@@ -1,4 +1,4 @@
package com.rsscripting.rswarehouse.admin.admindao;
package com.rsscripting.rswarehouse.dao.admin;
import com.rsscripting.rswarehouse.database.DatabaseManager;
@@ -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;
}
}
Loaded 100 of 190 files, more files were not shown because too many files have changed in this diff. Show more