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 |
|----------|-------|
| **Plugin Name** | EnderChestVault |
| **Version** | 1.0.0 |
| **Minecraft Versions** | 1.21.1 - 1.21.11 |
| **Server Software** | 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:
- **Variable storage sizes** based on player permissions
- **Multiple database backends** for data persistence
- **Cross-server compatibility** via MySQL
- **Offline player vault access** 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 |
|--------------|-------------|----------|
| **PDC** | PersistentDataContainer (stored on player) | Small servers, simplicity |
| **SQLite** | 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] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
```
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
```
---
๐ 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) โ
โ โ All 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 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
---
Need a server to run EnderChestVault?
Get 24/7 high-performance hosting from reliable hosting for your community!
Click here to get started with KCB Hosting
