ChestProtect

Prevent ppl from breaking / opening your chests

1,36k

ChestProtect

Chest Protect Description

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:

ADS