EnderChestVault
Tired of vanilla ender chest get upto 6 rows and total of 52 slots on enderchest.......
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.
EnderChestVault
****** EnderChestVault - Complete Plugin Documentation
---
📋 Overview
EnderChestVault is a premium-quality, open-source Minecraft plugin that completely replaces and enhances the vanilla Ender Chest system with a powerful, customizable, and persistent storage solution.
| Property | Value | |----------|-------| | Java Version | EnderChestVault | | Java Version | 1.0.0 | | Java Version | 1.21.1 - 1.21.11 | | Java Version | Paper, Spigot, Purpur | | Java Version | Java 21+ |
---
🎯 What Does This Plugin Do?
EnderChestVault intercepts vanilla Ender Chest interactions and replaces them with a custom GUI-based vault system that offers:
- Pagination based on player permissions - Pagination for data persistence - Pagination via MySQL - Pagination for admins - Pagination for vaults larger than 54 slots
``` ┌─────────────────────────────────────────────────────────────┐ │ VANILLA ENDER CHEST → ENDERCHESTVAULT │ ├─────────────────────────────────────────────────────────────┤ │ • Fixed 27 slots → • 27 to 54 slots │ │ • No permission control → • Permission-based sizes │ │ • Local storage only → • PDC/SQLite/MySQL │ │ • No admin access → • View offline vaults │ └─────────────────────────────────────────────────────────────┘ ```
---
✨ Key Features
1. 🗄️ Multiple Storage Backends
| Storage Type | Description | Best For | |--------------|-------------|----------| | MySQL | PersistentDataContainer (stored on player) | Small servers, simplicity | | MySQL | Local database file | Medium servers, single instance | | MySQL | Remote database server | Networks, BungeeCord/Velocity |
2. 📦 Variable Vault Sizes
``` Permission Slots Rows ───────────────────────────── ecvault.size.9 9 1 ecvault.size.18 18 2 ecvault.size.27 27 3 ecvault.size.36 36 4 1 ecvault.size.45 45 5 ecvault.size.54 54 6 ```
3. 📄 Ender Vault
Vaults maximum 54 slots :
``` ┌─────────────────────────────────────────────────────┐ │ Ender Vault │ ├─────────────────────────────────────────────────────┤ │ [Item] [Item] [Item] [Item] [Item] [Item] [Item] │ │ [Item] [Item] [Item] [Item] [Item] [Item] [Item] │ │ [Item] [Item] [Item] [Item] [Item] [Item] [Item] │ │ [Item] [Item] [Item] [Item] [Item] [Item] [Item] │ │ [Item] [Item] [Item] [Item] [Item] [Item] [Item] │ │ [Item] [Item] [Item] [Item] [Item] [Item] [Item] │ ├─────────────────────────────────────────────────────┤
```
4. 🌐 Online/Offline Server Support
```yaml config.yml server: use-uuids: true Online mode (premium) use-uuids: false Offline mode (cracked) ```
5. 👁️ Admin Vault Access
Administrators can view and modify any player's vault, even when offline:
``` /ec open Notch → Opens Notch's vault (even if offline) /ec open Steve → Opens Steve's vault for inspection ```
6. 🔄 Async Database Operations
All database reads/writes are asynchronous to prevent server lag:
```java // Non-blocking vault loading CompletableFuture<VaultData> loadVault(Player player);
// Non-blocking vault saving CompletableFuture<Void> saveVault(Player player, VaultData data); ```
7. 🎨 Fully Customizable GUI
```yaml gui: title: "&5&lEnder Vault" admin-title: "&c&l{player}'s Vault" sounds: open: sound: "BLOCK_ENDER_CHEST_OPEN" page-turn: sound: "ITEM_BOOK_PAGE_TURN" ```
---
🎮 Commands
| Command | Description | Permission | |---------|-------------|------------| | `/ec` | Open your own vault | `ecvault.use` | | `/enderchest` | Alias for /ec | `ecvault.use` | | `/ec open <player>` | Open another player's vault | `ecvault.admin` | | `/ec reload` | Reload configuration | `ecvault.admin.reload` |
---
🔐 Permissions
Player Permissions
| Permission | Description | Default | |------------|-------------|---------| | `ecvault.use` | Use the Ender Vault | `true` | | `ecvault.size.27` | 27 slot vault (3 rows) | `true` | | `ecvault.size.54` | 54 slot vault (6 rows) | `false` |
Admin Permissions
| Permission | Description | Default | |------------|-------------|---------| | `ecvault.admin` | Open other players' vaults | `op` | | `ecvault.admin.reload` | Reload plugin config | `op` | | `ecvault.admin.bypass` | Bypass restrictions | `op` | | `ecvault.*` | All permissions | `op` |
---
🎯 Use Cases
1. 🏠 Survival Servers
Problem: Players want more storage, but vanilla ender chest is limited.
Solution: Grant donors/ranks larger vault sizes as perks.
``` Default Player → 27 slots (free) VIP Rank → 54 slots ```
2. 🌐 Server Networks (BungeeCord/Velocity)
Problem: Ender chest contents don't sync across servers.
Solution: Use MySQL backend for cross-server vault synchronization.
``` ┌─────────┐ ┌─────────┐ ┌─────────┐ │ Lobby │ │ Survival│ │ Skyblock│ │ Server │────▶│ Server │────▶│ Server │ └────┬────┘ └────┬────┘ └────┬────┘ │ │ │ └───────────────┼───────────────┘ ▼ ┌─────────────┐ │ MySQL │ │ Database │ └─────────────┘ ```
3. 🛡️ Admin Moderation
Problem: Need to check if a player is storing illegal items.
Solution: Use `/ec open <player>` to inspect any vault.
``` /ec open SuspiciousPlayer → Opens their vault for inspection → Works even if player is offline → Can remove contraband items ```
4. 💰 Economy Servers
Problem: Want to sell storage upgrades for in-game currency.
Solution: Integrate with permission plugins + economy.
``` /buy vault-upgrade 54 → Grants ecvault.size.54
```
5. 🎮Supports all Servers
Problem: UUID-based storage fails on offline servers.
Solution: Toggle to name-based identification.
```yaml server: use-uuids: false Use player names instead ```
---
📊 Comparison: Vanilla vs EnderChestVault
| Feature | Vanilla Ender Chest | EnderChestVault | |---------|---------------------|-----------------| | Storage Size | Fixed 27 slots | 27-54 slots | | Permission Control | ❌ None | ✅ Full control | | Database Options | World file only | PDC/SQLite/MySQL | | Cross-Server Sync | ❌ No | ✅ Via MySQL | | Admin Inspection | ❌ No | ✅ Full access | | Offline Access | ❌ No | ✅ Yes | | Pagination | ❌ No | ✅ Automatic | | Custom GUI | ❌ No | ✅ Fully customizable | | Async Operations | ❌ No | ✅ Yes | | Sound Effects | ❌ Basic | ✅ Customizable |
---
🏗️ Technical Architecture
``` ┌──────────────────────────────────────────────────────────────────┐ │ EnderChestVault │ ├──────────────────────────────────────────────────────────────────┤ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │ Command │ │ Listener │ │ VaultManager │ │ │ │ Handler │ │ Layer │ │ (Core Logic + Cache) │ │ │ └──────┬──────┘ └──────┬──────┘ └────────────┬────────────┘ │ │ │ │ │ │ │ └────────────────┼──────────────────────┘ │ │ ▼ │ │ ┌───────────────────────┐ │ │ │ StorageManager │ ← Interface │ │ │ (Abstraction) │ │ │ └───────────┬───────────┘ │ │ │ │ │ ┌────────────────┼────────────────┐ │ │ ▼ ▼ ▼ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ PDC │ │ SQLite │ │ MySQL │ │ │ │ Storage │ │ Storage │ │ Storage │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ │ │ ▼ ▼ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ vaults.db │ │ Remote DB │ │ │ └─────────────┘ └─────────────┘ │ └──────────────────────────────────────────────────────────────────┘ ```
---
📈 Performance Characteristics
| Metric | Value | |--------|-------| | Memory Footprint | ~5-15 MB (depending on cache) | | Vault Load Time | <50ms (cached), <200ms (database) | | Save Operation | Async, non-blocking | | Max Concurrent Users | Unlimited (connection pool limited) | | Cache Hit Rate | >95% for active players |
Connection Pool Settings (MySQL)
```yaml mysql: pool: maximum-pool-size: 10 Max database connections minimum-idle: 2 Keep 2 connections ready connection-timeout: 5000 5 second timeout ```
---
🔧 Installation Guide
Step 1: Download & Install
```bash Place JAR in plugins folder cp EnderChestVault-1.0.0.jar /server/plugins/
Start server to generate config java -jar paper.jar ```
Step 2: Configure Storage
```yaml plugins/EnderChestVault/config.yml storage: type: "SQLITE" or "PDC" or "MYSQL" ```
Step 3: Set Permissions
Using LuckPerms: ```bash Give VIP rank 54 slots /lp group vip permission set ecvault.size.54 true
Give staff admin access /lp group staff permission set ecvault.admin true ```
Step 4: Reload & Test
```bash /ec reload /ec Open your vault ```
---
🎁 Feature Summary Card
``` ╔═══════════════════════════════════════════════════════════╗ ║ ENDERCHESTVAULT ║ ╠═══════════════════════════════════════════════════════════╣ ║ ✓ Variable vault sizes (9-27-54 slots) ║ ║ ✓ Three storage backends (PDC/SQLite/MySQL) ║ ║ ✓ Permission-based access control ║ ║ ✓ Smart pagination for large vaults ║ ║ ✓ Async database operations (no lag) ║ ║ ✓ Admin vault inspection (online/offline) ║ ║ ✓ Online & offline server support ║ ║ ✓ Cross-server sync via MySQL ║ ║ ✓ Customizable GUI & sounds ║ ║ ✓ Full NBT/component preservation ║ ║ ✓ HikariCP connection pooling ║ ║ ✓ Caffeine in-memory caching ║ ╠═══════════════════════════════════════════════════════════╣ ║ Target: Minecraft 1.21.1 - 1.21.11 | Paper/Spigot API ║ ╚═══════════════════════════════════════════════════════════╝
---
This documentation provides a complete overview of the EnderChestVault plugin, its features, use cases, and technical details!**