diff --git a/manifest.json b/manifest.json index 740894b1..b4ec933c 100644 --- a/manifest.json +++ b/manifest.json @@ -27,7 +27,7 @@ ], "injects": { "renderer": "./renderer.js", - "main": "./liteloader.cjs", + "main": "./napcat.cjs", "preload": "./preload.cjs" } } \ No newline at end of file diff --git a/src/common/framework/napcat.ts b/src/common/framework/napcat.ts index 19b70d91..ca08f1e3 100644 --- a/src/common/framework/napcat.ts +++ b/src/common/framework/napcat.ts @@ -1,5 +1,6 @@ import path, { dirname } from 'path'; import { fileURLToPath } from 'url'; +import fs from 'fs'; export const napcat_version = '2.0.0'; @@ -7,10 +8,21 @@ export class NapCatPathWrapper { binaryPath: string; logsPath: string; configPath: string; + cachePath: string; constructor(mainPath: string = dirname(fileURLToPath(import.meta.url))) { this.binaryPath = mainPath; this.logsPath = path.join(this.binaryPath, 'logs'); this.configPath = path.join(this.binaryPath, 'config'); + this.cachePath = path.join(this.binaryPath, 'cache'); + if (fs.existsSync(this.logsPath)) { + fs.mkdirSync(this.logsPath, { recursive: true }); + } + if (fs.existsSync(this.configPath)) { + fs.mkdirSync(this.configPath, { recursive: true }); + } + if (fs.existsSync(this.cachePath)) { + fs.mkdirSync(this.cachePath, { recursive: true }); + } } } diff --git a/src/common/utils/ConfigBase.ts b/src/common/utils/ConfigBase.ts index 3f4ca9d4..679f34a6 100644 --- a/src/common/utils/ConfigBase.ts +++ b/src/common/utils/ConfigBase.ts @@ -12,6 +12,7 @@ export class ConfigBase { constructor(coreContext: NapCatCore, configPath: string) { this.coreContext = coreContext; this.configPath = configPath; + fs.mkdirSync(this.configPath, { recursive: true }); this.read(); } @@ -20,21 +21,16 @@ export class ConfigBase { return null; } - getConfigDir() { - const configDir = path.resolve(this.configPath, 'config'); - fs.mkdirSync(configDir, { recursive: true }); - return configDir; - } getConfigPath(pathName: string | null): string { const suffix = pathName ? `_${pathName}` : ''; const filename = `${this.name}${suffix}.json`; - return path.join(this.getConfigDir(), filename); + return path.join(this.configPath, filename); } read() { // 尝试加载当前账号配置 - if (this.read_from_file(this.coreContext.selfInfo.uin, false)) return this; + if (this.read_from_file(this.coreContext.selfInfo.uin, false)) return this.config; // 尝试加载默认配置 return this.read_from_file('', true); } diff --git a/src/core/core.ts b/src/core/core.ts index 17d0c36d..10f6a0a0 100644 --- a/src/core/core.ts +++ b/src/core/core.ts @@ -1,4 +1,4 @@ -import { NTApiContext, WrapperNodeApi } from '@/core/wrapper'; +import { NodeQQNTWrapperUtil, NTApiContext, WrapperNodeApi } from '@/core/wrapper'; import path from 'node:path'; import fs from 'node:fs'; import { InstanceContext } from './wrapper'; @@ -35,11 +35,13 @@ export class NapCatCore { NapCatTempPath: string; // runtime info, not readonly selfInfo: SelfInfo; + util: NodeQQNTWrapperUtil; // 通过构造器递过去的 runtime info 应该尽量少 constructor(context: InstanceContext, selfInfo: SelfInfo) { this.selfInfo = selfInfo; this.context = context; + this.util = new this.context.wrapper.NodeQQNTWrapperUtil(); this.eventWrapper = new LegacyNTEventWrapper(context.wrapper, context.session); this.initNapCatCoreListeners().then().catch(console.error); this.ApiContext = { @@ -66,7 +68,7 @@ export class NapCatCore { } get dataPath(): string { - let result = this.context.wrapper.util.getNTUserDataInfoConfig(); + let result = this.util.getNTUserDataInfoConfig(); if (!result) { result = path.resolve(os.homedir(), './.config/QQ'); fs.mkdirSync(result, { recursive: true }); diff --git a/src/framework/napcat.cjs b/src/framework/napcat.cjs index fc3a424c..44a0bb37 100644 --- a/src/framework/napcat.cjs +++ b/src/framework/napcat.cjs @@ -127,7 +127,7 @@ async function NCInit() { await NCoreInitFramework(wrapperSession, wrapperLoginService, registerInitCallback); //console.log("[NapCat] [Info] NapCat初始化完成"); } catch (error) { - console.error('[NapCat] [Error] 初始化NapCat失败', error); + console.log('[NapCat] [Error] 初始化NapCat失败', error); } } diff --git a/vite.config.ts b/vite.config.ts index 1f0abd4e..d1258119 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -46,6 +46,8 @@ const FrameworkBaseConfigPlugin: PluginOption[] = [ cp({ targets: [ { src: './manifest.json', dest: 'dist' }, + { src: './src/external/napcat.json', dest: 'dist/config/' }, + { src: './src/external/onebot11.json', dest: 'dist/config/' }, { src: './src/framework/liteloader.cjs', dest: 'dist' }, { src: './src/framework/napcat.cjs', dest: 'dist' }, { src: './src/framework/preload.cjs', dest: 'dist' }, @@ -78,7 +80,9 @@ const ShellBaseConfigPlugin: PluginOption[] = [ // { src: './src/napcat.json', dest: 'dist/config/' }, // { src: './static/', dest: 'dist/static/', flatten: false }, // { src: './src/onebot11/onebot11.json', dest: 'dist/config/' }, - { src: './package.json', dest: 'dist' }, + { src: './src/external/napcat.json', dest: 'dist/config/' }, + { src: './src/external/onebot11.json', dest: 'dist/config/' }, + { src: './package.json', dest: 'dist' }, // { src: './README.md', dest: 'dist' }, // { src: './logo.png', dest: 'dist/logs' }, // ...(startScripts.map((startScript) => {