From 4a3170c6618f71cba7c85f19716abc2a66cf06be Mon Sep 17 00:00:00 2001 From: Spicy_Marinara Date: Sat, 18 Oct 2025 13:21:41 +0200 Subject: [PATCH] Fix extension settings menu and persist committedTrackerData - Fixed extension settings not appearing in Extensions tab by appending to correct container (#extensions_settings2) - Added Discord and Support Creator buttons directly in JavaScript - Added persistence for committedTrackerData to maintain state across refreshes and restarts - Updated saveChatData() to include committedTrackerData in chat metadata - Updated loadChatData() to restore committedTrackerData from saved chat data --- index.js | 32 ++++++++++++++++++++++++++++---- src/core/persistence.js | 13 +++++++++++++ 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 5e67d9e..ebb968a 100644 --- a/index.js +++ b/index.js @@ -146,9 +146,33 @@ import { /** * Adds the extension settings to the Extensions tab. */ -async function addExtensionSettings() { - const settingsHtml = await renderExtensionTemplateAsync(extensionName, 'settings'); - $('#rpg_companion_container').append(settingsHtml); +function addExtensionSettings() { + const settingsHtml = ` +
+
+ RPG Companion +
+
+
+ + Toggle to enable/disable the RPG Companion extension. Configure additional settings within the panel itself. + +
+ + Discord + + + Support Creator + +
+
+
+ `; + + $('#extensions_settings2').append(settingsHtml); // Set up the enable/disable toggle $('#rpg-extension-enabled').prop('checked', extensionSettings.enabled).on('change', function() { @@ -430,7 +454,7 @@ jQuery(async () => { // Add extension settings to Extensions tab try { - await addExtensionSettings(); + addExtensionSettings(); } catch (error) { console.error('[RPG Companion] Failed to add extension settings tab:', error); // Don't throw - extension can still work without settings tab diff --git a/src/core/persistence.js b/src/core/persistence.js index 7db626d..e54527f 100644 --- a/src/core/persistence.js +++ b/src/core/persistence.js @@ -9,9 +9,11 @@ import { getContext } from '../../../../../extensions.js'; import { extensionSettings, lastGeneratedData, + committedTrackerData, setExtensionSettings, updateExtensionSettings, setLastGeneratedData, + setCommittedTrackerData, FEATURE_FLAGS } from './state.js'; import { migrateInventory } from '../utils/migration.js'; @@ -123,6 +125,7 @@ export function saveChatData() { userStats: extensionSettings.userStats, classicStats: extensionSettings.classicStats, lastGeneratedData: lastGeneratedData, + committedTrackerData: committedTrackerData, timestamp: Date.now() }; @@ -195,6 +198,11 @@ export function loadChatData() { characterThoughts: null, html: null }); + setCommittedTrackerData({ + userStats: null, + infoBox: null, + characterThoughts: null + }); return; } @@ -215,6 +223,11 @@ export function loadChatData() { setLastGeneratedData({ ...savedData.lastGeneratedData }); } + // Restore committed tracker data + if (savedData.committedTrackerData) { + setCommittedTrackerData({ ...savedData.committedTrackerData }); + } + // Migrate inventory in chat data if feature flag enabled if (FEATURE_FLAGS.useNewInventory && extensionSettings.userStats.inventory) { const migrationResult = migrateInventory(extensionSettings.userStats.inventory);