/** * GroupHelper 主服务 * 使用 Koishi Service 模式注册为 ctx.groupHelper */ import { Context, Service } from 'koishi'; import { DataManager } from '../data'; import { BaseModule } from '../modules'; import { SettingsManager, PluginSettings } from '../settings'; import { CacheService } from './cache.service'; import { AuthService } from './auth.service'; import type { Subscription } from '../../types'; declare module 'koishi' { interface Context { groupHelper: GroupHelperService; } } export declare class GroupHelperService extends Service { static inject: string[]; /** 数据管理器 */ private _data; /** 功能模块注册表 */ private _modules; /** 设置管理器 */ private _settingsManager; /** 缓存服务 */ private _cache; /** 权限服务 */ private _auth; constructor(ctx: Context); /** 获取数据管理器 */ get data(): DataManager; /** 获取设置管理器 */ get settings(): SettingsManager; /** 获取插件配置(兼容旧代码) */ get pluginConfig(): PluginSettings; /** 获取缓存服务 */ get cache(): CacheService; /** 获取权限服务 */ get auth(): AuthService; /** * 注册模块 */ registerModule(module: BaseModule): void; /** * 获取模块 */ getModule(name: string): T | undefined; /** * 获取所有模块 */ getAllModules(): BaseModule[]; /** * 初始化所有模块 */ initModules(): Promise; /** * 异步预热缓存(不阻塞启动) */ private warmCacheAsync; /** * 获取订阅列表 */ getSubscriptions(): Subscription[]; /** * 添加订阅 */ addSubscription(subscription: Subscription): void; /** * 移除订阅 */ removeSubscription(type: string, id: string): boolean; /** * 向订阅者推送消息 */ pushMessage(bot: any, message: string, feature: keyof Subscription['features']): Promise; /** * 记录命令日志 */ logCommand(session: any, command: string, target: string, result: string): Promise; /** * 服务停止时调用 */ protected stop(): void; }