feat: Add new triggers

This commit is contained in:
kwaroran
2024-05-29 18:30:54 +09:00
parent 4da60c1c22
commit f1777aba2c
3 changed files with 143 additions and 19 deletions

View File

@@ -23,7 +23,7 @@ export interface triggerscript{
export type triggerCondition = triggerConditionsVar|triggerConditionsExists|triggerConditionsChatIndex
export type triggerEffect = triggerEffectImgGen|triggerEffectRegex|triggerEffectRunLLM|triggerEffectCheckSimilarity|triggerEffectSendAIprompt|triggerEffectShowAlert|triggerEffectSetvar|triggerEffectSystemPrompt|triggerEffectImpersonate|triggerEffectCommand|triggerEffectStop|triggerEffectRunTrigger
export type triggerEffect = triggerEffectCutChat|triggerEffectModifyChat|triggerEffectImgGen|triggerEffectRegex|triggerEffectRunLLM|triggerEffectCheckSimilarity|triggerEffectSendAIprompt|triggerEffectShowAlert|triggerEffectSetvar|triggerEffectSystemPrompt|triggerEffectImpersonate|triggerEffectCommand|triggerEffectStop|triggerEffectRunTrigger
export type triggerConditionsVar = {
type:'var'|'value'
@@ -52,6 +52,18 @@ export interface triggerEffectSetvar{
value:string
}
export interface triggerEffectCutChat{
type: 'cutchat',
start: string,
end: string
}
export interface triggerEffectModifyChat{
type: 'modifychat',
index: string,
value: string
}
export interface triggerEffectSystemPrompt{
type: 'systemprompt',
location: 'start'|'historyend'|'promptend',
@@ -345,6 +357,20 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{
}
break
}
case 'cutchat':{
const start = Number(risuChatParser(effect.start,{chara:char}))
const end = Number(risuChatParser(effect.end,{chara:char}))
chat.message = chat.message.slice(start,end)
break
}
case 'modifychat':{
const index = Number(risuChatParser(effect.index,{chara:char}))
const value = risuChatParser(effect.value,{chara:char})
if(chat.message[index]){
chat.message[index].data = value
}
break
}
// low level access only
case 'showAlert':{