UNPKG

koishi-plugin-batch-recall

Version:

基于数据库的高阶撤回,支持撤回某用户的几条消息

64 lines (63 loc) 1.99 kB
/** * @module batch-recall * @description 支持批量撤回消息的Koishi插件 */ import { Context, Schema } from 'koishi'; export declare const name = "batch-recall"; export declare const inject: { required: string[]; }; /** * 消息存储结构接口 * @interface Message * @property {string} messageId - 消息的唯一标识符 * @property {string} userId - 发送消息的用户ID * @property {string} channelId - 消息所在的频道ID * @property {number} timestamp - 消息的时间戳 */ interface Message { messageId: string; userId: string; channelId: string; timestamp: number; } /** * 插件配置接口 * @interface Config * @property {string[]} whitelistedGuilds - 允许记录消息的频道ID列表 * @property {number} [maxMessagesPerUser] - 每个用户最多保存的消息数量 * @property {number} [maxMessageRetentionHours] - 消息最长保留时间(小时) * @property {number} [cleanupIntervalHours] - 自动清理消息的时间间隔(小时) */ export interface Config { whitelistedGuilds: string[]; maxMessagesPerUser?: number; maxMessageRetentionHours?: number; cleanupIntervalHours?: number; } declare module 'koishi' { interface Tables { messages: Message; } } /** * 插件配置模式定义 */ export declare const Config: Schema<Schemastery.ObjectS<{ maxMessagesPerUser: Schema<number, number>; maxMessageRetentionHours: Schema<number, number>; cleanupIntervalHours: Schema<number, number>; whitelistedGuilds: Schema<string[], string[]>; }>, Schemastery.ObjectT<{ maxMessagesPerUser: Schema<number, number>; maxMessageRetentionHours: Schema<number, number>; cleanupIntervalHours: Schema<number, number>; whitelistedGuilds: Schema<string[], string[]>; }>>; /** * 插件主函数 * @param {Context} ctx - Koishi上下文 * @param {Config} config - 插件配置 */ export declare function apply(ctx: Context, config: Config): void; export {};