CustomCommands

A powerful custom commands plugin with subcommands, console command execution, and clickable links. Create unlimited custom commands with variable replacement, permissions, and modern text formatting for your Paper server.

2,08k

CustomCommands

Custom Commands Plugin [Folia Support]

A powerful and feature-rich custom commands plugin for Paper/Spigot servers with advanced functionality including nested subcommands, arguments system, player validation, console command execution, clickable links, and Folia Support!

Features

Custom Commands

- Create unlimited custom commands with permissions, aliases, and cooldowns - Individual permission system for each command - Support for command aliases (e.g., `/dc` for `/discord`) - Configurable cooldowns to prevent spam - Folia Supported!

Nested Subcommands

- Add tab-completed subcommands to any custom command - Unlimited nesting depth - subcommands can have their own subcommands! - Individual permissions for each subcommand level - Smart tab completion system - Example: `/admin player kick`, `/admin server restart`

Arguments System

- Add arguments to commands and subcommands - Use `{args}` variable in messages and commands - Whitelist support for allowed arguments - Required/optional argument configuration - Support for arguments with spaces - Example: `/say hello`, `/kick Steve`, `/teleport Player 100 64 200`

*Player Arguments (`player-args`)

- Mark specific arguments as player names - Smart tab-completion - ensures players exist and are online - Smart tab-completion - shows all online players automatically - Clear error messages for invalid players - Works with nested subcommands - Example: `/kick Steve` (validates Steve is online)

Console Command Execution

- Execute any server command through custom commands - Choose execution type: "Console" (as server) or "Player" (as user) - Variable replacement system: - `{player}` - Player name - `{displayname}` - Player display name - `{world}` - Player's world name - `{x}`, `{y}`, `{z}` - Player coordinates - `{online_players}` - Number of online players - `{max_players}` - Maximum players - `{args}` - Command arguments

Clickable Links

- Support for clickable links in messages - Custom syntax: `(Display Text)[<URL>]` - Opens URLs in player's browser - Works in both main commands and subcommands

Modern Text Formatting

- Full Kyori Adventure API integration - Support for hex colors (`&#FF8800`) - Legacy color codes (`&6`, `&c`, etc.) - JSON tellraw support with clickable elements

Advanced Features

- Hot-reload configuration without server restart - Custom logging system with colored console output - File rotation for log files - Comprehensive error handling - Asynchronous command execution - Folia server support (v1.1.0+)

Example Commands

Nested Subcommands with Arguments

```yaml admin: permission: "customcommands.admin" subcommands: player: permission: "customcommands.admin.player" subcommands: # Nested subcommands! kick: permission: "customcommands.admin.player.kick" arguments: player-args: [0] # First argument = player name no-arguments: false commands: - "kick {args} Kicked by {player}" ban: permission: "customcommands.admin.player.ban" arguments: player-args: [0] no-arguments: false commands: - "ban {args} Banned by {player}" ```

Usage: - `/admin player kick Steve` - Kicks Steve (validates player is online) - `/admin player ban Steve` - Bans Steve (validates player is online)

Discord Command with Subcommands

```yaml discord: permission: "customcommands.discord" alias: ["dc"] subcommands: send: commands: - "msg {player} &6Discord: &bhttps://discord.gg/example" invite: message: - "&7Click here: (Join Discord)[<https://discord.gg/example>]" ```

Command with Arguments

```yaml say: permission: "customcommands.say" arguments: whitelist: ["hello", "goodbye", "help"] whitelist-only: true no-arguments: true commands: - "say {player}: {args}" ```

Usage: - `/say hello` - Valid (in whitelist) - `/say goodbye` - Valid (in whitelist) - `/say test` - Invalid (not in whitelist)

Command with Player Validation

```yaml kick: permission: "customcommands.kick" arguments: player-args: [0] # First argument must be a player name no-arguments: false commands: - "kick {args} Kicked by {player}" ```

Usage: - `/kick Steve` - Valid (if Steve is online) - `/kick InvalidPlayer` - Error: "Player InvalidPlayer is not online or does not exist!"

Example Command with Console Commands

```yaml example: type: "Console" commands: - "say {player} used the example command!" - "effect give {player} minecraft:glowing 10 1 true" - "title {player} title ["",{"text":"Example!","color":"gold"}]" ```

Installation

1. Download the plugin JAR file 2. Place it in your server's `plugins` folder 3. Restart your server 4. Configure commands in `plugins/CustomCommands/config.yml` 5. Use `/customcommands reload` to reload configuration

Commands

- `/customcommands` - Main command - `/customcommands reload` - Reload configuration - `/customcommands help` - Show help - `/customcommands support` - Show support information - `/customcommands version` - Show version info

Permissions

- `customcommands.*` - All permissions - `customcommands.use` - Basic usage - `customcommands.reload` - Reload configuration - `customcommands.commandname` - Use specific command - `customcommands.commandname.subcommand` - Use specific subcommand - `customcommands.commandname.subcommand.nested` - Use nested subcommand

Configuration

The plugin creates detailed configuration files with examples and documentation:

- `config.yml` - Main configuration with command definitions - Includes comprehensive documentation for all features - Examples for arguments, nested subcommands, and player-args - `messages.yml` - All plugin messages - `logs/` - Plugin log files

Requirements & Compatibility

Compatibility Rating

- Folia 1.21.x: : Likely compatible (tested on 1.21.2-1.21.3) - Paper 1.20.x (v1.1.0+) - Paper 1.21.4+: Fully supported and tested - Paper 1.21.0-1.21.3: Likely compatible (tested on 1.21.2-1.21.3) - Paper 1.20.x: Probably compatible (not tested) - Paper 1.19.x: May work with minor issues (not tested)

Not Supported

- PlugMan - This plugin uses `paper-plugin.yml` and requires Paper-specific APIs - PlugMan - Use at your own risk, no support provided - PlugMan - Do not use PlugMan to load this plugin (Paper plugins not supported)

Important Notes

- Testing: The developer takes no responsibility for crashes or issues on custom Paper/Folia forks - Testing: This plugin is designed for Paper and Folia servers (v1.1.0+) - Testing: Do not attempt to load this plugin with PlugMan (Plugman does not work on paper anyways) - Testing: Always backup your server before installing plugins - Testing: Test on a development server before using in production

Documentation

The configuration files include comprehensive documentation with:

- Color code reference - Variable replacement guide - Console command examples - Clickable link syntax - Subcommand creation guide - Player-args feature explanation - Player-args feature explanation - Player-args feature explanation

Perfect For

- Server owners wanting custom commands with advanced features - Servers needing console command integration - Communities wanting modern text formatting - Administrators needing flexible command systems - Complex command structures with nested subcommands - Complex command structures with nested subcommands

Bstatistics

ADS