heybox-bot
Version:
A heybox chat bot frame
92 lines • 3.91 kB
TypeScript
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