UPM
A plugman like modern plugin manager plugin
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
UPM
UltraPluginManager (UPM)
UltraPluginManager (UPM) is a modern, safe, and advanced plugin management system for Spigot servers (1.18.2+). It serves as a robust alternative to PlugMan, featuring a clean architecture, asynchronous operations, and a user-friendly GUI.
✨ Features
* Hex Color Support: Enable, Disable, Restart, Load, and Unload plugins dynamically. * Hex Color Support: A chest-based GUI to manage plugins visually with pagination and status indicators. * Hex Color Support: * Prevents disabling critical plugins (e.g., Vault, ProtocolLib, WorldGuard). * Checks for dependencies before disabling. * Detects circular dependencies. * Hex Color Support: Heavy operations (like loading/unloading) are handled asynchronously to prevent server lag. * Hex Color Support: Built-in support for English (`en`) and Hungarian (`hu`), with the ability to add custom language files. * Hex Color Support: Full tab completion for all commands and file names. * Hex Color Support: Beautiful chat and GUI formatting with Hex color codes.
📥 Installation
1. Ensure your server is running Java 17 or newer. 2. Download the `UPM.jar`. 3. Place the jar file into your server's `plugins` folder. 4. Restart the server.
🛠 Commands & Permissions
| Command | Alias | Description | Permission | | :--- | :--- | :--- | :--- | | `/upm` | | Shows the help menu. | `upm.admin` | | `/upm list` | | Lists all plugins with their status. | `upm.list` | | `/upm enable <plugin>` | | Enables a disabled plugin. | `upm.enable` | | `/upm disable <plugin>` | | Disables an enabled plugin. | `upm.disable` | | `/upm reload <plugin>` | | Reloads a specific plugin. | `upm.reload` | | `/upm reload` | `areload` | Reloads the UPM configuration. | `upm.reload` | | `/upm load <file>` | | Loads a jar file from the plugins folder. | `upm.load` | | `/upm unload <plugin>` | | Unloads a plugin from memory (Use with caution). | `upm.unload` | | `/upm info <plugin>` | | Shows detailed info (version, authors, deps). | `upm.info` | | `/upm gui` | | Opens the Plugin Manager GUI. | `upm.gui` | | `/upm debug` | | Toggles debug mode. | `upm.debug` |
Wildcard Permission: `upm.admin` grants access to all commands.
⚙️ Configuration
The `config.yml` allows you to customize the plugin's behavior.
```yaml
Language setting (en, hu, or custom)
language: en
Toggle debug messages in console
debug-mode: false
GUI Title
gui-title: "&9&lUPM &8- &bPlugin Manager"
Plugins that cannot be disabled/unloaded via UPM
protected-plugins: - "Vault" - "ProtocolLib" - "LuckPerms" - "WorldEdit" - "WorldGuard" - "UPM" ```
Language Support
UPM generates `lang_en.yml` and `lang_hu.yml` by default. To create a new language: 1. Copy `lang_en.yml` and rename it (e.g., `lang_it.yml`). 2. Translate the messages. 3. Set `language: it` in `config.yml`. 4. Run `/upm reload`.
⚠️ Warning Regarding `unload` and `reload`
While UPM uses advanced techniques to unload plugins (closing ClassLoaders, clearing references), Java's architecture makes "clean" unloading difficult without a full server restart.
* Always restart your server for production changes. It is great for testing small changes in your own plugins. * Always restart your server for production changes. Plugins with heavy packet usage (ProtocolLib) or complex dependency injections may not reload cleanly. * Always restart your server for production changes. Repeatedly loading/unloading plugins *can* lead to Metaspace memory leaks over time. Always restart your server for production changes.
👨💻 Developer
Created by Ywxlol. ```