Skye GUIs
The GUI creation plugin used for SkyeNetwork
Skye GUIs
SkyeGUI
A standalone GUI plugin for creating custom inventory-based interfaces in Minecraft servers using Paper/Spigot.
Features
- 🎨 Permission System - Create fully customizable inventory-based GUIs - ⚡ Permission System - Configure GUIs through YAML files without restarting - 🎮 Permission System - Support for various GUI interfaces including gamemode menus, staff tools, and more - 🔧 Permission System - Simple commands for managing and opening GUIs - 🌈 Permission System - Rich text formatting with Adventure API - 🔄 Permission System - Reload configurations without server restart - 🎯 Permission System - Granular permission control for each GUI
Installation
1. Download the latest `SkyeGUI-1.0.0.jar` from the releases 2. Place the JAR file in your server's `plugins` folder 3. Restart your server or use a plugin manager to load it 4. Configure your GUIs in the generated `config.yml` and `guis.yml` files
Commands
| Command | Description | Permission | Usage | |---------|-------------|------------|-------| | `/skyegui` | Main plugin management command | `skyegui.admin` | `/skyegui [reload|version|list|open <gui>]` | | `/creative` | Opens the gamemode menu | `skyegui.creative` | `/creative` | | `/examplegui` | Opens the example GUI | `skyegui.gui.example` | `/examplegui` | | `/stafftools` | Opens the staff tools GUI | `skyegui.gui.staff` | `/stafftools` | | `/gmmenu` | Opens the gamemode menu GUI | `skyegui.gui.gamemode` | `/gmmenu` |
Command Examples
```bash
Reload the plugin configuration
/skyegui reload
List all available GUIs
/skyegui list
Open a specific GUI
/skyegui open example
Check plugin version
/skyegui version ```
Permissions
| Permission | Description | Default | |------------|-------------|---------| | `skyegui.admin` | Access to GUI administration commands | `op` | | `skyegui.gui.example` | Access to example GUI | `true` | | `skyegui.gui.staff` | Access to staff tools GUI | `op` | | `skyegui.gui.gamemode` | Access to gamemode menu GUI | `op` | | `skyegui.creative` | Access to creative menu command | `op` |
Configuration
Main Configuration (`config.yml`)
```yaml
Enable/disable the plugin
enabled: true
Plugin message prefix
prefix: "<gold>[<aqua>SkyeGUI<gold>] "
Debug mode
debug: false ```
GUI Configuration (`guis.yml`)
The plugin supports flexible GUI configuration through YAML. Each GUI can be customized with:
- Commands - Custom inventory title with MiniMessage formatting - Commands - Inventory size (9, 18, 27, 36, 45, 54) - Commands - Custom items with materials, names, lore, and enchantments - Commands - Custom command binding
Example GUI configuration: ```yaml example: title: "<gold>Example GUI" size: 27 command: "examplegui" items: 13: material: "DIAMOND" name: "<aqua>Click Me!" lore: - "<gray>This is an example item" - "<yellow>Click to close" ```
Messages Configuration (`messages.yml`)
Customize all plugin messages with MiniMessage formatting support:
```yaml prefix: "<gold>[<aqua>SkyeGUI<gold>] " version: "<prefix><green>SkyeGUI v1.0.0 by SkyeNetwork Team" reload: "<prefix><green>Plugin reloaded successfully!" gui-not-found: "<prefix><red>GUI not found: <white>{gui}" no-permission: "<prefix><red>You don't have permission to use this command!" ```
Development
Building from Source
Prerequisites: - Java 8 or higher - Maven 3.6+
Build Steps: ```bash git clone https://github.com/SkyeNetMC/SkyeGUIs.git cd SkyeGUIs mvn clean package ```
The compiled JAR will be available in the `target/` directory.
Project Structure
``` src/ ├── main/ │ ├── java/ │ │ └── me/pilkeysek/skyegui/ │ │ ├── SkyeGUIPlugin.java # Main plugin class │ │ ├── commands/ # Command handlers │ │ ├── menu/ # GUI menu implementations │ │ └── modules/ # Core GUI module │ └── resources/ │ ├── plugin.yml # Plugin metadata │ ├── config.yml # Main configuration │ ├── guis.yml # GUI definitions │ └── messages.yml # Message templates ```
API Usage
SkyeGUI provides a simple API for other plugins to interact with:
```java // Get the plugin instance SkyeGUIPlugin skyeGUI = (SkyeGUIPlugin) Bukkit.getPluginManager().getPlugin("SkyeGUI");
// Open a GUI for a player skyeGUI.getGUIModule().openGUI(player, "example");
// Check if a GUI exists boolean exists = skyeGUI.getGUIModule().getGUINames().contains("myGui"); ```
Compatibility
- Java Version: 1.21+ - Java Version: Paper, Spigot, and compatible forks - Java Version: 8+
🌐 Online Editor
We provide a convenient web-based editor for development: - Editor URL: Editor URL: - Edit and test your configurations online - Real-time syntax highlighting and validation - Direct integration with the plugin
📋 Distribution Policy
linking to the original source only - linking to the original source only share the plugin files directly with others - linking to the original source only redistribute modified or unmodified versions - linking to the original source only direct users to the original source repository - Any sharing must be done by linking to the original source only
✅ Allowed: - Personal use and modification - Contributing back to the original project - Learning from the source code
❌ Prohibited: - Direct file sharing or redistribution - Commercial redistribution - Independent distribution of modified versions
Contributing
1. Fork the repository 2. Create a feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add some amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request
Support
- Wiki: Wiki - Wiki: %%MD1%% - Wiki: %%MD2%%
License
This project is licensed under a Custom License - see the LICENSE file for details.
IMPORTANT: This software has specific redistribution restrictions. Please read the license carefully before sharing or distributing.
Credits
Developed by the SkyeNetwork Team
---
*For more detailed documentation and examples, visit our Wiki.*