Compare commits

...

4 Commits

Author SHA1 Message Date
手瓜一十雪
93904dcb1b fix: 删除的移除 2024-11-25 15:45:07 +08:00
手瓜一十雪
86cbdf793a Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-11-25 15:36:01 +08:00
手瓜一十雪
56b1b9b598 chore: 移除开发debug 2024-11-25 15:35:48 +08:00
Mlikiowa
f7ec3ae131 release: v4.1.20 2024-11-25 07:16:41 +00:00
5 changed files with 26 additions and 13 deletions

View File

@@ -4,7 +4,7 @@
"name": "NapCatQQ",
"slug": "NapCat.Framework",
"description": "高性能的 OneBot 11 协议实现",
"version": "4.1.19",
"version": "4.1.20",
"icon": "./logo.png",
"authors": [
{

View File

@@ -2,7 +2,7 @@
"name": "napcat",
"private": true,
"type": "module",
"version": "4.1.19",
"version": "4.1.20",
"scripts": {
"build:framework": "npm run build:webui && vite build --mode framework || exit 1",
"build:shell": "npm run build:webui && vite build --mode shell || exit 1",

View File

@@ -1 +1 @@
export const napCatVersion = '4.1.19';
export const napCatVersion = '4.1.20';

View File

@@ -181,15 +181,20 @@ export class NapCatOneBot11Adapter {
const newLog = await this.creatOneBotLog(now);
this.context.logger.log(`[Notice] [OneBot11] 配置变更前:\n${prevLog}`);
this.context.logger.log(`[Notice] [OneBot11] 配置变更后:\n${newLog}`);
await this.handleConfigChange(now.network.httpServers, OB11PassiveHttpAdapter);
await this.handleConfigChange(now.network.httpClients, OB11ActiveHttpAdapter);
await this.handleConfigChange(now.network.websocketServers, OB11PassiveWebSocketAdapter);
await this.handleConfigChange(now.network.websocketClients, OB11ActiveWebSocketAdapter);
await this.handleConfigChange(prev.network.httpServers, now.network.httpServers, OB11PassiveHttpAdapter);
await this.handleConfigChange(prev.network.httpClients, now.network.httpClients, OB11ActiveHttpAdapter);
await this.handleConfigChange(prev.network.websocketServers, now.network.websocketServers, OB11PassiveWebSocketAdapter);
await this.handleConfigChange(prev.network.websocketClients, now.network.websocketClients, OB11ActiveWebSocketAdapter);
}
private async handleConfigChange(adapters: NetworkConfigAdapter[], adapterClass: new (...args: any[]) => IOB11NetworkAdapter): Promise<void> {
for (const adapterConfig of adapters) {
private async handleConfigChange(
prevConfig: NetworkConfigAdapter[],
nowConfig: NetworkConfigAdapter[],
adapterClass: new (...args: any[]) => IOB11NetworkAdapter
): Promise<void> {
// 通知新配置重载 删除关闭的 加入新开的
for (const adapterConfig of nowConfig) {
const existingAdapter = this.networkManager.findSomeAdapter(adapterConfig.name);
if (existingAdapter) {
const networkChange = await existingAdapter.reload(adapterConfig);
@@ -201,6 +206,16 @@ export class NapCatOneBot11Adapter {
await this.networkManager.registerAdapterAndOpen(newAdapter);
}
}
// 比较旧的找不到的回收
for (const adapterConfig of prevConfig) {
const existingAdapter = nowConfig.find((e) => e.name === adapterConfig.name);
if (!existingAdapter) {
const existingAdapter = this.networkManager.findSomeAdapter(adapterConfig.name);
if (existingAdapter) {
await this.networkManager.closeSomeAdaterWhenOpen([existingAdapter]);
}
}
}
}
private initMsgListener() {

View File

@@ -198,13 +198,11 @@ export class OB11PassiveWebSocketAdapter implements IOB11NetworkAdapter {
this.open();
return OB11NetworkReloadType.NetWorkOpen;
} else if (!newConfig.enable && wasEnabled) {
console.log(newConfig.enable, wasEnabled);
this.close();
return OB11NetworkReloadType.NetWorkClose;
}
if (oldPort !== newConfig.port || oldHost !== newConfig.host) {
console.log(oldPort, newConfig.port, oldHost, newConfig.host);
this.close();
this.wsServer = new WebSocketServer({
port: newConfig.port,