UNPKG

cyberbot-next

Version:

cyberbot, 基于napcat-ts, nodejs,轻量qq机器人框架。

57 lines (56 loc) 2.17 kB
import { Plugin, NapcatClient, MessageContext, GenericPlugin, AllHandlers } from './types.js'; import * as cron from 'node-cron'; export type MessageType = 'message' | 'message.private' | 'message.group' | 'notice' | 'request'; export type MessageTypeMap = { 'message': AllHandlers['message']; 'message.private': AllHandlers['message.private']; 'message.group': AllHandlers['message.group']; 'notice': AllHandlers['notice']; 'request': AllHandlers['request']; }; export declare abstract class CybePlugin<T = NapcatClient> implements GenericPlugin<T> { protected client: NapcatClient; protected messageHandlers: Map<MessageType, (e: MessageContext) => void>; protected cronJobs: cron.ScheduledTask[]; protected currentContext: MessageContext | null; enabled: boolean; isSystemPlugin: boolean; abstract name: string; abstract version: string; description?: string; cron?: [string, (e: T) => void][]; initialize(client: NapcatClient): void; cleanup(): void; enable(): boolean; disable(): boolean; protected registerMessageHandler<K extends MessageType>(type: K, handler: (e: MessageTypeMap[K]) => void): void; protected abstract setup(): void; protected setupCronJobs(): void; protected cleanupCronJobs(): void; protected getClient(): NapcatClient | null; protected reply(content: any, quote?: boolean): Promise<{ message_id: number; }>; } export declare class PluginManager { private plugins; private client; private configPath; constructor(client: NapcatClient, configPath?: string); loadPlugin(plugin: Plugin, isSystemPlugin?: boolean): void; unloadPlugin(pluginName: string): boolean; enablePlugin(pluginName: string): boolean; disablePlugin(pluginName: string): boolean; reloadPlugin(pluginName: string): Promise<boolean>; private loadPluginFromFile; private updatePluginConfig; getLoadedPlugins(): string[]; getPluginInfo(): Array<{ name: string; version: string; description?: string; enabled: boolean; isSystem: boolean; }>; unloadAllPlugins(): void; }