Specialized Command Usage
Works with: Ranks, Scheduler, Portals, EventCommands, Interactive Commands, Kits and custom alias.
  • Use only one action variable, otherwise, last one will be used.
  • If command contains [playerName] then target player name will be used if possible. This will not work with scheduler as we have no clue which player should be used in that case.
  • If command starts with msg! and then player name is given, a simple message will be sent to that player if he is online. Example: msg! Zrips Hello!
  • If command starts with broadcast! then message will be sent to everyone on server in simple manner without any additional prefixes.
  • If command starts with actionbar! then all players will get action bar message defined after this variable
  • If command starts with title! then all players will get title message defined after this variable
  • If command starts with subtitle! then all players will get subtitle message defined after this variable
  • If command starts with kickall! then all players will be kicked from server with defined message. Useful before server stop.
  • If command starts with asPlayer! then command will be performed as player who sent original initialising command.
  • If command starts with asConsole! then command will be performed from console. This can be used in ares like customAlias which by default performs commands like player if not defined specifically to be performed as console.
  • if command starts with cooldown:[timeInSec]! then that line or any following ones (if defined) will have cooldown before reusing it. Example: cooldown:5! cmi heal [playerName] will heal player, but not more frequently than every 5sec.
  • If command starts with perm:[permissionNode]! then command will get performed if player has permission node. This will not work when we don’t know who the target player is. Example: perm:cmi.announce.vip! broadcast! Hello vip guys
  • If command starts with moneycost:[amount]! then command will get performed if player has enough money.
  • If command starts with hasmoney:[amount]! then command will check if player has enough money and will continue with commands or stop if player doesn’t have enough money.
  • If command starts with expcost:[amount]! then command will get performed if player has enough exp.
  • If command starts with hasexp:[amount]! then command will check if player has enough exp and will continue with commands or stop if player doesn’t have enough exp.
  • If command starts with item:[item:)data](-amount)! then command will get performed if player has enough defined items. Example: item:stone:1-12! will require 12 granite blocks for command to be performed.
  • If command starts with hasitem:[item:)data](-amount)! then command will get performed if player has enough defined items. This will not take them on command execution.
  • If command starts with ifonline:[playerName]! then command will get performed if player is online. Static name or [playerName] can be depending what result you want to get.
  • If command starts with ifoffline:[playerName]! then command will get performed if player is offline. Static name or [playerName] can be depending what result you want to get.
  • If command starts with ifempty:[hand/offhand/quickbar/armor/inv/subinv]! then command will get performed if players inventory for defined area will be empty. Subinv are 27 slots, aka 3 lines of slots when opening inventory. When using inv as type, then every item in players inventory will be checked.
  • If command starts with votes:[amount]! then command will get performed if player has enough votes (Votifier)
  • Insert line with delay! 5 to perform rest of commands after 5 seconds from trigger. This allows to create in example counter before server stop.
    - cmi launch [playerName]
    - delay! 2
    - cmi launch [playerName]
  • [randomPlayer] placeholder can be used to get random online player name who doesn’t have cmi.scheduler.exclude permission node. This can be used to give rewards for random players on particular time. In example: cmi give [randomPlayer] diamond %rand/1-5%will give random amount from 1 to 5 diamonds to random online player
  • If command starts with allPlayers! then command will be performed on all online players. [allPlayers] should be used to insert players name where needed. In example: allPlayers! cmi heal [allPlayers] will heal everyone who is online.
  • Supports PlaceHolderAPI variables

Extra

  • perm:[value][@][?][#]!
  • bperm:[value][@][?][#]!
  • moneycost:[value][?][#]!
  • expcost:[value][?][#]!
  • hasmoney:[value][@][?][#]!
  • hasitem:[value][@][?][#]!
  • item:[value][?][#]!
  • hasexp:[value][@][?][#]!
  • votes:[value][@][?][#]!
  • cooldown:[value][?][#]!
  • ifonline:[value][?][#]!
  • ifoffline:[value][?][#]!
  • ifempty:[value][?][#]!
  • click:[value][#]!
  • ifinworld:[value][@][?][#]!

All those are conditional checks. What this mean is that if players don’t have permission node or enough money/exp, then followed command will not be performed. Example perm:cmi.testperm! cmi heal [playerName]

  • In case you want to inform player that he doesn’t have the permission node required for that command or money/exp, then use ? in check variable. Example perm:cmi.testperm?! cmi heal [playerName] so if player doesn’t have permission node cmi.testperm then they will get notification message about this and command will not be performed.
  • In case you would want to cancel all commands if players don’t meet requirements, then use # in check variable. Example 
    - moneycost:150#! cmi heal [playerName]
    - cmi feed [playerName]

    in this case player will not be healed or fed if they don’t have 150 money in their account to pay for it.

  • If you want to check opposite condition, then use @ For example perm:cmi.testperm@! cmi heal [playerName] this will only perform command if player doesn’t have cmi.testperm permission node
  • If you want to perform command only when player is in specific world, then utilize ifinworld:[value][@][?][#]! condition. This will perform commands only when provided worldname matches current player world. And in case @ is used, commands will get performed only when provided world name is not that one in which player currently is located. 
  • Extra conditions can be used to check opposite condition, inform player, cancel any further command performing actions if needed. Full variable can look something like perm:cmi.testperm@?#! cmi heal [playerName]

bperm:[value][@][?][#]! will try to bypass base permission check for cmi commands. In example 

bperm:cmi.someCustom! cmi heal

Will allow for player to perform /cmi heal command without actually having cmi.command.heal permission node which is required. This can be utilized for things like limited item usage, where player could perform some of the commands he has no access to in regular situations, but he could perform them while using those items. 

ptarget:[name]! is special variable only usable from console. This will use target player when replacing placeholders or checking conditions. In example, having custom alias like /givehomes with command as 

ptarget:$1! lp user $1 permission set cmi.command.sethome.%cmi_equationint_{cmi_user_maxperm_cmi.command.sethome_1}+1%

then you can use /givehomes Zrips from console to perform command which will add new permission node for a Zrips by those particular placeholders. In this case it will increase max home limit by one.

click:[value]! This is only for interactive commands feature while clicking on blocks. Where value can be on of four options: left, right, leftshift, rightshift. This will define for commands to be performed only when player clicks block in particular way. So in example click:leftshift! will only perform command if player uses left mouse button while sneaking.