UNPKG

heybox-bot

Version:

A heybox chat bot frame

158 lines 6.51 kB
import BotConfig from './config'; import { BotEvent, BotEventCancelable, EventCallback, Message, MessageBuilder, UserMessage, UserMessageBuilder } from './type'; /** * `HeyBoxBot` 类代表一个聊天机器人,用于处理命令和事件 */ export declare class HeyBoxBot { private path; private logger?; private heartbeatTimes; /** * 机器人配置对象,包含机器人运行所需的各种配置信息 */ private readonly config; /** * 命令管理器,用于处理和管理机器人接收到的各种命令 */ private readonly commandManager?; /** * 事件管理器,用于处理和管理机器人接收到的各种事件 */ private readonly eventManager; /** * WebSocket连接,用于与服务器进行实时通信 */ private readonly ws; /** * 标记WebSocket连接是否已打开 */ private wsOpened; /** * 构造函数,用于初始化机器人实例 * @param config {BotConfig} 机器人配置对象,包含机器人运行所需的各种配置信息 */ constructor(config: BotConfig); /** * 异步启动方法,用于启动HeyBoxBot实例 * 此方法允许指定一个可选的路径参数,默认为当前工作目录 * 它在启动前后分别触发一系列事件,并设置WebSocket消息监听器 * * @param {string} path - 启动的目录路径,默认为当前工作目录 * @returns {Promise<HeyBoxBot>} 返回实例本身,允许链式调用 */ start(path?: string): Promise<HeyBoxBot>; /** * 停止HeyBoxBot实例 * * 此方法在停止机器人之前和之后执行一些钩子函数,确保资源被适当管理 * 如果WebSocket连接是打开的状态,则会关闭该连接 * * @returns {HeyBoxBot} 返回HeyBoxBot实例,允许链式调用 */ stop(): HeyBoxBot; /** * 定义一个命令装饰器,用于在类中动态添加命令处理逻辑 * * @param command 命令的字符串表示,用于指定命令的结构和参数 * @param permission 可选的权限字符串,用于限定执行该命令所需的权限 * @returns {(executor: (...args: any) => boolean) => void} 返回一个函数,该函数接受一个执行器函数作为参数,并在适当的时候调用它 * * @example * @ bot.command('/test {arg1: NUMBER} {arg2?: NUMBER}') * public calc(source: CommandSource, arg1: number, arg2: number | undefined = undefined): boolean {} */ command(command: string, permission?: string | undefined): (executor: (...args: any) => boolean) => void; /** * 定义一个 cron 装饰器,用于根据给定的 cron 表达式调度任务 * * @param _cron cron 表达式,用于指定任务执行的时间 * @returns {(executor: (bot: HeyBoxBot) => void) => void} 返回一个函数,该函数接受一个执行器函数作为参数,并在指定时间执行该执行器函数 * * @example * @ bot.cron('0/30 * * * * *') * public cron(bot: HeyBoxBot): void {} */ cron(_cron: string): (executor: (bot: HeyBoxBot) => void) => void; /** * 发布一个事件,触发该事件的所有监听器 * * @param event {string} 事件名称 * @param args {...args: any} 传递给事件回调的参数 * @returns {any[]} 事件回调的返回值(如果有) */ post(event: string, ...args: any): Promise<any[]>; /** * 定义一个事件订阅装饰器,用于根据事件触发回调 * * @param event {string} 事件名称 * @param namespace {string} 命名空间,用于组织事件监听器 * @param priority {number} 优先级,决定事件回调的执行顺序 * @param cancelable {boolean} 是否可取消,决定是否可以取消事件,为 true 时,处理器第一个参数会传入 Cancelable * @returns {(callback: (...args: any) => void) => void} 一个函数,接受事件回调并注册该回调到指定事件 * * @example * @ bot.subscribe('after-start', true) * public test(cancelable: Cancelable, bot: HeyBoxBot) {} */ subscribe<T extends BotEvent, C extends BotEventCancelable>(event: T, cancelable?: C, namespace?: string, priority?: number): (callback: EventCallback<T, C>) => void; /** * 处理WebSocket消息的函数 * 该函数解析从WebSocket接收到的消息,并根据消息内容执行相应操作 * @param bot {HeyBoxBot} HeyBoxBot实例,用于访问机器人的功能和属性 * @param data {RawData} 从WebSocket接收到的原始数据 */ private onWebsocketMsg; /** * 当接收到命令消息时调用该方法处理 * @param bot 当前机器人实例 * @param user 发送命令的用户信息 * @param commandMsg 命令消息数据 */ private onCommandMessage; /** * 当用户对消息添加或移除表情时调用该方法处理 * @param bot 当前机器人实例 * @param msg 用户添加或移除表情的消息数据 */ private onUserAddOrRemoveEmojiToMsg; /** * 当用户加入或离开房间时调用该方法处理 * @param bot 当前机器人实例 * @param user 加入或离开房间的用户信息 * @param msg 用户加入或离开房间的消息数据 */ private onUserJoinOrLeaveRoom; /** * 当用户点击卡片消息按钮时调用该方法处理 * @param bot 当前机器人实例 * @param user 点击按钮的用户信息 * @param msg 卡片消息按钮点击事件数据 */ private onCardMessageBtnClick; /** * 通过回调函数构建并发送消息 * @param callback 用于构建消息的回调函数 */ sendMsgBy(callback: (builder: MessageBuilder) => void): void; /** * 发送消息对象 * @param msg 要发送的消息对象 */ sendMsg(msg: Message): void; /** * 通过回调函数构建并发送用户消息 * @param callback 用于构建用户消息的回调函数 */ sendUserMsgBy(callback: (builder: UserMessageBuilder) => void): void; /** * 发送用户消息对象 * @param msg 要发送的用户消息对象 */ sendUserMsg(msg: UserMessage): void; /** * 获取机器人的配置 * @returns 机器人的配置对象 */ getConfig(): BotConfig; } //# sourceMappingURL=index.d.ts.map