Описание
# St3ix 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
- **Automatic validation** - 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)[]`
- 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)[]"
```
### 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/St3ixCommands/config.yml`
5. Use `/customcommands reload` to reload configuration
## Commands
- `/st3ixcommands` - Main command
- `/st3ixcommands reload` - Reload configuration
- `/st3ixcommands help` - Show help
- `/st3ixcommands support` - Show support information
- `/st3ixcommands version` - Show version info
## Permissions
- `st3ixcommands.*` - All permissions
- `st3ixcommands.use` - Basic usage
- `st3ixcommands.reload` - Reload configuration
- `st3ixcommands.commandname` - Use specific command
- `st3ixcommands.commandname.subcommand` - Use specific subcommand
- `st3ixcommands.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: **Fully supported** (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
- **Spigot** - This plugin uses `paper-plugin.yml` and requires Paper-specific APIs
- **Custom Paper Forks** - Use at your own risk, no support provided
- **PlugMan** - Do not use PlugMan to load this plugin (Paper plugins not supported)
## Important Notes
- **No Liability**: The developer takes no responsibility for crashes or issues on custom Paper/Folia forks
- **Paper & Folia**: This plugin is designed for Paper and Folia servers (v1.1.0+)
- **No PlugMan**: Do not attempt to load this plugin with PlugMan (Plugman does not work on paper anyways)
- **Backup**: 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
- **Arguments system documentation**
- **Nested subcommands guide**
- **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
- **Servers requiring player validation in commands**
- **Complex command structures with nested subcommands**
