From 6a9350d06c539d85eee1ff5940faeaab3b3cbe44 Mon Sep 17 00:00:00 2001 From: Shu-Ying <1754798088@qq.com> Date: Mon, 5 Oct 2026 21:13:04 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20#=20=E4=BF=AE=E5=A4=8D=E9=83=A8?= =?UTF-8?q?=E5=88=86=E9=80=82=E9=85=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mengsan/mode.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/mengsan/mode.js b/mengsan/mode.js index 49d31f1..98cbbf2 100644 --- a/mengsan/mode.js +++ b/mengsan/mode.js @@ -1912,7 +1912,25 @@ export async function createMengsanMode() { const style = lib.init.css(`${STYLE_PATH}/ui`, "style", resolve); style.addEventListener("error", resolve, { once: true }); }); - const identityMode = await game.loadModeAsync("identity"); + const identityMode = await new Promise((resolve, reject) => { + let received = false; + const receiveMode = mode => { + if (!mode || typeof mode !== "object" || mode.name !== "identity") { + reject(new Error("梦三启动失败:未取得有效的身份模式,请检查游戏核心与身份模式文件。")); + return; + } + received = true; + resolve(mode); + }; + // 部分核心仅通过回调交付模式;新版也可能返回 Promise。 + const loading = game.loadModeAsync("identity", receiveMode, reject); + if (loading && typeof loading.then === "function") { + Promise.resolve(loading).then(mode => { + // 回调版的 Promise 可能返回 undefined,此时模式已由回调交付。 + if (!received) receiveMode(mode); + }, reject); + } + }); const mode = createMode(identityMode); mode.splash = "ext:术樱包/pve/images/tianshu.jpg"; return mode;