-
Notifications
You must be signed in to change notification settings - Fork 28
/
cmi_specializedcmds.txt
95 lines (93 loc) · 21.9 KB
/
cmi_specializedcmds.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<AutoPage><NoAutoAlias><NoReqPermission>
<pageLabel:&3Index>
&b = Index
<T>&3 * Introduction</T><H>&bClick to go to this page.</H><CCI>cmi ctext cmi_specializedcmds 2 [playerName]</CCI>
<T>&3 * Usage</T><H>&bClick to go to this page.</H><CCI>cmi ctext cmi_specializedcmds 3 [playerName]</CCI>
<T>&3 * General</T><H>&bClick to go to this page.</H><CCI>cmi ctext cmi_specializedcmds 4 [playerName]</CCI>
<T>&3 * Statements</T><H>&bClick to go to this page.</H><CCI>cmi ctext cmi_specializedcmds 5 [playerName]</CCI>
<T>&3 * Extra</T><H>&bClick to go to this page.</H><CCI>cmi ctext cmi_specializedcmds 6 [playerName]</CCI>
<NextPage>
<pageLabel:&3Introduction>
&b = Introduction
&b Hey [playerName], this is a list of specialized commands from the CMI plugin. Specialized commands are special commands that allow certain actions to be performed, such as messaging the player or broadcasting a message to the entire server. This is made by Floris and MrCrazyMan02 for the 1MoreBlock.com server. But feel free to customize this to your liking.
&3 This is generally not a command for players really, it's more an internal command that helps the server owner with debugging things. So by default the custom alias you create should require a permission.
&3More information about CMI's specialized commands:&b https://www.zrips.net/cmi/commands/specialized/
<NextPage>
<pageLabel:&3Usage>
&b = Usage
&b Only one action variable should be used, otherwise the last one will be used.
&b Specialized commands can be used in a variety of places, including:
&3 * Ranks
&3 * Scheduler
&3 * Portals
&3 * Event Commands
&3 * Interactive Commands
&3 * Kits
&3 * Custom Alias
<NextPage>
<pageLabel:&3General>
&b = General
<T>&3•msg!:&r msg!</T><H>msg!\n&bIf the command starts with msg! and a player name is given, a message will be sent to the player if they are online.\n&3Example:&f msg! Zrips Hello!</H><SC>msg! </SC>
<T>&3•broadcast!:&r broadcast!</T><H>broadcast!\n&bIf the command starts with broadcast!, the given message will be sent to all online players without any prefixes.</H><SC>broadcast! </SC>
<T>&3•actionbar!:&r actionbar!</T><H>actionbar!\n&bIf the command starts with actionbar!, the given message will be sent to all online players as an actionbar.</H><SC>actionbar! </SC>
<T>&3•title!:&r title!</T><H>title! \n&bIf the command starts with title!, the given message will be sent to all online players as a title.</H><SC>title! </SC>
<T>&3•subtitle!:&r subtitle!</T><H>subtitle!\n&bIf the command starts with subtitle!, the given message will be sent to all online players as a subtitle.</H><SC>%cmi_user_group%</SC>
<T>&3•kickall!:&r kickall!</T><H>kickall!\n&bIf the command starts with kickall!, all online players will be kicked from the server with the given message.</H><SC>kickall! </SC>
<T>&3•asPlayer!:&r asPlayer!</T><H>asPlayer!\n&bIf the command starts with asPlayer!, the given command will be performed as the player who sent the original initialising command.</H><SC>asPlayer! </SC>
<T>&3•asConsole!:&r asConsole!</T><H>asConsole!\n&bIf the command starts with asConsole!, the given command will be executed from the console. This can be used in areas such as custom aliases, which by default performs commands as the player if they haven't specifically been defined to be performed as the console.</H><SC>asConsole! </SC>
<T>&3•asFakeOp!:&r asFakeOp!</T><H>asFakeOp!\n&bIf the command starts with asFakeOp!, the given command will be performed as a player who has operator. This is slightly different from asConsole! because you will not receive any feedback message, and the server will process the command as if it was done by a real player. Keep in mind that this will perform the command as a completely different fake operator player.</H><SC>asFakeOp! </SC>
<T>&3•cooldown:[timeInSec]!:&r cooldown:[timeInSec]!</T><H>cooldown:[timeInSec]!\n&bIf the command starts with cooldown:[timeInSec]!, that line or any following lines (if defined) will have a cooldown before it can be used again.\n&3Example:&f cooldown:5! cmi heal [&fplayerName] - will heal the player, but can only be used every 5 seconds.</H><SC>cooldown:[timeInSec]! </SC>
<T>&3•ucooldown:[timeInSec]!:&r ucooldown:[timeInSec]!</T><H>ucooldown:[timeInSec]!\n&bIf the command starts with ucooldown:[timeInSec]!, the given command will have a cooldown applied depending on the source. This means that you can have different cooldowns depending on whether the command was triggered by a different interactive command or a different custom alias.</H><SC>ucooldown:[timeInSec]! </SC>
<T>&3•gcooldown:[timeInSec]!:&r gcooldown:[timeInSec]!</T><H>gcooldown:[timeInSec]!\n&bIf the command starts with gcooldown:[timeInSec]!, the given command will have a server wide cooldown applied to it. It is unable to be used by anyone if it was triggered by someone else and the cooldown has not ended.</H><SC>gcooldown:[timeInSec]! </SC>
<T>&3•perm:[permissionNode]!:&r perm:[permissionNode]!</T><H>perm:[permissionNode]!\n&bIf the command starts with perm:[permissionNode], the given command will only be performed if the player has the defined permission node. This will not work if we don't know who the target player is.\n&3Example:&f perm:cmi.announce.vip! broadcast! Hello VIP guys</H><SC>perm:[permissionNode]! </SC>
<T>&3•moneycost:[amount]!:&r moneycost:[amount]!</T><H>moneycost:[amount]!\n&bIf the command starts with moneycost:[amount]!, the given command will be performed if the player has enough money.</H><SC>moneycost:[amount]! </SC>
<T>&3•hasmoney:[amount]!:&r hasmoney:[amount]!</T><H>hasmoney:[amount]!\n&bIf the command starts with hasmoney:[amount]!, the command will check if the player has enough money and will either run the given command, or stop if the player doesn't have enough money.</H><SC>hasmoney:[amount]! </SC>
<T>&3•expcost:[amount]!:&r expcost:[amount]!</T><H>expcost:[amount]!\n&bIf the command starts with expcost:[amount]!, the given command will be performed if the player has enough EXP.</H><SC>expcost:[amount]! </SC>
<T>&3•hasexp:[amount]!:&r hasexp:[amount]!</T><H>hasexp:[amount]!\n&bIf the command starts with hasexp:[amount]!, the command will check if the player has enough EXP and will either run the given command, or stop if the player doesn't have enough EXP.</H><SC>hasexp:[amount]! </SC>
<T>&3•item:[itemdata](-amount)!:&r item:[itemdata](-amount)!</T><H>item:[itemdata](-amount)!\n&bIf the command starts with item:[itemdata](-amount)!, the given command will be performed if the player has enough items.\n&3Examples:\n&fitem:stone:1-12! - will require 12 Granite for the command to be performed.\n&fitem:stone{CustomModelData:123456}! - will only perform the command if the player has 1 Stone with the custom model data 123456.</H><SC>item:[itemdata](-amount)! </SC>
<T>&3•hasitem:[itemdata](-amount)!:&r hasitem:[itemdata](-amount)!</T><H>hasitem:[itemdata](-amount)!\n&bIf the command starts with hasitem:[itemdata](-amount)!, the command will check if the player enough of the defined item. This will not take them on command execution.</H><SC>hasitem:[itemdata](-amount)! </SC>
<T>&3•ifonline:[playerName]!:&r ifonline:[playerName]!</T><H>ifonline:[playerName]!\n&bIf the command starts with ifonline:[playerName]!, the given command will only be executed if the player is online.</H><SC>ifonline:[playerName]! </SC>
<T>&3•ifoffline:[playerName]!:&r ifoffline:[playerName]!</T><H>ifoffline:[playerName]!\n&bIf the command starts with ifoffline:[playerName]!, the given command will only be executed if the player is offline.</H><SC>ifoffline:[playerName]! </SC>
<T>&3•ifempty:[hand/offhand/quickbar/armor/inv/subinv/ender]!:&r ifempty:[hand/offhand/quickbar/armor/inv/subinv/ender]!</T><H>ifempty:[hand/offhand/quickbar/armor/inv/subinv/ender]!\n&bIf the command starts with ifempty:[hand/offhand/quickbar/armor/inv/subinv/ender]!, the given command will be performed if the defined inventory part is empty.\n&3Inventory Parts:\n&fhand - the player's main hand slot (whatever slot in their quickbar they are on).\n&foffhand - the player's offhand slot.\n&fquickbar - the 9 slots at the bottom of the player's inventory.\n&farmor - the player's armor slots.\n&finv - every item in the player's inventory.\n&fsubinv - the 27 slots (3 rows) of the player's inventory, not including the hotbar.\n&fender - the player's ender chest.\n&bAn extra value can be defined for the quickbar, inv and subinv types.\n&3Examples:\n&fifempty:subinv-10! - will only perform the command if the player has 10 free slots in their sub inventory.\n&fifempty:maininv-3?! - will only perform the command if the player has 3 free slots in their main inventory. The player will be informed if the requirement is not met.</H><SC>ifempty:[hand/offhand/quickbar/armor/inv/subinv/ender]! </SC>
<T>&3•check:[value1][==|>|>=|<|<=|!=][value2][?][#]!:&r check:[value1][==|>|>=|<|<=|!=][value2][?][#]!</T><H>check:[value1][==|>|>=|<|<=|!=][value2][?][#]!\n&bIf the command starts with check:[value1][==|>|>=|<|<=|!=][value2][?][#]!, the given command will only be performed if the defined condition is met. If you want to check for multiple values at once, you can split each value with |. This only applies if you use == or !=.\n&3Examples:\n&fcheck:%cmi_user_balance%>1000! - will only perform the command if the player's balance is greater than 1000.\n&fcheck:%cmi_user_name%==Zrips! - will only perform the command if the player's name is Zrips.\n&fcheck:%cmi_user_name%==Zrips|Zhax! will only perform the command if the player's name is Zrips or Zhax.</H><SC>check:[value1][==|>|>=|<|<=|!=][value2][?][#]! </SC>
<T>&3•votes:[amount]!:&r votes:[amount]!</T><H>votes:[amount]!\n&bIf the command starts with votes:[amount]!, the given command will only be performed if the player has enough votes. The number of votes is pulled from Votifier.</H><SC>votes:[amount]! </SC>
<T>&3•delay! [timeInSec]:&r delay! [timeInSec]</T><H>delay! [timeInSec]\n&bIf a line contains delay! [timeInSec], the next commands will be performed after the given delay.\n&3Examples:\n&f- cmi launch [&fplayerName]\n&f- delay! 2\n&f- cmi launch [&fplayerName] - the previous 2 commands and this command will launch the player, wait 2 seconds, and then launch the player again.\n&f- cmi launch [&fplayerName]\n&f- delay! 2 playerlaunch\n&f- cmi launch [&fplayerName] - the previous 2 commands and this command will launch the player, define a delay of 2 seconds called playerlaunch, wait 2 seconds, and then launch the player again. This delay can be cancelled using canceldelay:[name]!. Defining a name for the delay is only available in CMI version 9.1.3.2 and above.</H><SC>delay! [timeInSec] </SC>
<T>&3•canceldelay:[&3name]!:&r canceldelay:[&rname]!</T><H>canceldelay:[&rname]!\n&bIf the command starts with canceldelay:[&bname], the defined delay name will be cancelled.</H><SC>canceldelay:[name]! </SC>
<T>&3•allPlayers!:&r allPlayers!</T><H>allPlayers!\n&bIf the command starts with allPlayers!, the given command will be performed on all online players. [&ballPlayers] can be used to insert the player's name.\n&3Example:&f allPlayers! cmi heal [&fallPlayers] - will heal all online players.</H><SC>allPlayers! </SC>
<NextPage>
<pageLabel:&3Statements>
&b = Statements
<T>&3•statement:[value]!:&r statement:[value]!</T><H>statement:[value]!\n&bIf a line starts with statement:[value]!, the given conditions will be checked when the statement is called using the specialized command if:[value][@][#]!.\n&3Examples:\n&f- statement:check1! hasexp:50! hasmoney:100! perm:cmi.command.fly!\n&f- if:check1! msg! [playerName] PASS\n&f- if:check1@! msg! [playerName] FAIL - in this example, we have 3 checks on the first line, where the result is attached to the custom name, in this case check1, though you can name the check whatever you want. The next 2 lines utilize the results of the check, so the if:check1! line gets performed whenever the check returns true, while the if:check1@! gets performed whenever the check returns false. This allows you to perform checks once and then utilize the result for cleaner and faster command processing, so instead of repeating the same command checks, the results from the previous one will be utilized.\n&f- statement:check1! hasexp:50! hasmoney:100! perm:cmi.command.fly!\n&f- if:check1! command 1\n&f- if:check1! command 2\n&f- if:check1! command 3\n&f- if:check1! command 4\n&f- if:check1@! command 5\n&f- if:check1@! command 6\n&f- if:check1@! command 7</H><SC>statement:[value]! </SC>
<NextPage>
<pageLabel:&3Extra>
&b = Extra
&bAll of these checks are conditional, meaning that if the condition is not met, the following command will not be performed.
<T>&3•perm:[value][@][?][#]!:&r perm:[value][@][?][#]!</T><H>perm:[value][@][?][#]!\n&bIf the command starts with perm:[value][@][?][#]!, the given command will only be performed if the player has the defined permission node. This will not work if we don't know who the target player is.\n&3Example:&f perm:cmi.announce.vip! broadcast! Hello VIP guys</H><SC>perm:[value][@][?][#]! </SC>
<T>&3•bperm:[value][@][?][#]!:&r bperm:[value][@][?][#]!</T><H>bperm:[value][@][?][#]!\n&bIf the command starts with bperm:[value][@][?][#]!, the base permission checks for CMI commands will try to be bypassed. This only works for CMI commands.\n&3Example:&f bperm:cmi.someCustom! cmi heal</H><SC>bperm:[value][@][?][#]! </SC>
<T>&3•moneycost:[value][?][#]!:&r moneycost:[value][?][#]!</T><H>moneycost:[value][?][#]!\n&bIf the command starts with moneycost:[value][?][#]!, the given command will be performed if the player has enough money.</H><SC>moneycost:[value][?][#]! </SC>
<T>&3•expcost:[value][?][#]!:&r expcost:[value][?][#]!</T><H>expcost:[value][?][#]!\n&bIf the command starts with expcost:[value][?][#]!, the given command will be performed if the player has enough EXP.</H><SC>expcost:[value][?][#]! </SC>
<T>&3•hasmoney:[value][@][?][#]!:&r hasmoney:[value][@][?][#]!</T><H>hasmoney:[value][@][?][#]!\n&bIf the command starts with hasmoney:[value][@][?][#]!, the command will check if the player has enough money and will either run the given command, or stop if the player doesn't have enough money.</H><SC>hasmoney:[value][@][?][#]! </SC>
<T>&3•hasitem:[value][@][?][#]!:&r hasitem:[value][@][?][#]!</T><H>hasitem:[value][@][?][#]!\n&bIf the command starts with hasitem:[value][@][?][#]!, the command will check if the player enough of the defined item. This will not take them on command execution.</H><SC>hasitem:[value][@][?][#]! </SC>
<T>&3•item:[value][?][#]!:&r item:[value][?][#]!</T><H>item:[value][?][#]!\n&bIf the command starts with item:[value][?][#]!, the given command will be performed if the player has enough items.\n&3Example:&f item:stone:1-12!&b will require 12 granite blocks for the command to be performed.</H><SC>item:[value][?][#]! </SC>
<T>&3•hasexp:[value][@][?][#]!:&r hasexp:[value][@][?][#]!</T><H>hasexp:[value][@][?][#]!\n&bIf the command starts with hasexp:[value][@][?][#]!, the command will check if the player has enough EXP and will either run the given command, or stop if the player doesn't have enough money.</H><SC>hasexp:[value][@][?][#]! </SC>
<T>&3•votes:[value][@][?][#]!:&r votes:[value][@][?][#]!</T><H>votes:[value][@][?][#]!\n&bIf the command starts with votes:[value][@][?][#]!, the given command will only be performed if the player has enough votes. The number of votes is pulled from Votifier.</H><SC>votes:[value][@][?][#]! </SC>
<T>&3•cooldown:[value][?][#]!:&r cooldown:[value][?][#]!</T><H>cooldown:[value][?][#]!\n&bIf the command starts with cooldown:[value][?][#]!, that line or any following lines (if defined) will have a cooldown before it can be used again.\n&3Example:&f cooldown:5! cmi heal [&fplayerName] - will heal the player, but can only be used every 5 seconds.</H><SC>cooldown:[value][?][#]! </SC>
<T>&3•ucooldown:[value][?][#]!:&r ucooldown:[value][?][#]!</T><H>ucooldown:[value][?][#]!\n&bIf the command starts with ucooldown:[value][?][#]!, the given command will have a cooldown applied depending on the source. This means that you can have different cooldowns depending on whether the command was triggered by a different interactive command or a different custom alias.</H><SC>ucooldown:[value][?][#]! </SC>
<T>&3•gcooldown:[value][?][#]!:&r gcooldown:[value][?][#]!</T><H>gcooldown:[value][?][#]!\n&bIf the command starts with gcooldown:[value][?][#]!, the given command will have a server wide cooldown applied to it. It is unable to be used by anyone if it was triggered by someone else and the cooldown has not ended.</H><SC>gcooldown:[value][?][#]! </SC>
<T>&3•ifonline:[value][?][#]:&r ifonline:[value][?][#]!</T><H>ifonline:[value][?][#]!\n&bIf the command starts with ifonline:[value][?][#]!, the given command will only be executed if the player is online.</H><SC>ifonline:[value][?][#]! </SC>
<T>&3•ifoffline:[value][?][#]:&r ifoffline:[value][?][#]!</T><H>ifoffline:[value][?][#]!\n&bIf the command starts with ifoffline:[value][?][#]!, the given command will only be executed if the player is offline.</H><SC>ifoffline:[value][?][#]! </SC>
<T>&3•ifempty:[value][?][#]!:&r ifempty:[value][?][#]!</T><H>ifempty:[value][?][#]!\n&bIf the command starts with ifempty:[value][?][#]!, the given command will be performed if the defined inventory part is empty.\n&3Inventory Parts:\n&fhand - the player's main hand slot (whatever slot in their quickbar they are on).\n&foffhand - the player's offhand slot.\n&fquickbar - the 9 slots at the bottom of the player's inventory.\n&farmor - the player's armor slots.\n&finv - every item in the player's inventory.\n&fsubinv - the 27 slots (3 rows) of the player's inventory, not including the hotbar.\n&bAn extra value can be defined for the quickbar, inv and subinv types.\n&3Examples:\n&fifempty:subinv-10! - will only perform the command if the player has 10 free slots in their sub inventory.\n&fifempty:maininv-3?! - will only perform the command if the player has 3 free slots in their main inventory. The player will be informed if the requirement is not met.</H><SC>ifempty:[value][?][#]! </SC>
<T>&3•click:[value][#]!:&r click:[value][#]!</T><H>click:[value][#]!\n&bIf the command starts with click:[value][#]!, the given command will only be performed if the player clicks the block using the defined click type. This feature is exclusive to interactive commands.\n&3Click Types:\n&fleft - when a player left clicks a block.\n&fright - when a player right clicks a block.\n&fleftshift - when a player left clicks a block while sneaking.\n&frightshift - when a player right clicks a blok while sneaking.\n&3Example:&f click:leftshift! - will only perform the given command if the player left clicks the block while sneaking.</H><SC>click:[value][#]! </SC>
<T>&3•ifinworld:[value][@][?][#]!:&r ifinworld:[value][@][?][#]!</T><H>ifinworld:[value][@][?][#]!\n&bIf the command starts with ifinworld:[value][@][?][#]!, the given command will only be performed if the player is in the defined world.</H><SC>ifinworld:[value][@][?][#]! </SC>
<T>&3•ifingamemode:[value][@][?][#]!:&r ifingamemode:[value][@][?][#]!</T><H>ifingamemode:[value][@][#]!\n&bIf the command starts with ifingamemode:[value][@][#]!, the given command will only be performed if the player is in the defined gamemode.</H><SC>ifingamemode:[value][@][#]! </SC>
<T>&3•ifhashealth:[value][@][#]!:&r ifhashealth:[value][@][#]!</T><H>ifhashealth:[value][@][#]!\n&bIf the command starts with ifhashealth:[value][@][#]!, the given command will only be performed if the player has the defined amount of health.</H><SC>ifhashealth:[value][@][#]! </SC>
<T>&3•ifhashunger:[value][@][#]!:&r ifhashunger:[value][@][#]!</T><H>ifhashunger:[value][@][#]!\n&bIf the command starts with ifhashunger:[value][@][#]!, the given command will only be performed if the player has the defined amount of hunger.</H><SC>ifhashunger:[value][@][#]! </SC>
<T>&3•ifhasair:[value][@][#]!:&r ifhasair:[value][@][#]!</T><H>ifhasair:[value][@][#]!\n&bIf the command starts with ifhasair:[value][@][#]!, the given command will only be performed if the player has the defined amount of air.</H><SC>ifhasair:[value][@][#]! </SC>
<T>&3•ptarget:[name]!:&r ptarget:[name]!</T><H>ptarget:[name]!\n&bIf the command starts with ptarget:[name]!, the target player will be used when replacing placeholders or checking conditions. It is only usable from the console.\n&3Example:&f ptarget:$1! lp user $1 permission set cmi.command.sethome.%cmi_equationint_{cmi_user_maxperm_cmi.command.sethome_1}+1% - will give a player 1 more home, for example if you have a custom alias /givehomes, the syntax could be /givehomes Zrips.</H><SC>ptarget:[name]! </SC>
<NextPage>
<pageLabel:&3Operators>
&b = Operators
<T>&3•@:&r @</T><H>@\n&bIf a specialized command contains @, the opposite condition will be checked.\n&3Example:&f perm:cmi.testperm@! cmi heal [&fplayerName] - only heals the player if they don't have the cmi.testperm permission node.</H><SC>@</SC>
<T>&3•?:&r ?</T><H>?\n&bIf a specialized command contains ?, the player will be informed if they don't meet the requirement.\n&3Example:&f perm:cmi.testperm?! cmi heal [&fplayerName] - only heals the player if they have the cmi.testperm permission node. They will be informed if they don't have the permission node.</H><SC>?</SC>
<T>&3•#:&r #</T><H>?\n&bIf a specialized command contains #, all commands will be cancelled if the player doesn't meet the requirements.\n&3Example:\n&f- moneycost:150#! cmi heal [&fplayerName]\n&f- cmi feed [&fplayerName] - the player will not be healed or fed if they don't have a balance of at least 150.</H><SC>#</SC>
<T>&3•~:&r ~</T><H>?\n&bIf a specialized command contains ~, any commands following it will be cancelled if the command is performed.\n&3Example:\n&f- check:$1==null~! asConsole! cmi feed [&fplayerName]\n&f- check:$1==join~! asConsole! cmi feed [&fplayerName]\n&f- msg! [&fplayerName] &4Wrong command!&f - feeds the player if no arguments are provided. If the first argument is equal to "join", the player will be healed and none of the following commands will be checked. If the first argument isn't empty and isn't equal to "join", the last line will be performed which prints out an error message.</H><SC>~</SC>