Still fighting /ask corruptions #2832

6a3b226da2846b5ee3d98a3b5b28f8bf26200c84

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

1 files changed, +7 -3Ignore whitespace
public/scripts/slash-commands.js+7 -3
@@ -2525,6 +2525,10 @@ async function askCharacter(args, text) {
25252525 setCharacterName(character.name);
25262526
25272527 const restoreCharacter = () => {
2528+ if (String(this_chid) !== String(chId)) {
2529+ return;
2530+ }
2531+
25282532 setCharacterId(prevChId);
25292533 setCharacterName(characters[prevChId].name);
25302534
@@ -2541,14 +2545,14 @@ async function askCharacter(args, text) {
25412545
25422546 // Run generate and restore previous character
25432547 try {
2548+ eventSource.once(event_types.MESSAGE_RECEIVED, restoreCharacter);
25442549 toastr.info(`Asking ${character.name} something...`);
25452550 askResult = await Generate('ask_command');
25462551 } catch (error) {
2552+ restoreCharacter();
25472553 console.error('Error running /ask command', error);
25482554 } finally {
2549- restoreCharacter();
2555+ if (String(this_chid) === String(prevChId)) {
2550-
2551- if (this_chid === prevChId) {
25522556 await saveChatConditional();
25532557 } else {
25542558 toastr.error('It is strongly recommended to reload the page.', 'Something went wrong');