From 0c7dcae984ed9df40cc07374d590e7b379d951e3 Mon Sep 17 00:00:00 2001 From: yan Date: Sat, 17 Jan 2026 03:45:13 +0800 Subject: [PATCH] =?UTF-8?q?fix(FullyAutoAndSemiAutoTools):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E8=AE=BE=E7=BD=AE=E8=BF=87=E6=BB=A4=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=92=8C=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修正了levelName过滤条件,从排除改为包含匹配项 - 修复了recordPaths变量声明和赋值的格式问题 - 修正了needRunMap的日志输出格式,使用数组展开语法 - 添加了configSettings检查,避免重复初始化设置 - 修复了getMultiCheckboxMap函数中的语法格式问题 - 修正了multiCheckboxMap日志输出的格式问题 --- repo/js/FullyAutoAndSemiAutoTools/main.js | 52 ++++++++++++----------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/repo/js/FullyAutoAndSemiAutoTools/main.js b/repo/js/FullyAutoAndSemiAutoTools/main.js index c2a1955bd..97b74b9e6 100644 --- a/repo/js/FullyAutoAndSemiAutoTools/main.js +++ b/repo/js/FullyAutoAndSemiAutoTools/main.js @@ -435,7 +435,7 @@ async function init() { (a, b) => b.level - a.level )) settingsNameList = settingsNameList.concat(Array.from(await getMultiCheckboxMap().then(map => { - return map.keys().filter(key => !key.startsWith(levelName)) + return map.keys().filter(key => key.startsWith(levelName)) }))) log.debug(`settingsNameList:{0}`, JSON.stringify(settingsNameList)) settingsNameList.filter(key => { @@ -464,11 +464,11 @@ async function init() { return {name: item.name, parent_name: item.parent_name, selected: matchedElement || "", path: item.path} }); // 1. 预处理:将 Set/Map 转为数组,避免循环内重复转换 - let recordPaths ; + let recordPaths; try { - recordPaths=Array.from(RecordPath.paths) - }catch (e) { - recordPaths =[] + recordPaths = Array.from(RecordPath.paths) + } catch (e) { + recordPaths = [] } const timeConfigs = Array.from(timeJson); log.info(`list:{0}`, JSON.stringify(...list)) @@ -527,7 +527,7 @@ async function init() { log.debug(`[CD]{0}[CD]`, JSON.stringify([...timeFilter])) log.debug(`[RUN]{0}[RUN]`, JSON.stringify([...list])) } - log.info(`NEED-RUN:{0}`, JSON.stringify(...needRunMap)) + log.info(`NEED-RUN:{0}`, JSON.stringify([...needRunMap])) // 启用自动拾取的实时任务,并配置成启用急速拾取模式 // dispatcher.addTrigger(new RealtimeTimer("AutoPick")); await realTimeMissions() @@ -858,24 +858,26 @@ function addUniquePath(obj, list = PATHING_ALL) { async function initSettings(prefix = undefined) { // 默认设置文件路径 let settings_ui = "settings.json"; - try { - // 读取并解析manifest.json文件 - manifest = manifest ? manifest : JSON.parse(file.readTextSync(manifest_json)); - // 调试日志:输出manifest内容 - // log.debug("manifest={key}", manifest); - // 调试日志:输出manifest中的settings_ui配置 - log.debug("settings_ui={key}", manifest.settings_ui); - log.info(`|脚本名称:{name},版本:{version}`, manifest.name, manifest.version); - if (manifest.bgi_version) { - log.info(`|最小可执行BGI版本:{bgi_version}`, manifest.bgi_version); + if (!configSettings) { + try { + // 读取并解析manifest.json文件 + manifest = manifest ? manifest : JSON.parse(file.readTextSync(manifest_json)); + // 调试日志:输出manifest内容 + // log.debug("manifest={key}", manifest); + // 调试日志:输出manifest中的settings_ui配置 + log.debug("settings_ui={key}", manifest.settings_ui); + log.info(`|脚本名称:{name},版本:{version}`, manifest.name, manifest.version); + if (manifest.bgi_version) { + log.info(`|最小可执行BGI版本:{bgi_version}`, manifest.bgi_version); + } + log.info(`|脚本作者:{authors}\n`, manifest.authors.map(a => a.name).join(",")); + // 更新settings_ui变量为manifest中指定的路径 + settings_ui = manifest.settings_ui + settings_ui = prefix ? prefix + settings_ui : settings_ui + } catch (error) { + // 捕获并记录可能的错误 + log.warn("{error}", error.message); } - log.info(`|脚本作者:{authors}\n`, manifest.authors.map(a => a.name).join(",")); - // 更新settings_ui变量为manifest中指定的路径 - settings_ui = manifest.settings_ui - settings_ui = prefix ? prefix + settings_ui : settings_ui - } catch (error) { - // 捕获并记录可能的错误 - log.warn("{error}", error.message); } // 读取并解析设置文件 const settingsJson = JSON.parse(file.readTextSync(settings_ui)); @@ -897,7 +899,7 @@ async function initSettings(prefix = undefined) { */ async function getMultiCheckboxMap() { // 如果configSettings存在则使用它,否则调用initSettings()函数获取 - const settingsJson =await initSettings(); + const settingsJson = await initSettings(); // 创建一个新的Map对象用于存储多复选框的配置 // Map结构为: {名称: 选项数组} let multiCheckboxMap = new Map([]); @@ -915,7 +917,7 @@ async function getMultiCheckboxMap() { // multiCheckboxMap.set(name, options); multiCheckboxMap.set(name, {label: `${label}`, options: [...options]}); }) - log.debug("multiCheckboxMap={key}", JSON.stringify(Array.from(multiCheckboxMap))) + log.debug("multiCheckboxMap={key}", JSON.stringify(Array.from(multiCheckboxMap))) // 返回包含多复选框配置的Map return multiCheckboxMap }