Fix Refresh RPG Info to treat placeholder data as first-time generation and remove cache clear popups

This commit is contained in:
Spicy_Marinara
2025-10-15 08:44:24 +02:00
parent 5a204df931
commit 8e624a807d
+69 -65
View File
@@ -903,74 +903,71 @@ function setupSettingsPopup() {
// Clear cache button // Clear cache button
$('#rpg-clear-cache').on('click', function() { $('#rpg-clear-cache').on('click', function() {
if (confirm('Are you sure you want to clear all cached RPG data for this chat? This will reset Stats, Info Box, and Mind Reading.')) { // Clear the data
// Clear the data lastGeneratedData.userStats = null;
lastGeneratedData.userStats = null; lastGeneratedData.infoBox = null;
lastGeneratedData.infoBox = null; lastGeneratedData.characterThoughts = null;
lastGeneratedData.characterThoughts = null;
// Clear committed tracker data (used for generation context) // Clear committed tracker data (used for generation context)
committedTrackerData.userStats = null; committedTrackerData.userStats = null;
committedTrackerData.infoBox = null; committedTrackerData.infoBox = null;
committedTrackerData.characterThoughts = null; committedTrackerData.characterThoughts = null;
// Clear all message swipe data // Clear all message swipe data
const chat = getContext().chat; const chat = getContext().chat;
if (chat && chat.length > 0) { if (chat && chat.length > 0) {
for (let i = 0; i < chat.length; i++) { for (let i = 0; i < chat.length; i++) {
const message = chat[i]; const message = chat[i];
if (message.extra && message.extra.rpg_companion_swipes) { if (message.extra && message.extra.rpg_companion_swipes) {
delete message.extra.rpg_companion_swipes; delete message.extra.rpg_companion_swipes;
// console.log('[RPG Companion] Cleared swipe data from message at index', i); // console.log('[RPG Companion] Cleared swipe data from message at index', i);
}
} }
} }
// Clear the UI
if ($infoBoxContainer) {
$infoBoxContainer.empty();
}
if ($thoughtsContainer) {
$thoughtsContainer.empty();
}
// Reset stats to defaults and re-render
extensionSettings.userStats = {
health: 100,
sustenance: 100,
energy: 100,
hygiene: 100,
arousal: 0,
mood: '😐',
conditions: 'None',
inventory: 'None'
};
// Reset classic stats (attributes) to defaults
extensionSettings.classicStats = {
str: 10,
dex: 10,
con: 10,
int: 10,
wis: 10,
cha: 10
};
// Clear dice roll
extensionSettings.lastDiceRoll = null;
// Save everything
saveChatData();
saveSettings();
// Re-render user stats and dice display
renderUserStats();
updateDiceDisplay();
updateChatThoughts(); // Clear the thought bubble in chat
// console.log('[RPG Companion] Chat cache cleared');
alert('Chat cache cleared successfully!');
} }
// Clear the UI
if ($infoBoxContainer) {
$infoBoxContainer.empty();
}
if ($thoughtsContainer) {
$thoughtsContainer.empty();
}
// Reset stats to defaults and re-render
extensionSettings.userStats = {
health: 100,
sustenance: 100,
energy: 100,
hygiene: 100,
arousal: 0,
mood: '😐',
conditions: 'None',
inventory: 'None'
};
// Reset classic stats (attributes) to defaults
extensionSettings.classicStats = {
str: 10,
dex: 10,
con: 10,
int: 10,
wis: 10,
cha: 10
};
// Clear dice roll
extensionSettings.lastDiceRoll = null;
// Save everything
saveChatData();
saveSettings();
// Re-render user stats and dice display
renderUserStats();
updateDiceDisplay();
updateChatThoughts(); // Clear the thought bubble in chat
// console.log('[RPG Companion] Chat cache cleared');
}); });
} }
@@ -1575,8 +1572,15 @@ async function updateRPGData() {
// characterThoughts: lastGeneratedData.characterThoughts ? 'exists' : 'null' // characterThoughts: lastGeneratedData.characterThoughts ? 'exists' : 'null'
// }); // });
// If there's no committed data yet (first time), commit immediately // If there's no committed data yet (first time) or only has placeholder data, commit immediately
if (!committedTrackerData.userStats && !committedTrackerData.infoBox && !committedTrackerData.characterThoughts) { const hasNoRealData = !committedTrackerData.userStats && !committedTrackerData.infoBox && !committedTrackerData.characterThoughts;
const hasOnlyPlaceholderData = (
(!committedTrackerData.userStats || committedTrackerData.userStats === '') &&
(!committedTrackerData.infoBox || committedTrackerData.infoBox === 'Info Box\n---\n' || committedTrackerData.infoBox === '') &&
(!committedTrackerData.characterThoughts || committedTrackerData.characterThoughts === 'Present Characters\n---\n' || committedTrackerData.characterThoughts === '')
);
if (hasNoRealData || hasOnlyPlaceholderData) {
committedTrackerData.userStats = parsedData.userStats; committedTrackerData.userStats = parsedData.userStats;
committedTrackerData.infoBox = parsedData.infoBox; committedTrackerData.infoBox = parsedData.infoBox;
committedTrackerData.characterThoughts = parsedData.characterThoughts; committedTrackerData.characterThoughts = parsedData.characterThoughts;