diff --git a/public/script.js b/public/script.js index 6a7bd1df8..bd3a39f54 100644 --- a/public/script.js +++ b/public/script.js @@ -7692,7 +7692,9 @@ jQuery(async function () { $("#send_but").on('click', function () { if (is_send_press == false) { - is_send_press = true; + // This prevents from running /trigger command with a send button + // But send on Enter doesn't set is_send_press (it is done by the Generate itself) + // is_send_press = true; Generate(); } }); diff --git a/public/scripts/slash-commands.js b/public/scripts/slash-commands.js index 3b7ce858c..bc4c1f266 100644 --- a/public/scripts/slash-commands.js +++ b/public/scripts/slash-commands.js @@ -29,6 +29,7 @@ import { deactivateSendButtons, activateSendButtons, main_api, + is_send_press, } from "../script.js"; import { getMessageTimeStamp } from "./RossAscends-mods.js"; import { findGroupMemberId, groups, is_group_generating, resetSelectedGroup, saveGroupChat, selected_group } from "./group-chats.js"; @@ -153,7 +154,7 @@ parser.addCommand('sysgen', generateSystemMessage, [], ' parser.addCommand('ask', askCharacter, [], '(prompt) – asks a specified character card a prompt', true, true); parser.addCommand('delname', deleteMessagesByNameCallback, ['cancel'], '(name) – deletes all messages attributed to a specified name', true, true); parser.addCommand('send', sendUserMessageCallback, ['add'], '(text) – adds a user message to the chat log without triggering a generation', true, true); -parser.addCommand('trigger', triggerGroupMessageCallback, [], '(member index or name) – triggers a message generation for the specified group member', true, true); +parser.addCommand('trigger', triggerGenerationCallback, [], ' – triggers a message generation. If in group, can trigger a message for the specified group member index or name.', true, true); parser.addCommand('hide', hideMessageCallback, [], '(message index or range) – hides a chat message from the prompt', true, true); parser.addCommand('unhide', unhideMessageCallback, [], '(message index or range) – unhides a message from the prompt', true, true); parser.addCommand('disable', disableGroupMemberCallback, [], '(member index or name) – disables a group member from being drafted for replies', true, true); @@ -864,28 +865,26 @@ async function addGroupMemberCallback(_, arg) { return character.name; } -async function triggerGroupMessageCallback(_, arg) { - if (!selected_group) { - toastr.warning("Cannot run /trigger command outside of a group chat."); - return ''; - } - - if (is_group_generating) { - toastr.warning("Cannot run trigger command while the group reply is generating."); +async function triggerGenerationCallback(_, arg) { + if (is_send_press || is_group_generating) { + toastr.warning("Cannot run trigger command while the reply is being generated."); return ''; } // Prevent generate recursion $('#send_textarea').val('').trigger('input'); - const chid = findGroupMemberId(arg); + let chid = undefined; - if (chid === undefined) { - console.warn(`WARN: No group member found for argument ${arg}`); - return ''; + if (selected_group && arg) { + chid = findGroupMemberId(arg); + + if (chid === undefined) { + console.warn(`WARN: No group member found for argument ${arg}`); + } } - Generate('normal', { force_chid: chid }); + setTimeout(() => Generate('normal', { force_chid: chid }), 100); return ''; }