cyberbot-next
Version:
cyberbot, 基于napcat-ts, nodejs,轻量qq机器人框架。
57 lines (56 loc) • 2.17 kB
TypeScript
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;
}