From 0d28f1a381da1d4cb307fed4e91fe8a07a5adbf6 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Tue, 28 May 2024 20:42:26 +0900 Subject: [PATCH] chore: Add truthy operator to trigger conditions --- src/lang/en.ts | 1 + src/lib/SideBars/Scripts/TriggerData.svelte | 3 ++- src/ts/process/triggers.ts | 10 ++++++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/lang/en.ts b/src/lang/en.ts index fb058aa4..f2091747 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -632,4 +632,5 @@ export const languageEnglish = { select: "Select", lowLevelAccessConfirm: "This character uses Low Level Access. which means this character can access the AI model and your storage directly. do you really want to import this character?", triggerLowLevelOnly: "This trigger only works with Low Level Access. to enable this trigger, enable Low Level Access in advanced settings in the character.", + truthy: "Truthy", } \ No newline at end of file diff --git a/src/lib/SideBars/Scripts/TriggerData.svelte b/src/lib/SideBars/Scripts/TriggerData.svelte index 4c4384a1..beb19b81 100644 --- a/src/lib/SideBars/Scripts/TriggerData.svelte +++ b/src/lib/SideBars/Scripts/TriggerData.svelte @@ -63,7 +63,7 @@ value.conditions.push({ type: 'value', value: '', - operator: '=', + operator: 'true', var: '' }) value.conditions = value.conditions @@ -139,6 +139,7 @@ {/if} {language.value} + {language.truthy} {language.equal} {language.notEqual} {language.greater} diff --git a/src/ts/process/triggers.ts b/src/ts/process/triggers.ts index a16bf646..4483c4bf 100644 --- a/src/ts/process/triggers.ts +++ b/src/ts/process/triggers.ts @@ -26,13 +26,13 @@ export type triggerConditionsVar = { type:'var'|'value' var:string value:string - operator:'='|'!='|'>'|'<'|'>='|'<='|'null' + operator:'='|'!='|'>'|'<'|'>='|'<='|'null'|'true' } export type triggerConditionsChatIndex = { type:'chatindex' value:string - operator:'='|'!='|'>'|'<'|'>='|'<='|'null' + operator:'='|'!='|'>'|'<'|'>='|'<='|'null'|'true' } export type triggerConditionsExists ={ @@ -186,6 +186,12 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{ const conditionValue = risuChatParser(condition.value,{chara:char}) varValue = risuChatParser(varValue,{chara:char}) switch(condition.operator){ + case 'true': { + if(varValue !== 'true' && varValue !== '1'){ + pass = false + } + break + } case '=': if(varValue !== conditionValue){ pass = false