ConditionalCommands 条件指令
作者:konsolas
发布时间:2015年11月7日
原生版本:未知
测试支持:1.8,1.9,1.10,1.11,1.12,1.13,1.14,1.15,1.16
只有在满足某些条件时才执行命令。
点此下载插件详细介绍
🎮 ConditionalCommands
ConditionalCommands 插件允许你在满足特定条件时执行命令。它主要用于那些需要在特定条件下自动执行命令的插件,并支持执行多个命令,且每个命令都可以设置不同的延迟。
📌 使用方法
/cc <player> unless <condition> do <command>/cc <player> if <condition> do <command>/cc help/cc reload/cc cooldown <arbitrarykey>
别名: /ccmd
⚙️ 条件 (Conditions)
条件的语法如下:
<expression>::=<term>{<or><term>}
<term>::=<factor>{<and><factor>}
<factor>::=<comparison>|<not><factor>|<expression>)
<comparison>::=<constant><comparator><constant>
<constant>::=floating point number or integer
<and>::='&'
<or>::='|'
<not>::='!'
<comparator>::='>'|'='|'<'
只有数字可以比较,占位符只能包含数字。如果一组中有多个比较运算符(如 3>=<2),则只会使用第一个运算符。比较不能包含空格。不等可以用 !(value=value) 检查。
💡 示例
/cc konsolas unless -ping->200 do kick konsolas
/cc konsolas if (-ping-<300&-ping->100)&-tps->15.0 do msg konsolas Your ping is between 300 and 100, and the TPS is greater than 15.
🧰 占位符 (Placeholders)
占位符用 - 分隔。由于它们通过替换应用,如果输入不正确,可能会在解析过程中检测到错误。
ping- 被测试玩家的延迟。tps- 服务器在过去 2 秒内的平均 TPS。time_online- 玩家在线时长(毫秒)。uptime- 服务器运行时间(ticks)。player_count- 服务器上的玩家数量。perm:<permission>- 如果玩家拥有权限,则为 1.0,否则为 0.0。例如:-perm:essentials.home-perm_count:<permission>- 在线且拥有<permission>的玩家数量。aacvl:<check>- 给定检查的 AAC 违规等级(内部名称)。例如:-aacvl:speed-chance:<percentage>%- 在 percentage% 的时间内为 1.0。例如:-chance:34.5%-cooldown:<arbitrarykey>- 返回自上次执行/cc cooldown <arbitrarykey>命令以来的秒数。如果从未为给定的<arbitrarykey>执行过/cc cooldown,则返回 43200。
永远不会返回小于 0 的值。
例如:
/cc if -cooldown:some_key->59 do /0/ cc cooldown some_key /0/ broadcast sent up to once every 60 seconds
支持的最大冷却时间为 12 小时(即 43200 秒)。冷却时间不会保存到文件,因此会在服务器重新加载/重启时重置。例如,可以在 AAC 的配置中使用玩家占位符作为 arbitrarykey 的一部分。
✨ 多命令/延迟命令 (Multi command / delayed commands)
在语句的 do 子句中,可以同时执行多个命令,并且可以根据需要延迟选定的命令。命令分隔符为 /<delay>/,其中 / 和 / 之间的整数表示命令应执行的延迟(以 ticks 为单位)。
🔑 示例
/cc konsolas if -aacvl:heuristics->0 do /1200/ ban konsolas 1 minute delayed ban for killaura
/cc konsolas if -perm:some.permission-=1 do /0/ broadcast konsolas has some.permission! /0/ broadcast second broadcast! /20/ broadcast 1 second later!
👨💻 开发者模式 (Developer mode)
默认情况下,ConditionalCommands 将隐藏解析错误等细节,以提高用户友好性,并且会忽略执行命令时生成的异常。可以通过将 plugins/ConditionalCommands/config.yml 中的 dev 选项更改为 true 来更改此行为。
⚙️ Config
dev: false