From b91fd60a11ac7ea9fcba8fd2db251cca875191e7 Mon Sep 17 00:00:00 2001
From: Wx-2025 <351320169@qq.com>
Date: Wed, 9 Jul 2025 18:07:52 +0800
Subject: [PATCH] Update drawer.js
---
ui/drawer.js | 137 ++++++++++++++++++++++++++++++---------------------
1 file changed, 82 insertions(+), 55 deletions(-)
diff --git a/ui/drawer.js b/ui/drawer.js
index 431099c..8c18f88 100644
--- a/ui/drawer.js
+++ b/ui/drawer.js
@@ -63,9 +63,14 @@ async function loadSettings() {
}
export function createDrawer() {
-if ($("#amily2_main_drawer").length > 0) return;
+ const settings = extension_settings[extensionName];
+ const location = settings.iconLocation || 'topbar';
-const amily2DrawerHtml = `
+ if (location === 'topbar') {
+ if ($("#amily2_main_drawer").length > 0) return;
+
+
+ const amily2DrawerHtml = `
- `;
- $("#sys-settings-button").after(amily2DrawerHtml);
+ `;
+ $("#sys-settings-button").after(amily2DrawerHtml);
+ $(document).off("mousedown.amily2Drawer").on(
+ "mousedown.amily2Drawer",
+ "#amily2_drawer_icon",
+ async function (e) {
+ e.preventDefault();
+ e.stopPropagation();
-$(document).on(
- "mousedown",
- "#amily2_drawer_icon",
- async function (e) {
- e.preventDefault();
- e.stopPropagation();
+ const drawerIcon = $(this);
+ const contentPanel = $("#amily2_drawer_content");
- const drawerIcon = $(this);
- const contentPanel = $("#amily2_drawer_content");
-
-
-
- $('.openDrawer').not(contentPanel).not('.pinnedOpen').addClass('resizing').each((_, el) => {
- slideToggle(el, {
- ...getSlideToggleOptions(),
- onAnimationEnd: function (el) {
- el.closest('.drawer-content').classList.remove('resizing');
- },
+ $('.openDrawer').not(contentPanel).not('.pinnedOpen').addClass('resizing').each((_, el) => {
+ slideToggle(el, {
+ ...getSlideToggleOptions(),
+ onAnimationEnd: function (el) {
+ el.closest('.drawer-content').classList.remove('resizing');
+ },
+ });
});
- });
-
- $('.openIcon').not(drawerIcon).not('.drawerPinnedOpen').toggleClass('closedIcon openIcon');
- $('.openDrawer').not(contentPanel).not('.pinnedOpen').toggleClass('closedDrawer openDrawer');
-
- drawerIcon.toggleClass('closedIcon openIcon');
- contentPanel.toggleClass('closedDrawer openDrawer');
-
-
- contentPanel.addClass('resizing').each((_, el) => {
- slideToggle(el, {
- ...getSlideToggleOptions(),
- onAnimationEnd: function (el) {
- el.closest('.drawer-content').classList.remove('resizing');
- },
+ $('.openIcon').not(drawerIcon).not('.drawerPinnedOpen').toggleClass('closedIcon openIcon');
+ $('.openDrawer').not(contentPanel).not('.pinnedOpen').toggleClass('closedDrawer openDrawer');
+ drawerIcon.toggleClass('closedIcon openIcon');
+ contentPanel.toggleClass('closedDrawer openDrawer');
+ contentPanel.addClass('resizing').each((_, el) => {
+ slideToggle(el, {
+ ...getSlideToggleOptions(),
+ onAnimationEnd: function (el) {
+ el.closest('.drawer-content').classList.remove('resizing');
+ },
+ });
});
- });
+ const isInitialized = contentPanel.data("initialized");
+ if (drawerIcon.hasClass("openIcon") && !isInitialized) {
+ try {
+ const modalContent = await $.get(`${extensionFolderPath}/assets/amily2-modal.html`);
+ contentPanel.html(modalContent);
+ await loadSettings();
+ bindModalEvents();
+ contentPanel.data("initialized", true);
+ console.log("[Amily2号-建设部] 顶栏宫殿内室已根据最高指令激活。");
+ applyUpdateIndicator();
+ } catch (error) {
+ console.error("[Amily2号-建设部] 加载顶栏宫殿内部HTML失败:", error);
+ contentPanel.html('
紧急报告:无法加载Amily2号府邸内饰。
');
+ }
+ }
+ },
+ );
- const isInitialized = contentPanel.data("initialized");
- if (drawerIcon.hasClass("openIcon") && !isInitialized) {
+ } else if (location === 'extensions') {
+ if ($("#extensions_settings2 #amily2_chat_optimiser").length > 0) return;
+ const amilyFrameHtml = `
+
+ `;
+
+ $('#extensions_settings2').append(amilyFrameHtml);
+
+ (async () => {
try {
- const extensionFolderPath = `scripts/extensions/third-party/${extensionName}`;
- const modalContent = await $.get(
- `${extensionFolderPath}/assets/amily2-modal.html`,
- );
- contentPanel.html(modalContent);
- await loadSettings();
+ console.log("[Amily2号-建设部] 收到指令,开始在'扩展'官方区域建造宫殿。");
+ const modalContent = await $.get(`${extensionFolderPath}/assets/amily2-modal.html`);
+ $('#amily2_extension_frame .inline-drawer-content').html(modalContent);
+ await loadSettings();
bindModalEvents();
- contentPanel.data("initialized", true);
- console.log("[Amily2号-建设部] 宫殿内室已根据最高指令激活。");
- applyUpdateIndicator();
+ console.log("[Amily2号-建设部] '扩展'宫殿已根据最高指令建成并完全激活。");
+ applyUpdateIndicator();
+
} catch (error) {
- console.error("[Amily2号-建设部] 加载宫殿内部HTML失败:", error);
- contentPanel.html(
- '
紧急报告:无法加载Amily2号府邸内饰。
',
- );
+ console.error("[Amily2号-建设部] 在'扩展'区域加载宫殿HTML失败:", error);
+ $('#extensions_settings2').append('
紧急报告:在扩展区域建造Amily2号府邸时发生意外。
');
}
- }
- },
-);
+ })();
+ }
}