koishi-plugin-satori-ai
Version:
基于 Satori 适配器的智能对话插件,具备用户画像、长期记忆、常识管理和好感度系统
58 lines (57 loc) • 1.87 kB
TypeScript
import { Session, Context } from 'koishi';
declare module 'koishi' {
interface Events {
'game-result'(session: Session, result: gameResult): void;
}
}
export interface gameResult {
playerID: string;
message: string;
gameName: string;
}
/**
* 单局游戏的抽象基类,提供通用生命周期方法
*/
export declare abstract class abstractGameSingleGame {
protected session: Session;
protected disposeListener: () => boolean;
protected lastActionTime: number;
constructor(disposeListener: () => boolean, session: Session);
startGame(): Promise<string>;
endGame(): Promise<{
message: string;
gameName: string;
playerID: string;
}>;
getPlayerID(): string;
getLastActionTime(): number;
processInput(str: string): Promise<string>;
}
type Constructor<T> = new (...args: any[]) => T;
/**
* 游戏管理抽象基类,管理多个频道的游戏实例
*/
export declare abstract class abstractGame<T extends abstractGameSingleGame> {
protected gameClass: Constructor<T>;
protected channelGames: Map<string, T>;
constructor(GameClass: Constructor<T>);
/**
* 生成消息监听器,用于处理玩家输入
* @param userID 玩家ID
* @param guildID 服务器ID
* @returns 监听函数,将输入转发给对应频道的游戏实例
*/
protected listener: (userID: string, guildID: string) => ((session: Session) => void);
/**
* 启动游戏实例
* @param session 会话上下文
* @param ctx Koishi 上下文
* @param args 启动参数(如难度等级)
*/
startGame(session: Session, ctx: Context, args: string[]): Promise<abstractGameSingleGame | null>;
/**
* 结束游戏实例,触发结果事件
*/
endGame(session: Session, ctx: Context): Promise<boolean>;
}
export {};