#1777 Add await argument to /trigger command
This commit is contained in:
parent
d7f86a7f6b
commit
44a3bb8ec7
|
@ -154,7 +154,7 @@ parser.addCommand('sysgen', generateSystemMessage, [], '<span class="monospace">
|
||||||
parser.addCommand('ask', askCharacter, [], '<span class="monospace">(prompt)</span> – asks a specified character card a prompt', true, true);
|
parser.addCommand('ask', askCharacter, [], '<span class="monospace">(prompt)</span> – asks a specified character card a prompt', true, true);
|
||||||
parser.addCommand('delname', deleteMessagesByNameCallback, ['cancel'], '<span class="monospace">(name)</span> – deletes all messages attributed to a specified name', true, true);
|
parser.addCommand('delname', deleteMessagesByNameCallback, ['cancel'], '<span class="monospace">(name)</span> – deletes all messages attributed to a specified name', true, true);
|
||||||
parser.addCommand('send', sendUserMessageCallback, [], '<span class="monospace">(text)</span> – adds a user message to the chat log without triggering a generation', true, true);
|
parser.addCommand('send', sendUserMessageCallback, [], '<span class="monospace">(text)</span> – adds a user message to the chat log without triggering a generation', 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('trigger', triggerGenerationCallback, [], ' <span class="monospace">await=true/false</span> – triggers a message generation. If in group, can trigger a message for the specified group member index or name. If <code>await=true</code> named argument passed, the command will await for the triggered generation before continuing.', true, true);
|
||||||
parser.addCommand('hide', hideMessageCallback, [], '<span class="monospace">(message index or range)</span> – hides a chat message from the prompt', true, true);
|
parser.addCommand('hide', hideMessageCallback, [], '<span class="monospace">(message index or range)</span> – hides a chat message from the prompt', true, true);
|
||||||
parser.addCommand('unhide', unhideMessageCallback, [], '<span class="monospace">(message index or range)</span> – unhides a message from the prompt', true, true);
|
parser.addCommand('unhide', unhideMessageCallback, [], '<span class="monospace">(message index or range)</span> – unhides a message from the prompt', true, true);
|
||||||
parser.addCommand('disable', disableGroupMemberCallback, [], '<span class="monospace">(member index or name)</span> – disables a group member from being drafted for replies', true, true);
|
parser.addCommand('disable', disableGroupMemberCallback, [], '<span class="monospace">(member index or name)</span> – disables a group member from being drafted for replies', true, true);
|
||||||
|
@ -1029,8 +1029,9 @@ async function addGroupMemberCallback(_, arg) {
|
||||||
return character.name;
|
return character.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function triggerGenerationCallback(_, arg) {
|
async function triggerGenerationCallback(args, value) {
|
||||||
setTimeout(async () => {
|
const shouldAwait = isTrueBoolean(args?.await);
|
||||||
|
const outerPromise = new Promise((outerResolve) => setTimeout(async () => {
|
||||||
try {
|
try {
|
||||||
await waitUntilCondition(() => !is_send_press && !is_group_generating, 10000, 100);
|
await waitUntilCondition(() => !is_send_press && !is_group_generating, 10000, 100);
|
||||||
} catch {
|
} catch {
|
||||||
|
@ -1044,16 +1045,21 @@ async function triggerGenerationCallback(_, arg) {
|
||||||
|
|
||||||
let chid = undefined;
|
let chid = undefined;
|
||||||
|
|
||||||
if (selected_group && arg) {
|
if (selected_group && value) {
|
||||||
chid = findGroupMemberId(arg);
|
chid = findGroupMemberId(value);
|
||||||
|
|
||||||
if (chid === undefined) {
|
if (chid === undefined) {
|
||||||
console.warn(`WARN: No group member found for argument ${arg}`);
|
console.warn(`WARN: No group member found for argument ${value}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setTimeout(() => Generate('normal', { force_chid: chid }), 100);
|
outerResolve(new Promise(innerResolve => setTimeout(() => innerResolve(Generate('normal', { force_chid: chid })), 100)));
|
||||||
}, 1);
|
}, 1));
|
||||||
|
|
||||||
|
if (shouldAwait) {
|
||||||
|
const innerPromise = await outerPromise;
|
||||||
|
await innerPromise;
|
||||||
|
}
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue