feat: Add default variables to character settings

This commit is contained in:
kwaroran
2024-05-27 12:09:04 +09:00
parent 608dad465b
commit 6d5be694d0
6 changed files with 43 additions and 4 deletions

View File

@@ -5,6 +5,7 @@ import { getModuleTriggers } from "./modules";
import { get } from "svelte/store";
import { CurrentCharacter, CurrentChat, selectedCharID } from "../stores";
import { processMultiCommand } from "./command";
import { parseKeyValue } from "../util";
export interface triggerscript{
comment: string;
@@ -94,13 +95,25 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{
promptend: ''
}
const triggers = char.triggerscript.concat(getModuleTriggers())
const db = get(DataBase)
const defaultVariables = parseKeyValue(char.defaultVariables).concat(parseKeyValue(db.templateDefaultVariables))
let chat = structuredClone(arg.chat ?? char.chats[char.chatPage])
if((!triggers) || (triggers.length === 0)){
return null
}
function getVar(key:string){
return `${chat.scriptstate?.['$' + key] ?? "null"}`
const state = chat.scriptstate?.['$' + key]
if(state === undefined || state === null){
const findResult = defaultVariables.find((f) => {
return f[0] === key
})
if(findResult){
return findResult[1]
}
return 'null'
}
return state.toString()
}
function setVar(key:string, value:string){