fix: 一些异常类型

This commit is contained in:
手瓜一十雪 2024-11-05 10:07:56 +08:00
parent 479b971b0c
commit f7c1951191
2 changed files with 10 additions and 9 deletions

View File

@ -65,7 +65,7 @@ export abstract class PacketClient {
}): Promise<RecvPacketData> { }): Promise<RecvPacketData> {
return new Promise<RecvPacketData>((resolve, reject) => { return new Promise<RecvPacketData>((resolve, reject) => {
if (!this.isAvailable) { if (!this.isAvailable) {
throw new Error("WebSocket is not connected"); throw new Error("Packet Service is not available");
} }
this.sendCommandImpl(cmd, data, trace_id); this.sendCommandImpl(cmd, data, trace_id);
if (rsp) { if (rsp) {

View File

@ -3,14 +3,17 @@ import { NapCatCore } from "@/core";
import path, { dirname } from "path"; import path, { dirname } from "path";
import { fileURLToPath } from "url"; import { fileURLToPath } from "url";
import fs from "fs"; import fs from "fs";
import { console } from "inspector";
import { PacketClient } from "@/core/packet/client/client"; import { PacketClient } from "@/core/packet/client/client";
import { constants, platform, type } from "node:os"; import { constants } from "node:os";
import { LogWrapper } from "@/common/log"; import { LogWrapper } from "@/common/log";
export interface NativePacketExportType {
InitHook: (recv: string, send: string, callback: (type: number, uin: string, seq: number, cmd: string, hex_data: string) => void) => boolean;
SendPacket: (cmd: string, data: string, trace_id: string) => void;
}
export class NativePacketClient extends PacketClient { export class NativePacketClient extends PacketClient {
static supportedPlatforms = ['win32.x64']; static supportedPlatforms = ['win32.x64'];
private MoeHooExport: any = { exports: {} }; private MoeHooExport: { exports?: NativePacketExportType } = { exports: undefined };
protected constructor(core: NapCatCore) { protected constructor(core: NapCatCore) {
super(core); super(core);
@ -42,22 +45,20 @@ export class NativePacketClient extends PacketClient {
const platform = process.platform + '.' + process.arch; const platform = process.platform + '.' + process.arch;
const moehoo_path = path.join(dirname(fileURLToPath(import.meta.url)), './moehoo/moehoo.' + platform + '.node'); const moehoo_path = path.join(dirname(fileURLToPath(import.meta.url)), './moehoo/moehoo.' + platform + '.node');
process.dlopen(this.MoeHooExport, moehoo_path, constants.dlopen.RTLD_LAZY); process.dlopen(this.MoeHooExport, moehoo_path, constants.dlopen.RTLD_LAZY);
this.MoeHooExport.exports.InitHook(pid, recv, send, (type: number, uin: string, seq: number, cmd: string, hex_data: string) => { this.MoeHooExport.exports?.InitHook(recv, send, (type: number, uin: string, seq: number, cmd: string, hex_data: string) => {
const callback = this.cb.get(createHash('md5').update(Buffer.from(hex_data, 'hex')).digest('hex') + (type === 0 ? 'send' : 'recv')); const callback = this.cb.get(createHash('md5').update(Buffer.from(hex_data, 'hex')).digest('hex') + (type === 0 ? 'send' : 'recv'));
if (callback) { if (callback) {
callback({ seq, cmd, hex_data }); callback({ seq, cmd, hex_data });
} else { } else {
this.logger.logError(`Callback not found for hex_data: ${hex_data}`); this.logger.logError(`Callback not found for hex_data: ${hex_data}`);
} }
// TODO: cannot use console.log here, fxxk tx console.log('type:', type, 'uin:', uin, 'seq:', seq, 'cmd:', cmd, 'hex_data:', hex_data);
// Error [ERR_INSPECTOR_NOT_AVAILABLE]: Inspector is not available
// console.log('type:', type, 'uin:', uin, 'seq:', seq, 'cmd:', cmd, 'hex_data:', hex_data);
}); });
this.isAvailable = true; this.isAvailable = true;
} }
sendCommandImpl(cmd: string, data: string, trace_id: string): void { sendCommandImpl(cmd: string, data: string, trace_id: string): void {
this.MoeHooExport.exports.SendPacket(cmd, data, crypto.createHash('md5').update(trace_id).digest('hex')); this.MoeHooExport.exports?.SendPacket(cmd, data, crypto.createHash('md5').update(trace_id).digest('hex'));
} }
connect(cb: () => void): Promise<void> { connect(cb: () => void): Promise<void> {