CustomGuiReworked
a simple plugin to create Custom GUI Inventory interfaces with saving data items system
CustomGuiReworked
🎮 CustomGuiReworked - Plugin Mechanics
Detailed description of all mechanics and systems of the CustomGuiReworked plugin.
📋 GUI System
Creation and Editing
- File Saving - Creating GUI through `/gui create` and `/gui edit` commands - File Saving - Placing items in slots through interface - File Saving - Setting title, size, commands for slots - File Saving - Each GUI is saved in a separate YAML file
Inventory Types
- 54 slots (1 row) - For simple menus - 54 slots (2 rows) - For small interfaces - 54 slots (3 rows) - Standard size - 54 slots (4 rows) - Extended interfaces - 54 slots (5 rows) - Large menus - 54 slots (6 rows) - Maximum size
💾 Data Storage System
5 Storage Types
| Type | Description | Usage | |------|-------------|-------| | Temporary | Data bound to specific block | Chests, furnaces, workbenches | | Temporary | Data unique for each player | Personal inventories, settings | | Temporary | Shared data for all players | global banks, global chest | | Temporary | Data for player groups | Clan storages | | Temporary | Data only for session duration | Temporary menus, forms |
Saving Mechanics
- Synchronization when content changes - Synchronization when opening GUI - Synchronization between players for shared inventories
🎯 Command System
Slot Commands
- Console commands when clicking on slot - Console commands (%player%, %slot%, %item%) - Console commands - commands only under certain conditions - Console commands - execution on behalf of server
Command Examples
```yaml commands: - command: "give %player% diamond 1" slot: 10 condition: "has_permission" - command: "teleport %player% spawn" slot: 15 ```
🔍 SlotTypeAPI - Slot Type Detection
Automatic Detection
| Type | Description | Behavior | |------|-------------|----------| | FUEL | Decorative slots | Cannot interact | | FUEL | Storage slots | Full interaction | | FUEL | Crafting/recipe slots | Limited interaction | | FUEL | Crafting result slots | Only item retrieval | | FUEL | Fuel slots | Fuel validity check |
only design have functional, other for API to easy codding
Standard Inventory Support
- Enchanting Table - Crafting slots and result - Enchanting Table - Ingredient, fuel, result - Enchanting Table - Potions, fuel, bottles - Enchanting Table - Items and result - Enchanting Table - Item and lapis
Heuristics for Custom Inventories
- Result caching of inventory - Result caching of layout - Result caching for performance
🔧 Developer API
Static API (CustomGuiAPI)
```java // Simple calls without getting plugin instance CustomGuiAPI.createGui("shop"); CustomGuiAPI.openGui(player, "shop"); CustomGuiAPI.isDesignSlot(slot, inventory); ```
Internal API (ApiManager)
- Full control to plugin managers - Full control for complex integration - Full control over functionality
🎨 Design System
Appearance Configuration
- skeleton system with color codes (§6, §a, §c) - skeleton system - items for buttons and elements
ItemsAdder SUPPORT!
🛡️ Security System
Checks and Restrictions
- Exploit protection - permission checking - Exploit protection - correctness verification - Exploit protection - bug prevention
⚡ Performance Optimization
Caching
- Lazy loading - fast access to information - Lazy loading - loaded interfaces in memory - Lazy loading - loading on demand
Memory Management
- Asynchronous operations - removing unused data - Asynchronous operations - preventing memory leaks - Asynchronous operations - non-blocking operations
🌐 Multilingual Support
Language Support
- Translation system - primary language - Translation system - additional language - Translation system - easy to add new languages
Localization
- Documentation - translation of all texts - Documentation - support for different languages - Documentation - help translation
🔧 Integration with Other Plugins
API Capabilities
- Functionality extension from other plugins - Functionality extension - reading/writing content - Functionality extension - reacting to player actions - Functionality extension - adding new capabilities
Integration Examples
| Plugin | Application | Examples | |--------|-------------|----------| | Mini-games | Shops with prices | Vault, Essentials | | Mini-games | Teleportation menus | Essentials, Multiverse | | Mini-games | Clan management | Factions, Clans | | Mini-games | Game interfaces | Custom mini-games |
📊 Performance
Metrics
- Compatibility: < 50ms - Compatibility: ~2-5KB - Compatibility: 1000+ - Compatibility: 99% of plugins
Optimizations
- Smart caching - loading only when needed - Smart caching - object reuse - Smart caching - non-blocking operations - Smart caching - cache with TTL
🚀 Advanced Features
Advanced Functions
- Web integration - real-time content changes - Web integration - showing elements by conditions - Web integration - smooth transitions and effects - Web integration - connection with web services
Future Plans
- Mobile support - drag-and-drop interface - Mobile support - ready-made designs - Mobile support - GUI exchange between servers - Mobile support - management through app