diff --git a/src/lib/Setting/Pages/BotSettings.svelte b/src/lib/Setting/Pages/BotSettings.svelte
index cb3e28f5..8033679f 100644
--- a/src/lib/Setting/Pages/BotSettings.svelte
+++ b/src/lib/Setting/Pages/BotSettings.svelte
@@ -643,6 +643,10 @@
{/if}
+
+
+
+
diff --git a/src/lib/Setting/Pages/Module/ModuleSettings.svelte b/src/lib/Setting/Pages/Module/ModuleSettings.svelte
index 80297193..a0adcb30 100644
--- a/src/lib/Setting/Pages/Module/ModuleSettings.svelte
+++ b/src/lib/Setting/Pages/Module/ModuleSettings.svelte
@@ -4,13 +4,14 @@
import { DBState } from 'src/ts/stores.svelte';
import Button from "src/lib/UI/GUI/Button.svelte";
import ModuleMenu from "src/lib/Setting/Pages/Module/ModuleMenu.svelte";
- import { exportModule, importModule, type RisuModule } from "src/ts/process/modules";
+ import { exportModule, importModule, refreshModules, type RisuModule } from "src/ts/process/modules";
import { DownloadIcon, Edit, TrashIcon, Globe, Share2Icon } from "lucide-svelte";
import { v4 } from "uuid";
import { tooltip } from "src/ts/gui/tooltip";
import { alertCardExport, alertConfirm, alertError } from "src/ts/alert";
import TextInput from "src/lib/UI/GUI/TextInput.svelte";
import { ShowRealmFrameStore } from "src/ts/stores.svelte";
+ import { onDestroy } from "svelte";
let tempModule:RisuModule = $state({
name: '',
description: '',
@@ -30,6 +31,12 @@
return score
})
}
+
+ onDestroy(() => {
+ if(DBState.db.moduleIntergration){
+ refreshModules()
+ }
+ })
{#if mode === 0}
{rmodule.name}
-
+
+
\ No newline at end of file
diff --git a/src/ts/parser.svelte.ts b/src/ts/parser.svelte.ts
index 6cd15b20..87f46090 100644
--- a/src/ts/parser.svelte.ts
+++ b/src/ts/parser.svelte.ts
@@ -10,7 +10,7 @@ import { SizeStore, selectedCharID } from './stores.svelte';
import { calcString } from './process/infunctions';
import { findCharacterbyId, getPersonaPrompt, getUserIcon, getUserName, parseKeyValue, sfc32, sleep, uuidtoNumber } from './util';
import { getInlayAsset } from './process/files/inlays';
-import { getModuleAssets, getModuleLorebooks } from './process/modules';
+import { getModuleAssets, getModuleLorebooks, getModules } from './process/modules';
import type { OpenAIChat } from './process/index.svelte';
import hljs from 'highlight.js/lib/core'
import 'highlight.js/styles/atom-one-dark.min.css'
@@ -1531,16 +1531,13 @@ function basicMatcher (p1:string,matcherArg:matcherArg,vars:{[key:string]:string
return dateTimeFormat(arra[1],t)
}
case 'module_enabled':{
- const selchar = db.characters[get(selectedCharID)]
- let enabledChatModules:string[] = []
- if(!selchar){
- enabledChatModules = selchar.chats[selchar.chatPage].modules ?? []
-
+ const modules = getModules()
+ for(const module of modules){
+ if(module.namespace === arra[1]){
+ return '1'
+ }
}
- const moduleId = db.modules.find((f) => {
- return f.name === arra[1]
- }).id
- return (db.enabledModules.includes(moduleId) || enabledChatModules.includes(moduleId)) ? '1' : '0'
+ return '0'
}
case 'filter':{
const array = parseArray(arra[1])
diff --git a/src/ts/process/modules.ts b/src/ts/process/modules.ts
index dae9b735..73a9b80d 100644
--- a/src/ts/process/modules.ts
+++ b/src/ts/process/modules.ts
@@ -268,7 +268,20 @@ function getModuleByIds(ids:string[]){
modules.push(module)
}
}
- return modules
+ return deduplicateModuleById(modules)
+}
+
+function deduplicateModuleById(modules:RisuModule[]){
+ let ids:string[] = []
+ let newModules:RisuModule[] = []
+ for(let i=0;i s.trim())
+ ids = ids.concat(intList)
+ }
const idsJoined = ids.join('-')
if(lastModules === idsJoined){
return lastModuleData
@@ -440,4 +457,9 @@ export function moduleUpdate(){
ReloadGUIPointer.set(get(ReloadGUIPointer) + 1)
lastModuleIds = ids
}
+}
+
+export function refreshModules(){
+ lastModules = ''
+ lastModuleData = []
}
\ No newline at end of file
diff --git a/src/ts/stores.svelte.ts b/src/ts/stores.svelte.ts
index 3a20b4f2..6ac312ca 100644
--- a/src/ts/stores.svelte.ts
+++ b/src/ts/stores.svelte.ts
@@ -115,6 +115,7 @@ $effect.root(() => {
DBState?.db?.characters?.[selIdState.selId]?.chats?.[DBState?.db?.characters?.[selIdState.selId]?.chatPage]?.modules?.length
DBState?.db?.characters?.[selIdState.selId]?.hideChatIcon
DBState?.db?.characters?.[selIdState.selId]?.backgroundHTML
+ DBState?.db?.moduleIntergration
moduleUpdate()
})
})
\ No newline at end of file