* docs 回退中文逗号 * 删除多余空格 * fix英文逗号 * docs-bedrock 回退中文逗号 * docs-java 回退中文逗号 * AdvancedTutorials 修英文逗号 * 修复错改的英文逗号 * 修复错改的英文逗号*2 * BasicTutorials 修英文逗号 * skript 修英文逗号 * foundation 修英文逗号 * common 修英文逗号 * Custom-item-model-map 修英文逗号 * Geyser-skull 修英文逗号 * install 修英文逗号 * CheckItem 修英文逗号 * TrMenu 修英文逗号 * 删除demo 换成MineBBS地址
5.7 KiB
title | sidebar_position |
---|---|
逻辑判断 | 3 |
逻辑判断
布尔值(boolean)
它只有两个取值,即 真(true) 和 假(false)
或者说,是(true) 和 否(false)
权限判断(Permission)
判断玩家是否拥有某权限,如果是,则返回 true ,否,则返回 false
我是op,所以我拥有此权限,返回了 true
同 PlaceholderAPI 一样,Permission 也有一个简写 perm
判断为否(Not)
上面是判断拥有此权限,那么我如何判断不拥有此权限呢?
咳咳,开玩笑的,驿站怎么可能用过这么傻逼的写法呢
判断动作的返回值是否为否,即否定动作的结果。
因为我拥有此权限,所以 perm 判断是 true
接着因为 not,最后的结果是 false
perm -> not
判断(Check)
check 动作1 {symbol} 动作2
判断 动作1 与 动作2 的关系
具体判断关系由中间的符号参数 Symbol 决定
- 等于(==、is):指两个值字面意思上相同。
- 不等于(!=、not):指两个值字面意思上不同。
- 相似等于(=?、is?):指两个值字面意思上忽略大小写的条件下相同。
- 绝对等于(=!、is!):指两个值内存路径上相同。
- 大于(>、gt):指第一个值大于第二个值。
- 大于等于(>=):指第一个值大于或等于第二个值。
- 小于(<、lt):指第一个值小于第二个值。
- 小于等于(<=):指第一个值小于或等于第二个值。
- 右含左(in):左侧 action A 的返回值是否属于右侧 action B 返回值的内容之一
- 左含右(has):左侧 action A 是否含有右侧 action B 内容
分支判断(if esle)
单分支
/vul eval if 条件 then 执行的动作
条件判断为 true 则执行 then 后面的动作
注:这里的条件也是指动作,即 动作的返回值为 true 则执行 then 后面的动作
上面只是执行单个动作,那么,如何让他判断 true 后执行多行动作?
if 条件 then {
语句1
语句2
语句3
}
双分支
/vul eval if 条件 then true执行的动作 else false执行的动作
- 条件为 true 执行 then 后面的动作
- 条件为 false 执行 else 后面的动作
执行多行动作
if 条件 then {
语句1
语句2
} else {
语句3
语句4
}
多分支
if动作的连续使用
/vul evel if 条件1 then 动作1 else if 条件2 then 动作2 else if 条件3 then 动作3
多行语句
if 条件1 then {
动作1
动作2
} else if 条件2 then {
动作3
动作4
} else if 条件3 then {
动作5
动作6
}
多分支(Case & When)
单动作
if check player name == postyizhan then tell "是驿站!"
else if check player name == lilingfeng then tell "是驿站的黑奴"
else if check player name == MC_jiaolong then tell "这也是黑奴"
else tell"这谁啊"
上面的改成 Case & When 就是
case player name [
when postyizhan -> tell "是驿站!"
when lilingfeng -> tell "是驿站的黑奴"
when MC_jiaolong -> tell "这也是黑奴"
else tell "这谁啊"
]
多动作
当然他也可以写多行动作
case player name [
when postyizhan -> {
tell "是驿站!"
tell "驿站请和我结婚"
}
when lilingfeng -> tell "是驿站的黑奴"
when MC_jiaolong -> tell "这也是黑奴"
else tell "这谁啊"
]
逻辑判断
他还可以进行逻辑判断!
单动作和多动作放一起展示了
case 1 [
when < 10 -> {
tell "这个数比10小"
}
when > 10 -> log "这个数比10大"
else log "一样大"
]
多条件判断
全部满足(All)
判断动作列表的所有返回值是否均为是。
all [ 动作1 动作2 动作3 更多 ]
例如:
/vul eval if all [ perm vulpecula.command not perm luckperms.editor ] then tell 通过 else 不通过
玩家拥有权限 vulpecula.command 没有权限 luckperms.editor 则通过,否则不通过
一个满足(Any)
判断动作列表的所有返回值是否含有是。
any [ 动作1 动作2 动作3 更多 ]
例如:
/vul eval if any [ perm vulpecula.command not perm luckperms.editor ] then tell 通过 else 不通过
玩家拥有权限 vulpecula.command 和 没有权限 luckperms.editor 满足其中一个或多个就通过
妙妙写法
all_any多行
all [ 条件1 条件2 ]
any [ 条件1 条件2]
### 等价于
all [
条件1
条件2
]
any [
条件1
条件2
]
判断null字符串
如果一个动作,变量,或者其他什么东西会有输出null的情况,而你想判断这个情况
但是 null
是一个已有的动作:https://kether.tabooproject.org/list.html#Null
返回一个空值。
可是我想判断的是 null
这四个字母!这咋办?
还记得之前学的 literal 吗?
check 你要判断的东西 == literal null
告诉kether我要的null是个字符串而不是使用 null动作
判断空值
https://kether.tabooproject.org/list.html#Pass
返回一个空字符串。
check 你要判断的东西 == pass