Commandable is a versatile and dynamic Minecraft plugin designed to give server administrators the power to create custom, time-bound commands that enhance the gameplay experience. With Commandable, admins can configure commands that temporarily grant players special abilities or permissions, and automatically revert these changes after a specified duration. The plugin also features customizable warnings to notify players before their temporary abilities expire. The new version includes a robust cooldown system to manage command usage more effectively.
Whether you're running a minigame server, an RPG adventure, or simply want to add a touch of magic to your server, Commandable provides the flexibility and control you need. The plugin leverages the LuckPerms API for permission checks, ensuring a seamless and secure experience.
Features
- Dynamic Command Registration: Easily configure and register custom commands through the plugin’s configuration file.
- Time-Bound Abilities: Grant players special abilities for a limited time, with automatic reversion.
- Customizable Warnings: Notify players with a custom message before their temporary abilities expire.
- Cooldown System: Prevents players from using the same command repeatedly within a short period, with notifications when the cooldown ends.
- Permission Integration: Integrated with LuckPerms for robust permission management.
- Simple Reload Command: Reload the plugin and its configuration without restarting the server.
Installation
- Download the Plugin: Download the latest version of Commandable from the provided source.
- Add to Plugins Folder: Place the Commandable.jar file into your server’s plugins folder.
- Restart the Server: Restart your Minecraft server to load the plugin.
Configuration
The main configuration file, config.yml, is located in the plugins/Commandable directory. Here is an example configuration:
Code (YAML):
commands:
godlike
:
# The command that players can use, e.g., /godlike
settable_command
:
"godlike"
# Commands to be executed by the console when the settable command is used
enable_commands
:
-
"god"
# Commands to be executed by the console after the delay period
disable_commands
:
-
"ungod"
# Delay in seconds before disable_commands are executed (example: 3600 seconds = 1 hour)
delay
: 3600
# Announcement delay in seconds before the announcement message is sent (example: 300 seconds = 5 minutes)
announcement_delay
: 300
# Message sent to the player before disable_commands are executed
announcement_message
:
"Your godlike ability is about to wear off!"
# Cooldown in seconds during which the player cannot use the settable command again (example: 7200 seconds = 2 hours)
cooldown
: 7200
Guide
- Defining Commands
- Commands are defined under the commands section in config.yml. Each command configuration includes:
- settable_command: The command that players will use in-game.
- enable_commands: A list of commands to be executed when the ability is activated.
- disable_commands: A list of commands to be executed when the ability expires.
- delay: The duration (in seconds) that the ability lasts.
- announcement_delay: The duration (in seconds) before the ability expires to notify the player.
- announcement_message: The message sent to the player when their ability is about to expire.
- cooldown: The duration (in seconds) during which the player cannot use the command again after it has been used.
- Using Commands
- Players can use the defined commands in-game. For example, to use the godlike command, a player would type: /godlike
- This would grant them the abilities specified in the enable_commands list for the duration specified by delay.
- Custom Announcements
- Custom announcements are configured in config.yml and will be sent to the player a specified amount of time before their ability expires. This ensures players are aware of their remaining time with the ability.
- Reloading the Plugin
- To apply changes made to config.yml without restarting the server, use the reload command: /Commandable reload
- This command requires the commandable.reload permission.
- Permissions
- Ensure you have LuckPerms installed on your server for permission management. Each custom command should be associated with a permission, formatted as commandables.<commandKey>. For example, for the godlike command: commandables.godlike
- Grant this permission to players who should have access to the command.
Example Scenario
Let's walk through an example where we want to create a new command called speedrunner that grants the player speed and jump boost for 10 minutes, with a warning 1 minute before the abilities wear off.
- Add the Command Configuration in config.yml:
Code (YAML):
commands:
speedrunner:
settable_command
:
"speedrunner"
enable_commands
:
-
"effect give @p minecraft:speed 600 2"
-
"effect give @p minecraft:jump_boost 600 1"
disable_commands
:
-
"effect clear @p minecraft:speed"
-
"effect clear @p minecraft:jump_boost"
delay
: 600
# Delay in seconds (10 minutes)
announcement_delay
: 60
# Announcement delay in seconds (1 minute)
announcement_message
:
"Your speedrunner abilities are about to wear off!"
cooldown
: 1200
# Cooldown in seconds (20 minutes)
- Reload the Plugin Configuration: /Commandable reload
- Grant Permission to Players: Using LuckPerms, grant the commandables.speedrunner permission to the desired player or group. /lp user <player> permission set commandables.speedrunner true
- Players Use the Command: Players can now use the /speedrunner command to receive speed and jump boost effects for 10 minutes. One minute before the effects wear off, they will receive a message notifying them. /speedrunner
Conclusion
Commandable is a powerful and flexible plugin that enhances the Minecraft gameplay experience by allowing server administrators to define and manage custom, time-bound commands easily. With dynamic registration, time-bound abilities, customizable warnings, a cooldown system, and robust permission integration, Commandable offers a seamless way to add exciting new features to your server.