From 2f2c1f263ac4bf1f6d5429c7c0c0b598726cb35a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sun, 11 Aug 2024 00:44:37 +0800 Subject: [PATCH] chore:fix --- src/onebot/action/extends/GetFriendWithCategory.ts | 2 +- src/onebot/main.ts | 3 +++ src/onebot/network/active-http.ts | 3 ++- src/onebot/network/active-websocket.ts | 4 +++- src/onebot/network/index.ts | 6 +++++- src/onebot/network/passive-http.ts | 6 ++++-- src/onebot/network/passive-websocket.ts | 4 +++- 7 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/onebot/action/extends/GetFriendWithCategory.ts b/src/onebot/action/extends/GetFriendWithCategory.ts index ee10edb9..79ec2a15 100644 --- a/src/onebot/action/extends/GetFriendWithCategory.ts +++ b/src/onebot/action/extends/GetFriendWithCategory.ts @@ -1,6 +1,6 @@ +import { OB11Constructor } from '@/onebot/helper/data'; import BaseAction from '../BaseAction'; import { ActionName } from '../types'; -import { OB11Constructor } from '@/onebot/helper/constructor'; export class GetFriendWithCategory extends BaseAction { actionName = ActionName.GetFriendsWithCategory; diff --git a/src/onebot/main.ts b/src/onebot/main.ts index 14e4a648..c462b422 100644 --- a/src/onebot/main.ts +++ b/src/onebot/main.ts @@ -9,6 +9,7 @@ import { MessageUnique } from '@/common/utils/MessageUnique'; import { OB11Constructor } from '@/onebot/helper/data'; import { logOB11Message } from '@/onebot/helper/log'; import { proxiedListenerOf } from '@/common/utils/proxy-handler'; +import { createActionMap } from './action'; //OneBot实现类 export class NapCatOneBot11Adapter { @@ -50,8 +51,10 @@ export class NapCatOneBot11Adapter { this.context.logger.setLogSelfInfo(selfInfo); }).catch(this.context.logger.logError); this.context.logger.log(`[Notice] [OneBot11] ${serviceInfo}`); + let actions = createActionMap(this, this.core); let OB11NetworkManagerWrap = new OB11NetworkManager(); OB11NetworkManagerWrap.registerAdapter(new OB11PassiveHttpAdapter(ob11Config.http.port, ob11Config.token, this.core, this)); + OB11NetworkManagerWrap.registerAllActions(actions); OB11NetworkManagerWrap.openAllAdapters(); // Todo 开始启动NetWork await this.initMsgListener(); diff --git a/src/onebot/network/active-http.ts b/src/onebot/network/active-http.ts index 36986081..ad4dfbae 100644 --- a/src/onebot/network/active-http.ts +++ b/src/onebot/network/active-http.ts @@ -28,7 +28,8 @@ export class OB11ActiveHttpAdapter implements IOB11NetworkAdapter { registerHeartBeat() { // HttpPost 心跳 } - + registerActionMap(actionMap: Map>) { + } registerAction, P, R>(action: T) { // Passive http adapter does not need to register actions } diff --git a/src/onebot/network/active-websocket.ts b/src/onebot/network/active-websocket.ts index d394c0db..856626be 100644 --- a/src/onebot/network/active-websocket.ts +++ b/src/onebot/network/active-websocket.ts @@ -24,7 +24,9 @@ export class OB11ActiveWebSocketAdapter implements IOB11NetworkAdapter { this.coreContext = coreContext; this.onebotContext = onebotContext; } - + registerActionMap(actionMap: Map>) { + this.actionMap = actionMap; + } registerHeartBeat() { if (this.connection) { this.heartbeatTimer = setInterval(() => { diff --git a/src/onebot/network/index.ts b/src/onebot/network/index.ts index 49accd94..c31c9f62 100644 --- a/src/onebot/network/index.ts +++ b/src/onebot/network/index.ts @@ -7,6 +7,8 @@ export type OB11EmitEventContent = OB11BaseEvent | OB11Message; export interface IOB11NetworkAdapter { registerAction, P, R>(action: T): void; + registerActionMap(actionMap: Map>): void; + onEvent(event: T): void; open(): void | Promise; @@ -16,13 +18,15 @@ export interface IOB11NetworkAdapter { export class OB11NetworkManager { adapters: IOB11NetworkAdapter[] = []; - async getAllAdapters() { return this.adapters; } async openAllAdapters() { return Promise.all(this.adapters.map(adapter => adapter.open())); } + async registerAllActions(actions: Map>) { + return Promise.all(this.adapters.map(adapter => adapter.registerActionMap(actions))); + } async emitEvent(event: OB11EmitEventContent) { // Mlikiowa V2.0.0 Refactor Todo return Promise.all(this.adapters.map(adapter => adapter.onEvent(event))); diff --git a/src/onebot/network/passive-http.ts b/src/onebot/network/passive-http.ts index 425e538c..3051cf28 100644 --- a/src/onebot/network/passive-http.ts +++ b/src/onebot/network/passive-http.ts @@ -27,7 +27,9 @@ export class OB11PassiveHttpAdapter implements IOB11NetworkAdapter { registerAction, P, R>(action: T) { this.actionMap.set(action.actionName, action); } - + registerActionMap(actionMap: Map>) { + this.actionMap = actionMap; + } registerHeartBeat() { //空心跳 } @@ -52,7 +54,7 @@ export class OB11PassiveHttpAdapter implements IOB11NetworkAdapter { this.app.use(express.json()); - this.app.all('*', this.handleRequest.bind(this)); + this.app.all('/*', this.handleRequest.bind(this)); this.server.listen(this.port, () => { this.coreContext.context.logger.log(`HTTP server listening on port ${this.port}`); diff --git a/src/onebot/network/passive-websocket.ts b/src/onebot/network/passive-websocket.ts index 75c6f9fd..5e2e9934 100644 --- a/src/onebot/network/passive-websocket.ts +++ b/src/onebot/network/passive-websocket.ts @@ -44,7 +44,9 @@ export class OB11PassiveWebSocketAdapter implements IOB11NetworkAdapter { }); }); } - + registerActionMap(actionMap: Map>) { + this.actionMap = actionMap; + } registerAction, P, R>(action: T) { this.actionMap.set(action.actionName, action); }