EnderChestVault
PluginMIT

EnderChestVault

Tired of vanilla ender chest get upto 6 rows and total of 52 slots on enderchest.......

274
Downloads
0
Followers
3 months ago
Updated
📦
1
Versions

📖About 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
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
  1. 📦 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       
  1. 📄 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]  │
├─────────────────────────────────────────────────────┤
  1. 🌐 Online/Offline Server Support
 config.yml
server:
  use-uuids: true    Online mode (premium)
  use-uuids: false   Offline mode (cracked)
  1. 👁️ 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
  1. 🔄 Async Database Operations

All database reads/writes are asynchronous to prevent server lag:

// Non-blocking vault loading
CompletableFuture<VaultData> loadVault(Player player);

// Non-blocking vault saving  
CompletableFuture<Void> saveVault(Player player, VaultData data);
  1. 🎨 Fully Customizable GUI
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  
  1. 🌐 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   │
              └─────────────┘
  1. 🛡️ 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
  1. 💰 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
  1. 🎮Supports all Servers

Problem: UUID-based storage fails on offline servers.

Solution: Toggle to name-based identification.

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)

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

 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

 plugins/EnderChestVault/config.yml
storage:
  type: "SQLITE"   or "PDC" or "MYSQL"

Step 3: Set Permissions

Using LuckPerms:

 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

/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!**