Build NapCat Artifacts / Windows Loader Test (push) Canceled after 0s
Build NapCat Artifacts / Type Check & Test (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Framework (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Shell (push) Canceled after 0s
66 lines
2.6 KiB
Plaintext
66 lines
2.6 KiB
Plaintext
import { LogWrapper } from '../../helper/log';
|
|
export interface NativePacketExportType {
|
|
initHook?: (send: string, recv: string, callback: (type: PacketType, uin: string, cmd: string, seq: number, hex_data: string) => void, o3_hook: boolean) => boolean;
|
|
}
|
|
export type PacketType = 0 | 1;
|
|
export type PacketCallback = (data: {
|
|
type: PacketType;
|
|
uin: string;
|
|
cmd: string;
|
|
seq: number;
|
|
hex_data: string;
|
|
}) => void;
|
|
export declare class NativePacketHandler {
|
|
private readonly supportedPlatforms;
|
|
private readonly MoeHooExport;
|
|
protected readonly logger: LogWrapper;
|
|
private loaded;
|
|
private readonly listeners;
|
|
constructor({ logger }: {
|
|
logger: LogWrapper;
|
|
});
|
|
/**
|
|
* 添加监听器的通用方法
|
|
*/
|
|
private addListener;
|
|
/**
|
|
* 移除监听器的通用方法
|
|
*/
|
|
private removeListener;
|
|
/** 监听所有数据包 */
|
|
onAll(callback: PacketCallback): () => void;
|
|
/** 监听特定类型的数据包 (0: send, 1: recv) */
|
|
onType(type: PacketType, callback: PacketCallback): () => void;
|
|
/** 监听所有发送的数据包 */
|
|
onSend(callback: PacketCallback): () => void;
|
|
/** 监听所有接收的数据包 */
|
|
onRecv(callback: PacketCallback): () => void;
|
|
/** 监听特定cmd的数据包(不限type) */
|
|
onCmd(cmd: string, callback: PacketCallback): () => void;
|
|
/** 监听特定type和cmd的数据包(精确匹配) */
|
|
onExact(type: PacketType, cmd: string, callback: PacketCallback): () => void;
|
|
/** 一次性监听所有数据包 */
|
|
onceAll(callback: PacketCallback): () => void;
|
|
/** 一次性监听特定类型的数据包 */
|
|
onceType(type: PacketType, callback: PacketCallback): () => void;
|
|
/** 一次性监听所有发送的数据包 */
|
|
onceSend(callback: PacketCallback): () => void;
|
|
/** 一次性监听所有接收的数据包 */
|
|
onceRecv(callback: PacketCallback): () => void;
|
|
/** 一次性监听特定cmd的数据包 */
|
|
onceCmd(cmd: string, callback: PacketCallback): () => void;
|
|
/** 一次性监听特定type和cmd的数据包 */
|
|
onceExact(type: PacketType, cmd: string, callback: PacketCallback): () => void;
|
|
/** 移除特定的全局监听器 */
|
|
off(key: string, callback: PacketCallback): boolean;
|
|
/** 移除特定key下的所有监听器 */
|
|
offAll(key: string): void;
|
|
/** 移除所有监听器 */
|
|
removeAllListeners(): void;
|
|
/**
|
|
* 触发监听器 - 按优先级触发: 精确匹配 > cmd匹配 > type匹配 > 全局
|
|
*/
|
|
private emitPacket;
|
|
init(version: string): Promise<boolean>;
|
|
}
|