变量 Variables¶
变量(Variables) 机制为 CraftBook 机制提供了高度动态的行为能力。变量是 CraftBook 的核心功能之一,功能非常强大,几乎可以实现任何动态效果。
变量允许在告示牌、命令甚至聊天中设置和读取文本替换。改变一个变量,你就可以动态地改变机制的行为,而无需重新制作告示牌。
使用方法¶
变量本质上是一个“键值存储”,允许为一段文本(即键)赋予一个值。
然后可以在告示牌、聊天或命令中引用该键,它会被替换为变量的值。
命名空间 Namespaces¶
变量键由两个部分组成:命名空间(namespace)和键(key)。命名空间本质上是一个“分组”,允许将变量彼此隔离,方便管理。
当未提供命名空间时,将使用默认命名空间。这可以在配置中更改,默认要么是 global 命名空间,要么是与玩家 UUID 绑定的命名空间。如果使用全局命名空间,所有玩家都可以看到彼此的变量。
除了使变量列表更整洁之外,命名空间还允许对不同的变量集进行细粒度的权限管理。例如,你可以允许参与某个项目的成员访问与该项目相关的变量命名空间。
创建变量¶
变量最初使用 /var define 命令创建,详见本页的命令部分。
变量必须先定义才能使用。
语法 Syntax¶
访问变量的基本语法是 %命名空间|键%,如果使用默认命名空间,则只需使用 %键%。
任何读取告示牌的 CraftBook 机制,或任何使用 CraftBook API 的其他插件,都会看到变量的值而不是文本。如果你有一个名为 cakeType 的变量设为 chocolate,而某告示牌上写着 Cake: %cakeType%,它将被读取为 Cake: chocolate。
聊天和命令中的变量¶
在配置中启用后,变量可以在玩家聊天、玩家命令甚至控制台命令中使用。
这使得变量可以在原版 Minecraft 命令甚至其他插件的命令中使用。此外,当允许在控制台命令中使用时,变量也能在命令方块中工作。变量可以显著增强各种命令方块装置的能力。
Warning
这可能会干扰某些使用 % 字符的命令。要解决此问题,可以使用 \% 代替任何 % 字符,以防止其被解析为变量。
示例 Examples¶
刷怪笼 Mob Spawner¶
如果你定义一个名为 MOB 的变量,值为 cow,然后在 [MC1200] IC(集成电路)的第三行写上 %MOB%,它就会生成牛。然后你可以将变量改为 pig,它就会切换为生成猪。
扩展陷阱 Expanding Trap¶
使用 Entity Trap IC(实体陷阱集成电路),你可以通过增加一个控制半径的变量来创建可扩展的陷阱区域。
命令 Commands¶
Note
这些命令还要求玩家拥有操作其输入变量的权限。
配置 Configuration¶
节点 |
说明 |
默认值 |
|---|---|---|
|
未提供命名空间时,是否默认使用全局命名空间而非玩家个人命名空间 |
false |
|
允许在控制台命令中使用变量 |
false |
|
允许在玩家命令中使用变量 |
false |
|
允许在聊天中使用变量 |
false |
|
变量值的最大长度 |
256 |
权限 Permissions¶
变量特定权限 Variable Specific¶
以下权限节点允许你指定玩家如何使用各种变量。
这些权限节点可以通过在末尾添加 .[命名空间] 来缩小范围(其中 [命名空间] 是命名空间名称,例如 .global 表示全局命名空间),或添加 .self 表示其个人的 UUID 命名空间。
若要在命名空间基础上进一步缩小范围,可在命名空间后添加 .[键] 来指定对单个变量的权限。
例如,要赋予玩家仅修改全局命名空间中 test 变量的权限,可授予其权限 craftbook.variables.modify.global.test。