Sueta

CustomCommand

2.4.4

lightweight · modern · brigadier trees · javascript execution · supports datapacks

·Plugin
  1. 2.4.4latestCustomCommand 2.4.4last week
    Changes - Fixed a bug where the update checker caused exponential duplication of tasks. This eventually caused hangar to reject the requests, spamming console and sadly also files with exception stack traces. I didn't notice this change for a few weeks as my testing sessions are usually not long. I am truly sorry for anyone who had to delete hundred of thousands of files.
    18 downloads
  2. 2.4.3CustomCommand 2.4.32 weeks ago
    Changes - Added a permission for /ccmd version (and therefore /ccmd). Now, not everyone can see the version. - Changed /ccmd help to only show command (sections) the sender has permission to use. - /ccmd update - Renamed /ccmd update force to download - Added subcommand info which sends the version and changelog in chat.
    8 downloads
  3. 2.4.2CustomCommand 2.4.23 weeks ago
    Changes - Added cooldowns.yml to store cooldowns on restarts. You can manipulate the data inside when the server is not running. All changes will be overridden when the server stops/restarts - Made cooldowns applicable for the console and command blocks - Intoduced a bug where sometimes when the plugin is on the server, command blocks' "last output" just doesn't work anymore. Idk what to do about it, really. - Added cooldown-message field in command (sections) to specify the cooldown message. Use <cooldown> for the remaining time. Only the first occurrence is replaced, so <cooldown> <cooldown> will result in e.g. 10s <cooldown>. - Added /ccmd cooldownless run <custom-command>, which runs the specified command, ignoring the cooldown. The old cooldown persists after. - Made /ccmd more permission-driven. The command is now visible by default and /ccmd help can be run by anyone Every subcommand (except version currently) has a permission <base-permission>.<node-name>, e.g. ccmd.command.custom-command.update - Check updates every 5min if no new one was found. This is, because a substantial part of servers are not on the latest version and I assume they don't restart often, therefore not calling the updater. - Fixed a bug where the duration format would not accept formats with spaces
    56 downloads
  4. 2.4.1CustomCommand 2.4.1Sep 13, 2026
    Changes: - Added cooldowns. These can be specified in the base of the command (section). When a command is on cooldown, only that specific node is on cooldown. In this example, if you run /cooldown, you can't run it again for 10s. But you can still run /cooldown 5s even if /cooldown is on cooldown. I will add functionality that makes command sections require the root to not be on cooldown later.
      cooldown:
        description: 'A command with cooldown'
        permission: 'ccmd.command.cooldown'
        cooldown: 10s
        executes:
          type: message
          message:
            message: 'Hello World!'
        literal:5s:
          description: 'Only 5s cooldown!'
          permission: 'ccmd.command.cooldown.5s'
          cooldown: 5s
          executes:
            type: message
            message:
              message: 'Cheap Hello World!'
      
    - /ccmd commands with now accepts cooldown - /ccmd command now outputs the command's cooldown
    79 downloads
  5. 2.4CustomCommand 2.4Sep 6, 2026
    [Coming from 2.3.1?](https://github.com/Ontey6/CustomCommand/wiki/From-v2.3.1-… Changes - Code & API Changes - Moved away from enums. Now using interfaces (Foo), registries (FooRegistry), creators (FooCreator), parsing factories (Foos) - converted CommandComponentType - converted ExecutionType - converted RequirementType - converted SuggestionType - Made CustomCommand and CommandSection records. Both now implement CommandSectionLike with methods for name, children, command component and values. They also no longer have parent and root fields as you can not have those and children on an immutable object. - Added a plugin command (/customcommand or /ccmd) - Subcommand command gives you the values (permission, description, aliases...) of the command (section) specified after. - Subcommands commands sends a list of all commands with values into chat. - Subcommand with only shows the value entries (permission, description, aliases) specified after for each command. - Subcommand help sends the description of the command (section) specified after. - Subcommand reload Rebuilds all commands, registers them using NMS and sends command update packets to all players. - Subcommand update If there is a new update, downloads it after confirmation. It will be applied on the next restart. - All executions except for javascript and javascript_reference are now wrapped in a section like this to more easily support multi-typing in the future:
      executes:
        type: message
        message:
          message: '<green>Hello, World!'
          broadcast: true
      executes:
        type: boss_bar
        boss-bar:
          name: 'Custom boss bar'
          progress: 1.0
          color: yellow
          stay-ticks: 100 # 5s
      
    - Arguments now start with either literal or argument instead of then v2.3.1:
        then:my-argument:
          type: LITERAL
        # or
        then:my-argument:
          type: ARGUMENT
          argument:
            type: INTEGER
        
    vs. now:
        literal:my-argument:
        # or
        argument:my-argument:
          type: integer
        
    - When one command can't be parsed, now skips only that command instead of the entire file - Made Javascript not spam the console - Added Javascript variables: - console - the console - args - A utility object for getting arguments - get("name") gets the argument with the name. Resolves ArgumentResolvers, so it will return a Player instead of a PlayerSelectorArgumentResolver for an argument type of player. - resolveAngle("name") resolves an angle argument. get("name") already does this. - resolveAngle("name", source) allows you to specify a custom source to resolve the angle with - resolve("name") resolves the argument. get("name") already does this. - resolve("name", source) allows you to specify a custom source - isExecutorEntity - If the executor is an entity. If false, it is a console - isExecutorConsole - If the executor is a console. executor is unusable (null) if this is true. Use sender in that case. - suggestions Utility object for creating suggestion entries (only in suggestions) - string("suggestion") - A string suggestion - string("suggestion", "tooltip") - A string suggestion with tooltip (hover text) - integer("suggestion") - An integer suggestion - integer("suggestion", "tooltip") - An integer suggestion with tooltip (hover text) - Fixed javascript_reference - Updated examples - Renamed commands execution type to command
    28 downloads
  6. 2.3.1CustomCommand 2.3.1Aug 11, 2026
    Actually fixed the version being 'auto-filled'
    54 downloads
  7. 2.3CustomCommand 2.3Aug 11, 2026
    Sorry for the delay, I had to update OnteyAPI. Changes: - Added bstats support - Added Updater - Added PlaceholderAPI and MiniPlaceholders support - Changed parse exceptions to have context (Comamnd name, argument and section the exception occurred in) - Added feedback that the root can't be set an ARGUMENT - Changed argument declaration: before, you would have a type (PRESET/CUSTOM) and preset (STRING, INTEGER...). now you only have type (STRING, INTEGER, CUSTOM...). - Added many more execution types: COMMANDS, MESSAGE, BROADCAST, TITLE, BROADCAST_TITLE, ACTIONBAR, BROADCAST_ACTIONBAR, BOSS_BAR, BROADCAST_BOSS_BAR - Made JAVA_REFERENCE types work (Added everywhere JAVASCRIPT can be specified). - Updated examples
    10 downloads
  8. 2.2-alphaCustomCommand 2.2-alphaAug 5, 2026
    Changes - Fixed the plugin version being called 'auto-filled' - Commands are now registered during the bootstrap phase. This makes them able to be used in functions in data packs. - Added GraalJS as a library that is downloaded by the server. - Added javascript execution - Added requirements - Added javascript suggestions - Updated examples
    20 downloads
  9. 2.1-alphaCustomCommand 2.1-alphaAug 4, 2026
    Changes - Added more preset argument types (All vanilla types from ArgumentTypes except for RESOURCE and RESOURCE_KEY as they require a whole system to fetch registries from Strings) - Added the dynamic to the suggestion declaration. When set to true, removes all suggestions that don't start with the player's input - Added executes/execution declaration. Doesn't have any actual features yet. But: Marks that when this argument is specified last, the command is complete. When no executes declaration is present, it is assumed that the command can't end on this argument, and an error is shown when executing the command - Improved examples Code comparison: https://github.com/Ontey6/CustomCommand/compare/2.0-alpha…
    7 downloads
  10. 2.0-alphaCustomCommand 2.0Aug 4, 2026
    Version 2.0 is NOT FINISHED. At the moment, the features are just: creating brigadier trees with a few preset arguments and custom suggestions. The wiki will follow.
    12 downloads
  11. 0.5.1CCMD 0.5.1Oct 1, 2025

    Version 0.5.1

    now broadcasts updater message to OP's on join - add toggle! fixed escaping of advanced colors made legacy colors escapable with \\&e too rather than just &&e added mini-message abbreviations allow spaces in <r,g,b>: <_r,_g,\_b\_> (underscores are possible spaces)
    140 downloads
  12. 0.5CCMD 0.5Sep 28, 2025

    Version 0.5

    added command field on commands to set the name of the command made advanced broadcast replace args properly fixed usage and description added preconditions (command conditions) and corresponding error messages added Url-Calls made macro Strings properly remove colon in front of the false output no replace placeholder mow also works in messages changed placeholder no replace to no-replace and actionholder send to to send-to added ! (not) operator to conditions temporarily removed actionholders because they were causing problems made tab completer better by only showing tab results that start with the user input also added static placeholder in tab to make them stay no matter what and finally added the ability to make it players to make a list of all online players appear made conditions placeholders instead of actionholder actionholder-format is now unused added mini-message, &# and <r,g,b> format support for messages added boolean type to args added signature 'any' to String args type

    Changes after using the plugin myself:

    added player, server-player and offline-player type to args added ability to disable updater added placeholders: label, usage, description, permission, name, command and condition-error added Argument Tab dropped spigot support added color ends like in mini-message: &/e, &/#hex, </0,0,0>
    20 downloads
  13. 0.4CCMD 0.4Sep 13, 2025
    Also allow files with the file ending '.yaml' instead of just '.yml' reworked Actionholders code and added: _reload-config, reload-commands, reload-command ("<!reload-command>command-name")_ Added support for placeholders and Strings in general in abc range made abc permission a Field removed wrongfully allowed access to actionholders in messages added Macro Strings that make life easier. made placeholders escapable with a backslash added customizable placeholder names added placeholder support for range
    16 downloads
  14. 0.3CCMD 0.3Sep 5, 2025
    added new namespace key on commands added or operator ( || ) to conditions also added &&, but in different ways for abc and commands abc: simply made 'condition' a Field commands: after a conditional line, just add another one added default tab completion (no tab)
    23 downloads
  15. 0.2CCMD 0.2Sep 3, 2025
    _changed config key format.command-prefix to format.namespace_ adjusted description Changed advanced broadcast's field messages to broadcast to match change from v0.02(version not available) in examples.yml added new permission-required field in commands added simple tab completer. updated examples.yml switched placeholders around (now also on the wiki) and removed 'degrees', 'tab' and 'circumflex' placeholders because of redundancy added customizable paths Added logging when disabling plugin because the plugin is unable to create the commands directory embedded conditions into commands via actionholder made actionholders work without throwing a NullPointerException by simply not returning null... added an updater
    18 downloads
  16. 0.1CCMD 0.1 Patch 01Aug 30, 2025
    Patched a wrong name in the examples.yml commands file
    33 downloads

Similar projects

Plugin →