# PluginHelpGUI999: Your Ultimate In-Game Plugin Help System!
## Introduction
Are you tired of constantly looking up plugin commands and their usages? Do you wish for an intuitive, in-game way to explore all the functionalities your server's plugins offer? Look no further! PluginHelpGUI999 is a revolutionary Spigot plugin designed to streamline the way players discover and interact with plugin commands through a beautiful, easy-to-use graphical user interface (GUI).
Say goodbye to external wikis and messy chat commands. With PluginHelpGUI999, all the information about your server's plugins and their commands is just a click away, right inside Minecraft!
## Key Features
✨ **Dynamic Plugin Discovery:** Automatically scans and detects all loaded plugins on your server, ensuring your help system is always up-to-date without manual configuration (for new plugins).
📖 **Interactive Plugin Browser:** A sleek, paginated GUI displays all detected plugins. Each plugin is represented by a unique item for easy identification.
⚡ **Command-Specific GUIs:** Click on any plugin to open a dedicated GUI listing all its commands, complete with descriptions and required permissions.
🚀 **One-Click Command Execution:** Execute any command directly from the GUI with a simple click. No more typing out long, complex commands!
💾 **Persistent Command Items:** Drag command items from the GUI into your inventory or hotbar to keep frequently used commands at your fingertips. Click them anytime to execute!
✍️ **Customizable Descriptions & Permissions:** Easily modify command descriptions and permissions in the `config.yml` to reflect your server's specific setup or to provide more player-friendly explanations.
🔄 **In-Game Reload:** Refresh the plugin configuration and GUIs with a dedicated reload button, perfect for when you've updated `config.yml` or added new plugins.
🔒 **Permission-Based Access:** Control who can access the help system and execute commands through simple Spigot permissions.
## Commands
All features of PluginHelpGUI999 are accessible through a single, easy-to-remember command:
* `/pluginhelp`
* **Description:** Opens the main Plugin Help Browser GUI, showing a list of all detected plugins.
* **Usage:** `/pluginhelp`
* **Permission:** `PluginHelpGUI999.use`
## How It Works (Behind the Scenes)
PluginHelpGUI999 intelligently interacts with your server:
1. **Startup Scan:** Upon server startup or plugin reload, PluginHelpGUI999 scans your server for all active plugins.
2. **`config.yml` Auto-Population:** It automatically populates or updates its `config.yml` with entries for each detected plugin and their commands. This includes placeholder descriptions and permissions.
3. **GUI Generation:** When you use `/pluginhelp`, it dynamically generates an inventory GUI based on the data in its `config.yml`. Plugins are shown as Zombie Heads, and commands are shown as Player Heads.
4. **Persistent Data:** Command items store their respective commands using Spigot's Persistent Data Container (NBT tags), allowing them to be carried in a player's inventory and executed outside the main GUI.
5. **Command Execution:** When a command item is clicked, the plugin safely executes `player.performCommand(command)`, respecting all server-side command handling and permissions.
## Configuration (`config.yml`)
One of the most powerful features of PluginHelpGUI999 is its customizable `config.yml`. While the plugin auto-fills entries, you can personalize the help experience for your players:
```yaml
plugins:
PluginNameHere:
description: Your custom description for this plugin.
commands:
commandname:
description: A clear explanation of what /commandname does.
permission: custom.permission.node # Or 'none' if no specific permission
AnotherPlugin:
description: Even more customization!
commands:
anothercommand:
description: What this command does.
permission: anotherplugin.use
```
* **Modify `description`:** Change the text displayed for any plugin or command in the GUIs.
* **Set `permission`:** Define the specific permission a player needs to use a command via the GUI. If left as `none`, it implies anyone can use it (or it relies on the plugin's default permission system).
**Important:** The plugin preserves your custom changes to descriptions and permissions. It will only auto-update entries that still have the default placeholder values (`No description set` or `none`).
## Permissions
* `PluginHelpGUI999.use` (default: op)
* Allows players to use the `/pluginhelp` command.
* Allows players to click and execute commands from the GUIs or from command items in their inventory.