变量 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

节点

说明

默认值

default-to-global

未提供命名空间时,是否默认使用全局命名空间而非玩家个人命名空间

false

enable-in-console

允许在控制台命令中使用变量

false

enable-in-player-commands

允许在玩家命令中使用变量

false

enable-in-player-chat

允许在聊天中使用变量

false

max-variable-length

变量值的最大长度

256

权限 Permissions

变量特定权限 Variable Specific

以下权限节点允许你指定玩家如何使用各种变量。

这些权限节点可以通过在末尾添加 .[命名空间] 来缩小范围(其中 [命名空间] 是命名空间名称,例如 .global 表示全局命名空间),或添加 .self 表示其个人的 UUID 命名空间。

若要在命名空间基础上进一步缩小范围,可在命名空间后添加 .[键] 来指定对单个变量的权限。

例如,要赋予玩家仅修改全局命名空间中 test 变量的权限,可授予其权限 craftbook.variables.modify.global.test。

通用权限 General Usage