Skip to content

command 工具类

command 工具类负责对核心成员指令的处理,并提供了一系列获取指令相关信息的操作方法。

通过翻阅 工具类 Command API 来查看所有的相关方法。

获取指令实例

每一个指令均被创建为指令实例活跃于框架内,可以通过一些方法来获取它们。

获取单一指令实例

通过 getSingle 方法,根据每个指令独一无二的 key,可以获取具体指令的指令实例。当未获取到对应指令实例时,得到的结果为 undefined

ts
import bot from "ROOT";

const detail = bot.command.getSingle( "adachi.detail" );

在获取指令实例时,还可以对指令权限、指令范围作出限制。这通常可以被用来检测指令权限是否满足要求。

ts
import bot from "ROOT";
import { AuthLevel } from "@/modules/management/auth";
import { MessageScope } from "@/modules/message";

const detail = bot.command.getSingle( "adachi.detail", AuthLevel.User, MessageScope.Both );

上面示例获取了 key 值为 adachi.detail 的指令,且限制权限为 user 以上(包括 user),并且在私聊、群聊中均可用。实际上这两者本身也是作为默认值而传递的。

获取一组指令实例

通过 get 方法,可以获取符合要求的一组指令实例。

ts
import bot from "ROOT";
import { AuthLevel } from "@/modules/management/auth";
import { MessageScope } from "@/modules/message";

const detail = bot.command.getSingle( AuthLevel.User, MessageScope.Both );

上面示例获取了满足权限为 user 以上(包括 user),并且在私聊、群聊中均可用的所有指令的集合。

指令实例

Adachi-BOT 中,每一个插件提供的指令均被实例化为一个指令实例。实例包含了指令自身的相关信息,与一些便利的操作方法。

详情可以查看 工具类 Command API - 指令实例,这里仅列举部分内容。

获取实例信息属性

ts
import bot from "ROOT";

const detail = bot.command.getSingle( "adachi.detail" );
detail?.cmdKey;
detail?.auth;
detail?.desc;

使用实例匹配指定内容

ts
import bot from "ROOT";

const detail = bot.command.getSingle( "adachi.detail" );
detail?.match( "#detail 1" );

Released under the MIT License.