UNPKG

heybox-bot

Version:

A heybox chat bot frame

92 lines 3.91 kB
import { CommandWSMsgData, ILogger, Message } from '../type'; import { CommandOptionFile, CommandOptionImage } from '../type/info'; import { MessageBuilder } from '../type/message'; /** * 定义命令源接口,用于执行命令后的反馈 */ export interface CommandSource { getName: () => string; hasPermission: (permission: string) => boolean; success: (msg: Message | string) => void; fail: (msg: Message | string) => void; successBy: (callback: (builder: MessageBuilder) => void) => void; failBy: (callback: (builder: MessageBuilder) => void) => void; } /** * 定义一个命令参数的类,用于解析和处理命令中的参数 */ declare class HeyBoxCommandArgument<T> { readonly name: string; readonly type: number; readonly description: string; readonly required: boolean; constructor(name: string, type: number, description: string, required: boolean); /** * 将给定的字符串值解析为指定类型T * 此函数主要用于类型转换,它假设传入的字符串可以安全地被视为类型T * 如果类型转换失败,函数将返回undefined * * @param _value 待解析的字符串值 * @param _file 可选的File对象,用于提供额外的信息或上下文 * @param _image 可选的Image对象,用于提供额外的信息或上下文 * @template T 表示要解析为的类型 * @returns 返回解析后的值,如果解析失败则返回undefined */ parse(_value: string, _file?: CommandOptionFile, _image?: CommandOptionImage): T | undefined; /** * 解析命令参数的逻辑,根据参数类型创建不同的参数对象 * 此函数处理特定格式的字符串参数,将其转换为相应的命令参数对象 * 支持解析STRING、NUMBER、BOOLEAN和USER类型的参数,以及自定义选项参数 * * @param argument 命令参数字符串,格式如"{name:TYPE}" * @returns 返回解析后的HeyBoxCommandArgument对象 * @throws 如果参数格式不支持,抛出错误 */ static parseArgument(argument: string): HeyBoxCommandArgument<any>; } /** * 定义一个命令类,用于管理命令的执行和相关信息 */ declare class HeyBoxCommand { readonly name: string; readonly description: string; readonly permission?: string; readonly arguments: HeyBoxCommandArgument<any>[]; readonly executor: (...args: any) => boolean; constructor(name: string, description: string, executor: (...args: any) => boolean, permission?: string); } /** * 定义一个命令管理器类,用于注册和执行命令 */ /** * HeyBoxCommandManager 类负责管理命令的注册和执行 */ export declare class HeyBoxCommandManager { readonly commands: Map<string, HeyBoxCommand>; readonly logger: ILogger; /** * 构造函数 * @param logger 日志记录器,用于记录错误信息 */ constructor(logger: ILogger); /** * 注册命令的方法,如果命令已存在则记录错误 * @param command 要注册的命令对象 */ register(command: HeyBoxCommand): void; /** * 执行命令的方法,根据命令名称和参数执行相应的逻辑 * @param command 命令消息数据,包含命令信息和参数 * @param prefixArgs 额外的参数,传递给命令的执行器 */ execute(command: CommandWSMsgData, ...prefixArgs: any): void; /** * 解析命令字符串的方法,用于将命令字符串转换为命令对象并注册 * @param command 命令字符串 * @param permission 命令的权限级别,可选参数 * @returns 返回一个函数,该函数接受命令的执行器作为参数 */ parse(command: string, permission?: string | undefined): (executor: (...args: any) => boolean) => void; } export {}; //# sourceMappingURL=index.d.ts.map