PrivateChestPlus v2.3 — Changelog
PostgreSQL Support & Automatic Driver Management
New Features
Full PostgreSQL Support
- PostgreSQL can now be used as a storage backend alongside MySQL and YAML.
- Configuration in config.yml under the postgresql: section with the same parameters as MySQL (host, port, database, username, password, ssl, pool).
- To enable it, set storage.type to postgresql (also accepts postgres or pgsql).
Automatic JDBC Driver Management
- The plugin no longer requires the MySQL or PostgreSQL driver to be pre-installed on the server.
- When starting with storage.type: mysql or postgresql, the plugin will:
- Check if the driver is available on the server classpath.
- If not found, look in plugins/PrivateChestPlus/libs/.
- If not present, automatically download it from Maven Central (with a fallback URL).
- Attempt to load it dynamically without requiring a restart.
- If dynamic loading fails, inform that a restart is needed and temporarily fall back to YAML.
- Downloaded drivers are stored in plugins/PrivateChestPlus/libs/ and reused on future startups.
- The plugin size remains lightweight (~400KB) by not bundling drivers in the jar.
Safe Data Migration Between Backends
- Built-in migration system to move data between YAML, MySQL, and PostgreSQL.
- Migration verifies data integrity before confirming.
- Original data is never deleted during migration.
Configuration Changes
New in config.yml
YAML:# Options: yaml, mysql, postgresql storage: type: yaml # New PostgreSQL section postgresql: host: localhost port: 5432 database: privatechestplus username: postgres password: yourpassword table: protected_chests ssl: false audit-table: privatechest_audit pool: min-size: 2 max-size: 10 connection-timeout: 30000 validation-timeout: 5000
The mysql: section remains unchanged and continues to work exactly as before.
Technical Fixes
- Schema initialization: Table creation is now synchronous, eliminating a potential race condition where the plugin could attempt to read data before tables existed (affected first startup with an empty database).
- Improved connection pool: Internally refactored to be generic and reusable between MySQL and PostgreSQL, with the same performance parameters.
Backward Compatibility
- Users with storage.type: yaml → No changes, works exactly the same.
- Users with storage.type: mysql → No changes, works exactly the same.
- No action required when upgrading from v2.2 to v2.3.
- The libs/ folder is only created automatically if a driver needs to be downloaded.
Notes for Server Administrators
- If your server already includes the MySQL driver (most Spigot/Paper builds do), nothing will be downloaded.
- For PostgreSQL, the driver will be automatically downloaded on first use (~1MB).
- If your server blocks outbound connections, you can manually download the driver and place it in plugins/PrivateChestPlus/libs/.
- Migration between backends is one-directional per execution. To migrate from MySQL to PostgreSQL, run the migration and then change storage.type in config.
PrivateChestPlus v2.2 - "Enhanced GUIs and Persistent Notifications"
Overview
This version introduces a robust, persistent notification system and significant enhancements to the management GUI, making it easier for players to keep track of their containers and recent activity.
Major Improvements
1. Persistent Notification System
- Persistent Storage: Notifications are now saved to notifications.yml, ensuring they survive server restarts.
- Aggregation System: Similar alerts (e.g., multiple failed access attempts by the same player) are now grouped together to prevent chat spam.
- Notification History GUI: Access your recent alerts via /mychests notifications (or /history, /alerts).
- Interactivity: Mark notifications as read, delete specific entries, or clear your entire history directly from the GUI.
2. Enhanced MyChests GUI
- New Filtering Options: Filter containers by World, or by specific type (Chests, Barrels, Shulker Boxes).
- Advanced Sorting: Sort your container list by:
- Distance: Find the nearest containers to your current location.
- Newest: See your most recently protected containers first.
- Alphabetical: Organize by custom name.
- New Navigation Buttons: Easy-to-use toggle buttons for filters and sorting integrated into the navigation bar.
3. Cross-Platform & Stability
- Bedrock Compatibility: Adjusted UI elements for better visibility and interaction for Geyser/Floodgate players.
- Bug Fixes:
- Resolved a compilation error related to prefix handling in MessageManager.
- Fixed a duplicate shutdown registration that could cause errors on reload.
Update Process
- Stop your server.
- Replace the old jar with the new PrivateChestPlus-2.2.jar.
- No configuration reset required. New settings and files (notifications.yml) will be created automatically.
- Restart your server.
[!NOTE] If you wish to customize the notification history limit, you can add notifications.max-history: 50 to your config.yml.
Koyere Dev - "Advanced Protection for all Platforms"
PrivateChestPlus v2.1 – Sharing & Quick Access Update
Highlights
Advanced Sharing 2.0: /chestshare now understands durations, granular access levels, radius operations, and offline sharing rules driven by overrides.
Teleportation Queue & Safety: smarter 3×3 validation, hostile mob checks, chunk queues with player feedback, and configurable cooldown/distance restrictions per world/group.
Bookmarks & Quick Access: /mychests bookmark toggles favorites instantly, a dedicated GUI offers rename/teleport/remove actions, and placeholders expose bookmark stats.
Flexible Overrides: overrides section in config.yml allows world/group-specific settings for sharing, bookmarks, and teleportation without copy‑pasting whole configs.
Public API & PlaceholderAPI: new methods for bookmarks and sharing limits, plus the official PlaceholderAPI expansion bundled out of the box.
Key Features
Advanced Sharing Enhancements
Duration syntax (30m, 2h, 1d12h) and access levels (view_only, withdraw, full).
Radius sharing command (/chestshare radius <range> <player> [...]) with limit awareness and integration checks.
GUI improvements: cycle levels, edit expirations, revoke entries, and live validation of share caps.
Teleportation Overhaul
Safe-location scan, surface adjustment, and hostile-mob detection before teleport completes.
Chunk queue with auto-load retries, configurable retry interval, and success/failure messaging.
Per-world/group overrides for enabling teleportation, cooldowns, maximum distance, and same-world enforcement.
Bookmarks & Quick Access
/mychests bookmark <id> [name] to toggle or rename bookmarks, /mychests bookmarks GUI for teleport/rename/remove.
Limits controlled by permissions and overrides; entries persist in YAML/MySQL with async saves.
PlaceholderAPI support: %privatechestplus_bookmarks%, %privatechestplus_bookmark_limit%, %privatechestplus_bookmarks_free%.
Configurable Overrides
New ConfigOverrideManager merges base config, world overrides, and permission-based groups (VIP/staff, etc.).
Supported keys: teleportation.(enabled|max-distance|cooldown|same-world-only), sharing.(max-shared-players|allow-offline-sharing|cross-platform-enabled), bookmarks.default-limit.
/privatechest reload re-parses overrides, refreshes managers, clears teleport cooldowns, and reprograms the queue safely.
Upgrade Notes
Replace existing JAR with PrivateChestPlus-v2.1.jar.
Merge the new bookmarks, teleportation.queue, and overrides sections in config.yml (existing keys remain compatible).
Review messages.yml for the new bookmark/teleport strings if customized locally.
Reload the plugin or restart the server; verify overrides with /chestshare, /mychests bookmark, and teleportation tests.
Important: The plugin only copies config.yml/messages.yml when they are missing. Preserve your customizations and manually merge the new sections/keys instead of deleting the files.
Enjoy the improved sharing workflows, safer teleports, and configurable overrides introduced in PrivateChestPlus v2.1!
PrivateChestPlus v2.0 - Major Update
New Features
Area Protection System
Protect multiple containers at once in a specified radius!
New Commands:
How it works:
- /lockarea <radius> - Find and protect all containers in an area
- /lockarea confirm - Confirm area protection after seeing the preview
- /lockarea cancel - Cancel pending area protection
- Stand where you want to protect containers
- Use /lockarea 10 to scan 10 blocks around you
- You'll see a confirmation with cost and container count
- Type /lockarea confirm to protect all containers at once
Type-Specific Protection
Protect only specific types of containers in an area!
New Commands:
Supported Types:
- /lockall <type> <radius> - Protect specific container types only
- /lockall confirm/cancel - Confirm or cancel operation
Example: /lockall chest 15 protects all chests within 15 blocks
- chest, barrel, shulker_box, hopper
- dispenser, dropper, furnace, blast_furnace
- smoker, brewing_stand
Smart Protection System
Intelligent auto-protection offers when you place many containers!
How it works:
Commands:
- Place 5+ containers quickly and get an automatic offer
- Smart detection prevents spam with cooldown system
- Accept with /smartprotect accept or decline with /smartprotect decline
- /smartprotect accept - Accept protection offer
- /smartprotect decline - Decline protection offer
- /smartprotect status - Check current offer status
Dynamic Container Limits
Your container limits now adapt based on various factors!
Dynamic Features:
Smart Notifications:
- Weekend Bonus: Higher limits on weekends
- Time-Based: Bonus limits during evening hours
- Playtime Scaling: More limits as you play longer
- World-Based: Different limits per world/dimension
- Special Events: Server events can boost limits
- Get warned when reaching 80%, 90%, 95% of your limit
- See your dynamic limits change in real-time
Performance Improvements
Intelligent Cache System
- Memory-Aware: Automatically adjusts based on server memory
- Smart Cleanup: Removes unused data automatically
- Better Performance: Faster container checks and operations
Automatic Cleanup
- Orphan Removal: Automatically removes protections from deleted containers
- Chunk-Based: Cleans up containers in unloaded chunks after 7 days
- Background Operation: Runs every 30 minutes without lag
New Permissions
Area Protection
Type Protection
- privatechest.lockarea - Allow area protection
- privatechest.lockarea.radius.5 - Up to 5 block radius
- privatechest.lockarea.radius.10 - Up to 10 block radius
- privatechest.lockarea.radius.25 - Up to 25 block radius
- privatechest.lockarea.radius.50 - Up to 50 block radius (admin)
Smart Protection
- privatechest.lockall - Allow type-specific protection
- privatechest.lockall.radius.* - Same radius permissions as above
Dynamic Limits
- privatechest.smart-protection - Receive smart protection offers
- privatechest.smart-protection.bypass - Bypass cooldowns (admin)
- privatechest.dynamic-limits - Access to dynamic limit system
- privatechest.dynamic-limits.bonus - Receive bonus multipliers
- privatechest.dynamic-limits.multiplier.weekend - Weekend bonuses
- privatechest.dynamic-limits.multiplier.time - Time-based bonuses
- privatechest.dynamic-limits.playtime - Playtime-based scaling
Configuration Updates
New Config Sections
YAML:# Area Protection Settings area-protection: enabled: true default-max-radius: 10 max-containers-per-operation: 100 # Smart Protection Settings smart-protection: enabled: true detection-window-seconds: 60 container-threshold: 5 cooldown-seconds: 300 # Dynamic Limits dynamic-limits: enabled: true time-modifiers: weekend: multiplier: 1.5 container-types: ["chest", "barrel", "shulker_box"] # Performance Settings performance: intelligent-cache: enabled: true memory-threshold: 0.8 auto-cleanup: enabled: true interval-minutes: 30
Compatibility
- Minecraft: 1.16.5 - 1.21.8+
- Java: 8+
- Cross-Platform: Full Java & Bedrock support
- Backward Compatible: All existing features preserved
What This Means for You
For Regular Players:
For Server Owners:
- Faster Setup: Protect many containers at once instead of one by one
- Smart Help: Get automatic protection offers when building
- Better Limits: Your limits adapt to how you play
- Better Performance: Smoother experience, less lag
- Reduced Support: Less "I lost my items" tickets
- Better Performance: Intelligent caching and cleanup
- Flexible Configuration: Fine-tune everything to your server's needs
- Happy Players: More convenient protection systems
Download: Available here!
Support: Discord or GitHub Issues
API: Full developer API available for other plugins
This update maintains 100% compatibility with all existing protections, shares, and configurations.
PrivateChestPlus v1.9 - Changelog
New Features
Container Renaming System
Advanced Audit Logging
- New Command: /renamecontainer <name> - Assign custom names to protected containers
- GUI Integration: Rename button now functional in container actions menu
- Cross-Platform Support: Works seamlessly with both Java and Bedrock players
- Name Validation: Configurable length limits, character filtering, and content moderation
- Economy Integration: Optional costs for renaming and removing names
Technical Improvements
- Detailed Access Logs: Records UUID, IP address, platform, and access results
- Flexible Storage: Choose between YAML files or MySQL database
- Automatic Cleanup: Configurable retention period for log entries
- Security Monitoring: Track both successful and failed container access attempts
Database Enhancements
GUI Enhancements
- New Tables: container_names and audit_logs with proper indexing
- Automatic Migration: Seamless upgrade from previous versions
- Performance Optimized: Efficient batch operations and connection pooling
- Custom Name Display: Container names now show in MyChests GUI
- Enhanced Actions Menu: Updated rename functionality with platform-specific interfaces
- Improved UX: Better visual feedback for naming operations
Configuration Updates
New Config Options
YAML:# Container naming settings container-names: max-length: 32 allow-colors: true blocked-words: ["admin", "moderator"]
YAML:# Audit logging settings audit-logging: enabled: false retention-days: 30 storage-type: file
New Economy Costs
Developer Features
- cost-to-rename: Charge for renaming containers
- cost-to-remove-name: Optional cost for removing custom names
New API Methods
New Permissions
- ContainerNameManager: Full container naming management
- AuditLogger: Comprehensive access logging system
- Enhanced cross-platform utilities
Compatibility
- privatechest.rename: Allow container renaming (default: true)
Commands Summary
- Fully Backward Compatible: All existing features unchanged
- Config Migration: Automatic addition of new settings
- Database Migration: Seamless upgrade for MySQL users
- Plugin Integration: All existing hooks (WorldGuard, Lands, Vault) preserved
Command Description /renamecontainer <name> Set custom container name /renamecontainer remove Remove custom name
Requirements: Java 8+, Spigot/Paper 1.16.5+
Optional Dependencies: Vault (economy), WorldGuard, Lands, Floodgate/Geyser
PrivateChest Plus v1.8.1 - Bug Fixes & Improvements
Bug Fixes
Fixed Ghost Container Icons in GUI
- Issue: Containers deleted without being unprotected would remain visible in /mychests GUI
- Solution: Added automatic validation and cleanup of invalid containers
- Prevents teleportation to non-existent locations
- Automatically removes orphaned protections from database
Fixed Share Container GUI Issues
- Issue: Chat input for sharing containers was not working properly
- Solution: Enhanced chat input validation and state management
- Improved Bedrock Edition GUI with better player filtering
- Fixed inventory close event handling for proper cleanup
Enhanced Hopper Protection
- Verified and confirmed anti-hopper protection is working correctly
- System prevents hoppers from extracting items from protected containers
- Blocks placement of hoppers near protected containers
New Features
Auto-Protection System (Optional)
- New config option: protection.auto-protect-on-place: false (disabled by default)
- Automatically protects containers when placed by players
- Requires privatechest.auto-protect permission (enabled by default)
- Respects container limits and integration permissions
- Includes new success message: auto-protect-success
Improved Cache Management
- Enhanced cache cleanup system prevents memory leaks
- Automatic cleanup of shared access data when containers are unprotected
- Better performance with large numbers of protected containers
PrivateChestPlus v1.8 - Bug Fixes & Compatibility Update
Release Date: [2025-06]
Bug Fixes
Container Sharing
Security Improvements
- Fixed
/chestsharecommand not working properly- Resolved issue where sharing containers with other players would fail silently
- Improved error handling and validation for player names
- Enhanced cross-platform compatibility for Java and Bedrock players
New Integrations
- Fixed hopper bypass vulnerability
- Resolved critical security issue where hoppers could extract items from protected containers
- Enhanced
InventoryMoveItemEventhandling to prevent all automated item extraction- Added protection against dropper and dispenser bypass attempts
Towns & Nations Support
- Added basic compatibility with Towns & Nations plugin
- Integration respects town/nation boundaries for container protection
- Configurable settings for protection rules within claims
- Automatic detection and setup when Towns & Nations is present
Technical Improvements
- Enhanced security validation for automated item movement
- Improved integration detection and initialization
- Better error logging for troubleshooting
- Performance optimizations for container access checks
PrivateChestPlus v1.7
Advanced Container Protection & Management
What's New in v1.7
Granular Container Limits
• Permission-based limits for each container type
• Example: privatechest.limit.chest.10 allows 10 chests
• Unlimited access: privatechest.limit.{type}.unlimited
• Real-time validation when protecting containers
• New /containerlimits command for players and admins
Enhanced Teleportation System
• Smart safety checks - prevents teleporting into lava, void, or unsafe areas
• Configurable restrictions: distance limits, world restrictions, cooldowns
• Direct teleport: /mychests tp <id> command
• Full integration with existing economy system
• Admin bypass permissions for unrestricted access
Configuration Enhancements
• New container-limits section in config.yml
• New teleportation section with safety and restriction options
• Backward compatible - existing configurations remain functional
️ Key Features
Container Limits System:
• Set different limits per container type (chests, barrels, shulkers, etc.)
• Permission-based system integrates with existing rank plugins
• Cache system for optimal performance
• Detailed limit information in GUI tooltips
Advanced Teleportation:
• Safety validation prevents unsafe teleportation
• Configurable distance and world restrictions
• Cooldown system with bypass permissions
• Economic integration for teleportation costs
New Commands:
• /containerlimits - View your container limits
• /containerlimits check <player> - Admin: Check player limits
• /mychests tp <id> - Direct teleportation to containers
Permission Examples
JavaScript:# Container Limits privatechest.limit.chest.5 # Allow 5 chests privatechest.limit.barrel.3 # Allow 3 barrels privatechest.limit.shulker_box.2 # Allow 2 shulker boxes privatechest.limit.chest.unlimited # Unlimited chests
JavaScript:# Teleportation privatechest.teleport # Basic teleportation privatechest.teleport.bypass # Bypass all restrictions privatechest.teleport.crossworld # Teleport between worlds
Configuration Sample
YAML:# Container Limits container-limits: enabled: true default-limits: chest: 5 barrel: 3 shulker_box: 2
YAML:# Teleportation teleportation: enabled: true restrictions: max-distance: 1000 same-world-only: false cooldown: 30
Important Notes
• Fully backward compatible - no breaking changes
• Container limits are disabled by default - enable in config.yml
• Teleportation system respects existing economy and permission settings
• All features work with cross-platform support (Java + Bedrock)
Download PrivateChestPlus v1.7
Compatible with Spigot/Paper 1.16.5 - 1.21.x
