ChestProtect
Prevent ppl from breaking / opening your chests
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
ChestProtect

Text version
A comprehensive Minecraft Bukkit plugin that automatically protects containers with friend lists, visual indicators, ownership transfer, and automatic cleanup for inactive players.
🔒 Core Protection Features
Automatic Container Protection
- SQLite Database: All containers are automatically protected when placed by players - SQLite Database: Protects 30+ container types including: - SQLite Database: Chests, Trapped Chests, Barrels, Ender Chests - SQLite Database: All 17 colors (configurable) - SQLite Database: Furnaces, Blast Furnaces, Smokers, Brewing Stands - SQLite Database: Dispensers, Droppers, Hoppers - SQLite Database: Beacons, Anvils, Enchanting Tables, Lecterns, Jukeboxes, and more - SQLite Database: Automatically protects both halves of double chests - SQLite Database: Persistent protection storage with efficient indexing
Access Control System
- Break Protection: Only the player who placed the container can access it by default - Break Protection: Configurable admin override with permission `chestprotect.admin.bypass` - Break Protection: Prevents unauthorized players from breaking protected containers
👥 Friend System
Global Friend Lists
- Clear List: `/chestprotect friend add <player>` - Add players to your friend list - Clear List: `/chestprotect friend remove <player>` - Remove players from your list - Clear List: `/chestprotect friend list` - See all your friends - Clear List: `/chestprotect friend clear` - Remove all friends at once
Friend Access Benefits
- Database Persistence: Friends can access ALL your protected containers - Database Persistence: Add friends even when they're not online - Database Persistence: Friend lists are cached for fast access checking - Database Persistence: Friend relationships survive server restarts
🎨 Visual Indicators
Particle Effects System
- Configurable: See protection status with particle effects - Configurable: - 🟢 Configurable (Happy Villager) - Containers you own - 🔵 Configurable (Enchant) - Containers your friends shared with you - 🔴 Configurable (Angry Villager) - Protected containers you can't access - Configurable: Only shows particles within 10 blocks of players - Configurable: Updates every 2 seconds to minimize lag - Configurable: Enable/disable visual indicators in config
🔄 Ownership Transfer
Container Transfer System
- Validation: `/chestprotect transfer <player>` - Transfer ownership to another player - Validation: Simply look at the container you want to transfer (no coordinates needed) - Validation: Ownership changes immediately with database update - Validation: Both players receive confirmation messages - Validation: Ensures you own the container and target player exists
🧹 Automatic Cleanup
Inactive Player Management
- World Cleanup: Records when containers were last opened - World Cleanup: Removes protections from containers unused for 30+ days (configurable) - World Cleanup: Runs automatically every 24 hours - World Cleanup: Admins can trigger cleanup with `/chestprotect cleanup` - World Cleanup: Removes containers from deleted worlds
⚙️ Advanced Configuration
Hopper Control
- All Container Types: Choose whether hoppers can extract/insert items from protected containers - All Container Types: When disabled, hoppers cannot interact with protected containers at all - All Container Types: Works with chests, furnaces, dispensers, and all other containers
Customizable Messages
- Admin Notifications: Full `&` color code support in all messages - Admin Notifications: `{container}` placeholder shows the actual container type - Admin Notifications: All messages configurable in config.yml - Admin Notifications: Separate messages for admin bypass actions
Protection Settings
- Placement Notifications: Enable/disable admin override permissions - Placement Notifications: Auto-protect both halves of double chests - Placement Notifications: Enable/disable shulker box protection - Placement Notifications: Configure whether players see protection messages
📊 Information & Statistics
Player Information
- Database Queries: `/chestprotect info` shows: - Number of containers you have protected - Number of friends in your list - Auto-cleanup expiry setting - Database Queries: Real-time statistics from the database
🛡️ Security Features
Database Security
- Index Optimization: Lightweight, reliable database storage - Index Optimization: Prevents SQL injection attacks - Index Optimization: Atomic operations for data consistency - Index Optimization: Fast lookups even with thousands of containers
Permission System
- Permission Inheritance: Separate permissions for each feature - Permission Inheritance: Basic features available to all players by default - Permission Inheritance: Admin-only commands properly protected - Permission Inheritance: Logical permission hierarchy
🚀 Performance Features
Optimization Systems
- Asynchronous Tasks: Friend lists cached in memory for instant access - Asynchronous Tasks: Indexed database with optimized SQL - Asynchronous Tasks: Visual indicators limited to nearby containers only - Asynchronous Tasks: Cleanup operations don't impact server performance
Resource Management
- Automatic Cleanup: Minimal memory footprint - Automatic Cleanup: Only caches frequently accessed data - Automatic Cleanup: Background tasks prevent database bloat
💻 Commands Reference
| Command | Description | Permission | |---------|-------------|------------| | `/chestprotect` | Show help menu | `chestprotect.use` | | `/chestprotect friend add <player>` | Add friend | `chestprotect.friend` | | `/chestprotect friend remove <player>` | Remove friend | `chestprotect.friend` | | `/chestprotect friend list` | List friends | `chestprotect.friend` | | `/chestprotect friend clear` | Clear friends | `chestprotect.friend` | | `/chestprotect transfer <player>` | Transfer ownership | `chestprotect.transfer` | | `/chestprotect info` | View statistics | `chestprotect.info` | | `/chestprotect cleanup` | Clean expired containers | `chestprotect.admin.cleanup` | | `/chestprotect reload` | Reload config | `chestprotect.admin.reload` |
Aliases: `/cp`, `/protect`, `/lockchest` work for `/chestprotect`
🔧 Technical Requirements
- Java Version: 1.21+ (API version 1.21) - Java Version: Bukkit, Spigot, Paper - Java Version: SQLite JDBC driver (usually included) - Java Version: Java 17+ (matches Minecraft 1.21 requirements)
📋 Installation
1. Download ChestProtect.jar 2. Place in your server's `/plugins/` folder 3. Restart server to generate default configuration 4. Customize settings in `/plugins/ChestProtect/config.yml` 5. Reload config with `/chestprotect reload`
✨ Key Benefits
- Reliable: Works immediately with sensible defaults - Reliable: Simple commands and clear feedback messages - Reliable: Comprehensive admin tools and controls - Reliable: Optimized for servers with many players - Reliable: Advanced functionality without complexity - Reliable: Robust database storage and error handling
---
This plugin provides exactly what's implemented - no more, no less. Every feature described here is fully functional and tested.
Advertisement:
