CustomCommands [1.8-1.16] 1.1.6

Create unlimited commands. do the impossible cool things. from server owner to server owners

  1. TitanDevX
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    Source Code:
    https://github.com/TitanDevX/CustomCommands
    Official partner:
    [​IMG]


    Custom Commands 1.1.6


    This Plugin was originally created to short commands, you type one command does 10 commands.
    But you can use it in the way you like!
    This plugin offers fully customizability.

    Features
    • Create unlimited amount of commands.
    • Sub Commands creation!
    • Custom reply messages.
    • Customize name, aliases, permissions, usages and minimum arguments!
    • Perform unlimited amount of commands in a simple custom command.
    • Easy access to arguments placeholder.
    • Easy argument validation checker.
    • Create custom commands with ingame commands!
    • Allows you to do custom 'code' to be applied whenever the command executes.
    • Fully functional reload system (/customcommands reload).
    • perform existing commands, or code your own (see below).
    • Make any item clickable with a simple command!
    Commands
    • /cuc create <name> [Sub Commands (split with ',')] - creates a new custom command with additional sub commands.(will override existing ones).
    • /cuc setPerms <command> <perm node> - sets the command permission.
    • /cuc setMinArgs <command> <minArguments> - sets the minimum arguments amount.
    • /cuc makeClickable | addCommand <Name> [command(put this inside ' and ' and split with ',')] - Makes the item in main hand clickable (you can add on-click commands in the file items.yml).
    • /cuc giveCommandItem <name> - gives you the clickable item for testing.
    • /cuc addSubCommands|addSubCmd|subcmd <Name> <Sub Commands (split with ',')> - Adds more sub-commands to a commands group.
    • /cuc delete <Name> - deletes a custom command, or a custom command group.
    Files & Configuration
    Code (YAML):
    Items:
      Kits
    :
        Item
    :
          Display_Name
    : "&cKits"
          Type
    : paper
          Data
    : 0
          Enchantments
    : []
          Glow
    : true
          Lore
    : []

        #Put '#' Before the command to make perform by the player who clicked. otherwise the console.
        # Placeholders: 1.{player}.
        On_Click_Commands
    :
         - "/kits"

        Reply_Messages
    :
         - "Opened the kits menu!"
     
    Code (YAML):

    ############################################################################################################################
    #                                                                                                                          #
    #                                              Custom Commands Configurations - Commands                                   #
    #                                                                                                                          #
    ############################################################################################################################

    # Please check out codes.yml.

    Commands
    :
      StartAdventure
    :
        Aliases
    : []
        Usage
    : ""
        # The time between each command execution.
        # Example: 10 Seconds.
        # Example2: 2 Minutes
        # Example3: 5 hours.
        # Example 4: 6 Days.
        Cooldown
    : "0 seconds"
        #Set to null to make this commands allowed for everyone.
        Permission
    : null
        # Put '/' before the command to make this command perform by the player, otherwise it will be performed from the console.
        # Placeholders: 1.{player}.
        # 2.{arg:<#>:[Type]} : valid types: player (reads the arg # as a player name),
        # number (reads the arg # as a number), boolean (reads the arg # as a boolean),
        # world (reads it as a world name), enum (see number 3).
        # (TO Do) 3. {arg:#:enum:["enum1", "enum2", "enum3"]}: reads the arg as an enum, if the enum list doesn't contains the arg# it throws an error message.
        # Note: arguments numbers starts from 0 and not 1. so for example if 'MyCommand MyPlayer' is performed, the 'MyPlayer' argument number is 0.
        # Note 2: put '*' to make this argument required. or don't put it and specify the replacement after the type or arg number. (see command 3).
        Commands
    : []
        #These will be sent when this command used as a reply.
        Reply_Messages
    :
         - "&6You have started your &5&lCool Adventure!"
        Code
    :
         - "var Location r = world.getRandomLocation(100)"
          - "player.teleport(vars*r)"
          - 'player.giveItem(stone_pickaxe, 1, &bAdventure Tool)'
      MyCommand
    :
        Aliases
    : []
        # It will replace This character with space in 'Commands' below.
        ReplaceWithSpaces
    : "_"
        Usage
    : "<Player> [Item]"
        # The time between each command execution.
        # Example: 10 Seconds.
        # Example2: 2 Minutes
        # Example3: 5 hours.
        # Example 4: 6 Days.
        Cooldown
    : "0 seconds"
        #Set to null to make this commands allowed for everyone.
        Permission
    : null
        # Put '/' before the command to make this command perform by the player, otherwise it will be performed from the console.
        # Placeholders: 1.{player}.
        # 2.{arg:<#>:[Type]} : valid types: player (reads the arg # as a player name),
        # number (reads the arg # as a number), boolean (reads the arg # as a boolean),
        # world (reads it as a world name), enum (see number 3).
        # (TO Do) 3. {arg:#:enum:["enum1", "enum2", "enum3"]}: reads the arg as an enum, if the enum list doesn't contains the arg# it throws an error message.
        # Note: arguments numbers starts from 0 and not 1. so for example if 'MyCommand MyPlayer' is performed, the 'MyPlayer' argument number is 0.
        # Note 2: put '*' to make this argument required. or don't put it and specify the replacement after the type or arg number. (see command 3).
        Commands
    :
         - "say 'Hello World'"
          - "!wait (20)"
          - "give {player} diamond"
          - "give {*arg:0:player} {arg:1:diamond}"
        #These will be sent when this command used as a reply.
        Reply_Messages
    :
         - "Console said 'Hello World'"
        Code
    :
          - "var Text coolMessage = This is cool message, coded with <3 by me!"
           - "methods.Log(vars*coolMessage)"
           - ""
      MyCommandGroup
    :
        Aliases
    : [mcg]
        # Message sent when the command is written with no arguments.
        # PlaceHolders: {ChatLine}: a long '------' chat line.
        # {ChatLineSmooth}: same as the chatLine placeholder, but with '&m(Strike through)' prefix.
        # {PluginName}: CustomCommands by default.
        # {Trademark}: The TM symbol.
        # {PluginVersion}: the current CustomCommands version by default.
        # {Credits}: typically showing your website where the user can find more information about this command
        # or your plugin in general, by default.
        No_Params_Message
    :
         - '&8{ChatLine}'
          - '  &6&l{PluginName}{Trademark} &7{PluginVersion}'
          - " "
          - "   {Credits}"
          - "&8{ChatLine}"
        Help_Header
    :
         - "&8"
          - "&8{ChatLine}"
          - "&6&l{PluginName}{Trademark} &7{PluginVersion}"
          - " "
          - "&2  [] &f= optional arguments"
          - "&6  <> &f= required arguments"
          - " "

        Sub_Commands
    :
          Cool_Message
    :
            Aliases
    : []
            Usage
    : ""
              # The time between each command execution.
              # Example: 10 Seconds.
              # Example2: 2 Minutes
              # Example3: 5 hours.
              # Example 4: 6 Days.
            Cooldown
    : "0 seconds"
              #Set to null to make this commands allowed for everyone.
            Permission
    : null
              # Put '/' before the command to make this command perform by the player, otherwise it will be performed from the console.
              # Placeholders: 1.{player}.
              # 2.{arg:<#>:[Type]} : valid types: player (reads the arg # as a player name),
              # number (reads the arg # as a number), boolean (reads the arg # as a boolean),
              # world (reads it as a world name), enum (see number 3).
              # (TO Do) 3. {arg:#:enum:["enum1", "enum2", "enum3"]}: reads the arg as an enum, if the enum list doesn't contains the arg# it throws an error message.
              # Note: arguments numbers starts from 0 and not 1. so for example if 'MyCommand MyPlayer' is performed, the 'MyPlayer' argument number is 0.
              # Note 2: put '*' to make this argument required. or don't put it and specify the replacement after the type or arg number. (see command 3).
            Commands
    :
               - "give {player} diamond"
              #These will be sent when this command used as a reply.
            Reply_Messages
    :
               - "&6&lCool Message &5&lfor cool people!!"
            Code
    : []
     
    Code (YAML):

    ############################################################################################################################
    #                                                                                                                          #
    #                                              Custom Commands Configurations                                              #
    #                                                                                                                          #
    ############################################################################################################################
    Version
    : 2
    Command_Aliases
    : [CustomCommands, ccs, cuc]

    Debug_Mode
    : false
    # If you are facing lag and you think it's because of this plugin set this to true, this will disable the plugin from debuging to log.log file.
    Is_Server_Lagging
    : false

     

    Allows you to do everything listed above.
    You may need to type each method in a line.

    • Replaced '*' with 'x' for multiply.
    • Now when you need to use a variable value use vars*<var name> instead of <var name>.
    • now you'll need to use methods.getPlayer(), methods.getWorld(), methods.getFile() instead of getPlayer(), getWorld(), getFile().
    • If you want to use math in any argument you need to put ! before the arguments, example: player.setHealth(!5 x 2).
    • If you want to use methods in an arguments such as: 'player.getHealth' inside player.setHealth(). now you can't you need to make a variable with the value. example: 'var Number health = player.getHealth()', 'player.setHealth(!vars*health / 2)'.
    • In new code system, you can change the a variable value afterwards, example: 'var Number health = player.getHealth()', 'vars*health => 10'

    There are two type of code blocks, variable and method.
    variable code:
    Contains only and only a variable creation and might or might not contains definition, a variable is created in this format:
    'var (Variable type) (Variable name) = (Value)'.
    the variable type can currently be: Number, boolean, string/text, location, player, world and file. the variable name can be anything you want. the value can be a method with a return value such as player.getHealth which returns the player health. a variable can be then used in a method code block like this 'vars*(Variable name), you want to change the variable value afterwards you type 'vars*(Variable name) => (Value).


    Method Code Block:
    This code blocks shouldn't return a value and must result in an operation for the reader to perform, such as player.teleport(<loc>) which teleports the player to a location. the text between the '(' and ')' are named arguments, can only be variables or number. you can't use methods directly as an argument. if you want do math and put the result to be the argument you need to put '!' before the argument such as 'player.setHealth(!vars*health - 2)' where health is a variable that represent the player health. if you want to write a decimal number you need to replace the '.' with '__' like '0__5' instead of '0.5', and you want to multiply a number with another you'll need to use 'x' instead of '*' other than that you can use +, -, /. see a list below about what methods available. if you'd like any method to be added please contact us in discord below.

    Only Player & World Methods For Now.
    The variable 'player' represents the player who performed the command.
    After 'player' variable you can type '.' then the method/statement.
    Example: 'player.resetHealth()'. if there are any arguments for this method/statement you can put them inside the '(' and ')'.
    Example: 'player.teleport(x, y, z, world)'

    Note: You can either use (x, y, z, world) as a location or you can get the player location by doing (player.getLocation). Example:
    You can either type 'world.spawnEntity(10, 50, 10, world, chicken)' or 'world.spawnEntity(player.getLocation, chicken).

    Current Methods:

    • player.teleport(x,y,z,world) - teleports the player to this location.
    • player.setHealth(number) - Sets the health of this player
    • player.getHealth() - Gets the health of this player.
    • player.setFlying(false/true) - Makes player fly forcefully.
    • player.setAllowFly(false/true) - Allow player to toggle fly.
    • player.setSpawnLocation(x, y, z, world) - Set the player spawn/bed location.
    • player.setGamemode(GameMode) - Changes the player gamemode's forcefully.
    • player.setSprinting(false/true) - Makes player sprint forcefully (without moving).
    • player.setFlySpeed(fly speed(< 1)) - Sets the player fly speed.
    • player.setWalkSpeed(walk speed (< 1))\ - Sets the player walk speed.
    • player.getWalkSpeed()
    • player.getFlySpeed()
    • player.performCommand(cmd)
    • player.tell(message) - sends player a message.
    • player.giveItem(Type, Amount, [DisplayName], [Lore]) - gives this player this item, name and lore customize able although they are not necessary to set.
    Current World Methods:
    • world.spawnEntity(x, y, z, world, entity) - spawns any entity at this location.
    • world.generateTree(Location, treeType) - generates a natural tree at this location.
    • world.setAnimalSpawnLimit(limit(number)) - set the world animal spawn limit.

    • world.setAmbientSpawnLimit(limit(number)) - set the ambient spawn limit.
    • world.spawnParticle(Location, particle) - spawns any particle in this location.
    • world.createExplosion(Location, power) - creates a natural explosion by this power.
    • setWorldBorderSize(<size>, [seconds]). seconds is the time in seconds in which the border grows or shrinks from the previous size to that being set.

    • setWorldBorderCeneter(center(location)) ->
      Sets the new border center.
    • setWorldBorderDamage(damage(number)) ->
      Sets the amount of damage a player takes when outside the border plus the border buffer.
    • setWorldBorderBuffer(blocks(number)) -> Sets the amount of blocks a player may safely be outside the border before taking damage.
    • setWorldBorderWarningDistance(distance(number, default is 5 blocks)) -> Sets the warning distance that causes the screen to be tinted red when the player is within the specified number of blocks from the border.
    • setWorldBorderWarningTime(time(number, default is 15 seconds)) -> Sets the warning time that causes the screen to be tinted red when a contracting border will reach the player within the specified time.
    • resetWorldBorder -> Resets the border to default values.
    • getRandomLocation(radius) - gets a random location in this radius from player.

    • write(text) -> prints a text on the file.
    • loadConfig -> loads the file as a config file.

    These methods are very special, requires us to send advanced packets to the server, that's why it's also deprecated and may not work probably per server version. please note that these methods might only be used for fun, some of them only do fake things that will no longer be applied when leaving and rejoining the server.

    • (PLAYER) setGameState(reason, value) -> Used for a wide variety of game state things, from whether to bed use to gamemode to demo messages.
    [​IMG]

    Code variables are made like so:
    var <Variable type> <Variable Name> = <Variable Value (Method)>

    The variable type can be:
    - Player (getPlayer(name))
    - World (getWorld(name))
    - File (getFile(name))
    - String (text)
    - Boolean (true/false)
    - Number (integer/double)
    - String list (["My", "String", "List"])

    Variable name is the keyword which you need to put to represent the variable value. example:
    - var World w = getWorld(world)
    - w.setBlockType(player.getLocation, STONE, 0)
    Where 'w' is the variable name, and 'World' is the variable name,
    'getWorld(world)' is the value of this variable.
    Want a method to be added here? let me know in your review or contact me discord TitanDev#4343.

    Thanks You For Using My Plugin!

    Please don't forget to leave me a review!

    (German) Thanks to @NiniMine

    Goals:


    100 downloads .
    500 downloads.:LOL:

    1000 downloads.
    2000 downloads.


    5 Reviews:LOL:.
    10 Reviews:LOL:.

    20 Reviews.
    50 Reviews.
    100 Reviews.


    Need Support?
    [​IMG]
    YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications.
    YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor.

    [​IMG]


    Discord: TitanDev#4343
    Ru_Pirie and Yiiiiii like this.

Recent Reviews

  1. MRT609
    MRT609
    5/5,
    Version: 1.1.6
    good plugin.
    Can I repost this plugin to mcbbs.net? This is a Chinese Minecraft communication community. I just converted the plugin information into Chinese. I will attach a spigot link. Thank you very much for your reply
    1. TitanDevX
      Author's Response
      Thank you! and sure you can.
  2. Tomfred
    Tomfred
    5/5,
    Version: 1.1.5
    Awesome plugin! It's easy to use and is just perfect for small commands. I really like the in-game option to create a new command. This adds all the criteria needed in the config for a command to work.

    The Developer is nice and replies quickly on the discord!
    1. TitanDevX
      Author's Response
      Thank you for your nice words <3
  3. FlankeisTired
    FlankeisTired
    3/5,
    Version: 1.1.5
    The plugin is down Some how but else The plugin is ok I mean I could of done soOOOo much better
    1. TitanDevX
      Author's Response
      Sorry, i tried helping you, but you should have some experience in mc plugins and mc servers in general before running a server.
  4. Krisud
    Krisud
    5/5,
    Version: 1.1.3
    Waiting 1.16 update. But worked well on 1.15! Really easy setup some commands for newbies! Nice plugin :)
    1. TitanDevX
      Author's Response
      Thank you! 1.16 support is added now :)
  5. _Delta
    _Delta
    5/5,
    Version: 1.1.3
    Woa, excellent work :3
    Btw, I'm now confusin' with ... hard to say
    Thanks for great plugins
    Sorry, my Eng is bad, and don't have anything more to say :D
    1. TitanDevX
      Author's Response
      Glade you like my plugin! thank you!
  6. quinnconnolly03
    quinnconnolly03
    5/5,
    Version: 1.1.2
    The plugin helps shorten commands for me and really help! I was having trouble getting the plugin set up and needed assistance because I was getting errors and Titan helped me on the Discord Support Server getting it all figured out! Great Plugin!
    1. TitanDevX
      Author's Response
      Thank you for reporting bugs :D and appreciate the good review!
  7. VQ9
    VQ9
    5/5,
    Version: 1.0.9.1
    Wow! fantastic plugin I made simple commands with completion. IT is really helpful for my server and its just so much superior to competition in this way! thanks for the plugin as well as keeping it free, free of course is the best price for anything!
    1. TitanDevX
      Author's Response
      Thank You !
  8. NiniMine
    NiniMine
    5/5,
    Version: 1.0.8
    Just a super good plugin! Very simple commands with automatic completion | Einfach nur ein super gutes Plugin! Sehr einfache Befehle mit automatischer Vervollständigung
    1. TitanDevX
      Author's Response
      Thank You!
  9. Ru_Pirie
    Ru_Pirie
    5/5,
    Version: 1.0.6
    Plugin works really nicely, great support! The owner of the plugin is really helpful and had answes to all of my questions even when they where simple things and i was just beeing stupid. Would highly recogment if tyou need a simple and easy to use plugin for binding commands to items!

    10/10
    1. TitanDevX
      Author's Response
      Thank You! i Really Appreciate it!
  10. xuyuedi
    xuyuedi
    5/5,
    Version: 1.0.6
    This plugin is awesome, I like it so much, it brings endless possibilities to a small command
    1. TitanDevX
      Author's Response
      Thank You for your good review!