Sueta

Commandable

v1.1

Empower your Minecraft server with dynamic, time-bound commands and customizable player abilities!

·Plugin


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

  1. Download the Plugin: Download the latest version of Commandable from the provided source.
  2. Add to Plugins Folder: Place the Commandable.jar file into your server’s plugins folder.
  3. 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:

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

  1. Add the Command Configuration in config.yml:

    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)
  2. Reload the Plugin Configuration: /Commandable reload

  3. 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

  4. 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.

Similar projects

Plugin →