Skip to content

命令与权限

命令是插件与玩家和服务器维护者进行交互的关键接口。当你安装一个插件时,它可能带有一组命令用于与插件进行交互。然而,并非所有命令都对所有玩家可用。这就是权限的作用所在。

使用命令

要使用命令,您需要在聊天框中输入命令。由 stdhub 插件注册的命令,也称为“自定义命令”,其前缀不是 /,而是其他字符,以避免与服务器的命令冲突。默认前缀是 .。例如,如果您想使用一个名为 hello 的命令,您需要在聊天框或终端中输入 .hello

插件并不总是有丰富的文档,而我们在设计命令系统时考虑到了这一点。插件的开发者在设计命令时必须为每个参数指定一个 displayName。这个 displayName 用于生成命令的文档。例如,如果你不知道如何使用 test 命令,您可以在聊天框或终端中输入 .test,将得到以下输出:

No patterns matched. Possible patterns:
  - test push [up|down] [distance: integer] [msg: string]
  - test pull [up|down] [distance: integer] [break: boolean]

Pattern 本身就是命令的文档。它们告诉您命令接受哪些参数以及每个参数的类型。在上面的示例中,test 命令有两个 pattern。第一个 pattern 是 test push [up|down] [distance: integer] [msg: string]。这个 pattern 告诉你 test 命令可以与 push 子命令一起使用,该子命令接受一个方向(updown),一个距离(整数)和一条消息(字符串)。第二个 pattern 是 test pull [up|down] [distance: integer] [break: boolean]。这个 pattern 告诉你 test 命令可以与 pull 子命令一起使用,该子命令接受一个方向(updown),一个距离(整数)和一个布尔值(true 或 false),告诉插件是否要打破方块。

权限和组

权限用于控制谁可以使用命令。当插件注册一个命令时,它可以指定玩家必须具有的权限来使用该命令。如果玩家没有所需的权限,他们将无法使用该命令。权限通常通过组授予给玩家。组是一组可以分配给玩家的权限。当将玩家添加到组中时,他们继承该组的所有权限。组是继承性的,这意味着一个组可以有其他组作为父组。当将玩家添加到组中时,他们继承该组及其父组的所有权限。根权限组称为 default。所有玩家都处于 default 组中。

服务器管理员 (op) 可以使用所有命令,而不受权限的限制。从终端中也可以调用所有命令。因此,如果想让一组玩家管理服务器的某个方面,可以创建一个具有必要权限的组,并将玩家添加到该组中。

内置的 perm 命令

stdhub 有一个用于控制权限的内置命令,称为 permperm 命令允许服务器维护者向玩家和组添加和删除权限。perm 命令有以下 pattern:

perm [create|delete] [group: string]

创建或删除权限组(默认情况下扩展 default)。

perm create [group: string] [extendsFrom: string]

创建一个从另一个组扩展的权限组。

perm [grant|revoke] [group: string] [permission: string]

向组授予或撤销权限。

perm [add|remove] [player: string] [group: string]

将玩家添加到组或从组中移除玩家。

perm list groups

列出所有权限组。

perm list group-of [player: string]

列出玩家所在的权限组。

perm list perm-of [explicit|all] [group: string]

列出组的权限。