Sueta

PlayerVaults999

1.0.3

PlayerVaults999 revolutionizes in-game storage by offering a seamlessly integrated vault system for Minecraft servers

·Plugin
  1. 1.0.3latestPlayerVaults999 1.0.3 The Admin Tools Update!Sep 21, 2026
    New Features
    * Added a vault menu: running /pv with no arguments now opens a clickable menu that lists every vault a player can access, shows how many items each vault holds, and pages through them. * Added the /pv menu command to open the vault menu directly. * Added per-vault custom names and icons, so players can rename a vault and choose the icon shown for it in the menu. Renamed vaults display their new name in the menu. * Added economy support: locked vaults can be bought for a configurable price using the Vault economy. Bought vaults stay unlocked. The plugin runs normally when Vault or an economy plugin is not installed, and players are told Vault is required when they try to buy a vault. * Added a separate sorting menu, opened by right-clicking a vault in the menu or with /pv sort <vault>, so sorting choices are never mixed in with stored items. * Added upgradeable item search: /pv search results are clickable, show the vault number, the item and the total amount, and open the matching vault when clicked. * Added a proper /pv reload command to apply changes to the settings without restarting. * Added administrator tools: /pv backup <player> creates a dated copy of a player's vault data, /pv wipe <player> [vault] clears one or all of a player's vaults and always takes a backup first, and /pv inspect <player> <vault> opens another player's vault as a read-only view. * Added a read-only vault view that cannot be modified. * Added support for the "all vaults" permission so holders can open every vault. * Added tab completion for the /pv command, including sub-commands, vault numbers, player names and item names. * Added configuration for menu titles and icons, the filler item, sorting titles and sounds, the purchase and read-only screens, economy prices, and every message players see.
    Bug Fixes
    * Fixed an issue where vault items were stored in a different layout than they were loaded from, which caused every vault to come back empty and stored items to be lost. * Fixed an issue where the vault number was worked out from the vault title incorrectly, which stopped vaults from being recognised and saved. * Fixed an issue where other inventories could be mistaken for a vault. * Fixed an issue that could crash the plugin when a custom vault title did not contain the expected markers. * Fixed an issue where sorting controls were placed in real storage slots and destroyed the items kept there. * Fixed an issue where the sorting controls could be taken out of a vault, letting players obtain free items every time a vault was opened. * Fixed an issue where sorting mixed stored items together with the sorting controls. * Fixed an issue where an administrator editing another player's vault saved the changes to the wrong player. * Fixed an issue where clearing a vault did not always save. * Fixed an issue where vaults stayed in memory after a player disconnected and were never saved when a player left. * Fixed an issue where dragging items inside a vault and other item movements were not detected, so changes could be lost. * Fixed an issue where the "all vaults" permission was ignored. * Fixed an issue where an invalid vault size could break the plugin; the size is now checked and a safe value is used. * Fixed an issue where the settings lost all of their comments whenever the plugin started. * Fixed an issue where vault numbers below one were accepted. * Fixed an issue where a missing player name could appear in vault titles, and where offline vaults were loaded with unnecessary lookups. * Fixed an issue where the same vault could show a different title in the menu than when it was opened. * Fixed an issue where sorting by name and sorting by type did the same thing. Sorting by type now groups identical item types together. * Fixed an issue where sound names from the settings were applied unreliably. * Fixed an issue where an automatic save interval of zero was not documented. * Fixed an issue where viewing the same vault twice, or while an administrator edited it, could lose changes. * Fixed an issue where the reported plugin version was inconsistent. * Removed an unused, empty data file that served no purpose.
    74 downloads
  2. 1.0.2PlayerVaults999 1.0.2Nov 6, 2025
    New Features
    Admin Command:* Added /pv admin <player> <vault> command to allow administrators to open and edit any player's vault. Requires the playervaults.admin permission. Clear Command:* Added /pv clear <vault> command to allow players to clear the contents of one of their vaults. Requires the playervaults.clear permission. List Command:* Added /pv list command to list all the vaults a player has access to. Requires the playervaults.list permission. Search Command:* Added /pv search <item> command to search through all of a player's vaults for a specific item. Requires the playervaults.search permission. Configurable Vault Title:* The vault title is now configurable in the config.yml file. You can use color codes and the placeholders %player% and %vault%. Sound on Open:* Added a configuration option to play a sound when a player opens a vault. Vault Sorting:* Added buttons to the vault inventory to sort items by name, type, and quantity.
    466 downloads
  3. 1.0.1PlayerVaults999 1.0.1Sep 24, 2025
    Added Features Configurable Vault Limits: Introduced config.yml with max_vaults (default: 10). Admins can now easily increase/decrease the maximum number of vaults per player. Permissions (playervaults.use.<number>) scale automatically to the new max—grant additional perms as needed. Periodic Auto-Saving: New save_interval config (default: 300 seconds / 5 minutes) triggers automatic saves of modified vaults. Protects against data loss from crashes or unexpected shutdowns without relying solely on inventory close or plugin disable. Smart Preloading on Startup: Always preloads vaults for online players to ensure instant access. Optional preloading for offline players via preload_offline_vaults config (default: false). This prevents memory overload on large servers while keeping lazy-loading for rarely accessed offline data. Logs preload stats (e.g., "Preloaded vaults for X players") for easy monitoring. Dirty Flag System for Efficient Saves: Tracks vault modifications per player/vault using a lightweight boolean map. Only changed ("dirty") vaults are saved during periodic saves, on close, or shutdown—reducing unnecessary disk I/O and TPS impact. Interaction Detection: Added InventoryClickEvent listener to mark vaults as "dirty" on any click (item placement, removal, etc.). Ensures saves only occur after real changes, optimizing for idle sessions. Bug Fixes ItemStack Persistence & Deserialization: Original loadVault used getList with direct cast to ItemStack[], which failed silently on YAML-stored maps (resulting in empty vaults after restarts). Fixed: Now loads raw List<?> and explicitly deserializes each slot using ItemStack.deserialize(Map) for YAML maps, handles direct ItemStack objects, and treats invalid/null entries as empty slots. Preserves nulls (empty slots) correctly. Original saveVault used List.of(vault.getContents()), creating a List<ItemStack[]> instead of List<ItemStack>, breaking deserialization. Fixed: Switched to Arrays.asList(vault.getContents()) for proper List<ItemStack> serialization. Bukkit's ConfigurationSerializable now handles enchants, NBT, amounts, and custom data reliably across restarts. Vault Number Validation: Enforced max_vaults limit in preloading, creation, and saving—skips out-of-range vaults to prevent config bloat or errors. Original hardcoded 10 is now flexible. UUID Handling in Preload: Original had no preloading; new version safely parses UUID strings from Vaults.yml keys, skips invalid ones, and avoids double-loading online players. Save on Shutdown: Original saved all vaults; now only saves dirty ones, but ensures all modified data is persisted. Clears maps properly to free memory. Error Resilience: Added try-catch for UUID/vault number parsing in preload and events. Logs warnings for invalid config entries (e.g., bad vault numbers) without crashing. Improvements Performance & Memory Optimization: Lazy-loading remains for unloaded vaults (fallback in getVault), but preloading is now targeted (online-first, optional offline) to avoid loading thousands of unused inventories on startup. Dirty flags eliminate redundant saves: Unchanged vaults (e.g., opened but untouched) skip saving on close/periodic, reducing file writes and lag on busy servers. Periodic saves are scoped to dirty vaults only, minimizing TPS dips (e.g., no full scans of clean data every 5 minutes). Synchronous saves (main thread) for YAML thread-safety, but low-frequency and efficient—ideal for most servers. (Async could be added later if needed.) Code Structure & Maintainability: Refactored into modular methods: preloadPlayerVaults(UUID) for reusable loading, saveDirtyVaults() for targeted saves. Consistent UUID usage (instead of mixing Player/OfflinePlayer) for offline compatibility. Auto-generates config.yml with defaults via saveDefaultConfig() and explicit sets—reloadable with /reload (restart recommended for max_vaults changes). Enhanced logging: Startup info, preload counts, save errors, and invalid data warnings for easier debugging. Security & Usability: Vault titles and permissions unchanged, but now dynamically respect max_vaults in command feedback (e.g., "between 1 and X"). Handles edge cases like list size mismatches in loading (extras ignored, shorts fill with empties). Full persistence guarantee: Data survives startups, shutdowns, restarts, and crashes (via periodic saves). Players' items remain until manually removed. Event Handling: InventoryCloseEvent: Now checks dirty flag before saving—skips if clean. New InventoryClickEvent: Quick title check to mark dirty without content diffs (lightweight and accurate). Configuration Changes New config.yml (auto-created with defaults): max_vaults: 10 save_interval: 300 # Seconds between auto-saves (0 to disable) preload_offline_vaults: false # true to load all offline players' vaults on startup
    77 downloads
  4. 1.0.0PlayerVaults999 1.0.0Aug 20, 2025
    the first release
    83 downloads

Similar projects

Plugin →