| 2533 | 2533 | lastMessage.force_avatar = force_avatar; |
| 2534 | 2534 | lastMessage.original_avatar = original_avatar; |
| 2535 | 2535 | } |
| 2536 | | - |
| 2537 | | - // Kill this callback once the event fires |
| 2538 | | - eventSource.removeListener(event_types.CHARACTER_MESSAGE_RENDERED, restoreCharacter); |
| 2539 | 2536 | }; |
| 2540 | 2537 | |
| 2541 | 2538 | // Run generate and restore previous character on error |
| 2542 | 2539 | try { |
| 2543 | 2540 | toastr.info(`Asking ${character.name} something...`); |
| 2544 | 2541 | await Generate('ask_command'); |
| 2545 | | - } catch { |
| 2542 | + await saveChatConditional(); |
| 2543 | + } catch (error) { |
| 2544 | + console.error('Error running /ask command', error); |
| 2545 | + } finally { |
| 2546 | 2546 | restoreCharacter(); |
| 2547 | + |
| 2548 | + if (this_chid !== prevChId) { |
| 2549 | + toastr.error('It is strongly recommended to reload the page.', 'Something went wrong'); |
| 2550 | + } |
| 2547 | 2551 | } |
| 2548 | 2552 | |
| 2549 | | - // Restore previous character once message renders |
| 2550 | | - // Hack for generate |
| 2551 | | - eventSource.on(event_types.CHARACTER_MESSAGE_RENDERED, restoreCharacter); |
| 2552 | 2553 | return ''; |
| 2553 | 2554 | } |
| 2554 | 2555 | |