koishi-plugin-batch-recall
Version:
基于数据库的高阶撤回,支持撤回某用户的几条消息
64 lines (63 loc) • 1.99 kB
TypeScript
/**
* @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 {};