Merge pull request #2826 from SillyTavern/fix-ask Fix restoration of current character after /ask

ac03cbb0ab12c74f603adb342bb33287c0d8a5b4

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
1 files changed, +9 -8Ignore whitespace
public/scripts/slash-commands.js+9 -8
@@ -2533,22 +2533,23 @@ async function askCharacter(args, text) {
25332533 lastMessage.force_avatar = force_avatar;
25342534 lastMessage.original_avatar = original_avatar;
25352535 }
2536-
2537- // Kill this callback once the event fires
2538- eventSource.removeListener(event_types.CHARACTER_MESSAGE_RENDERED, restoreCharacter);
25392536 };
25402537
25412538 // Run generate and restore previous character on error
25422539 try {
25432540 toastr.info(`Asking ${character.name} something...`);
25442541 await Generate('ask_command');
2545- } catch {
2542+ await saveChatConditional();
2543+ } catch (error) {
2544+ console.error('Error running /ask command', error);
2545+ } finally {
25462546 restoreCharacter();
2547+
2548+ if (this_chid !== prevChId) {
2549+ toastr.error('It is strongly recommended to reload the page.', 'Something went wrong');
2550+ }
25472551 }
25482552
2549- // Restore previous character once message renders
2550- // Hack for generate
2551- eventSource.on(event_types.CHARACTER_MESSAGE_RENDERED, restoreCharacter);
25522553 return '';
25532554}
25542555