修改世界书
提示
请务必先阅读如何正确使用酒馆助手
点击查看对应类型定义文件(可发给AI或IDE使用,酒馆助手设置中提供了打包下载)
rebindGlobalWorldbooks
重新绑定全局世界书。
typescript
function rebindGlobalWorldbooks(worldbook_names: string[]): Promise<void>;
参数
worldbook_names
- 类型:
string[]
- 描述: 要全局开启的世界书名称列表
rebindCharWorldbooks
重新绑定角色卡世界书。
typescript
function rebindCharWorldbooks(character_name: 'current', char_worldbooks: CharWorldbooks): Promise<void>;
参数
character_name
- 类型:
'current' | string
- 描述: 角色卡名称, 'current' 表示当前打开的角色卡
char_worldbooks
- 类型:
CharWorldbooks
- 描述: 要对该角色卡绑定的世界书
rebindChatWorldbook
重新绑定聊天文件世界书。
typescript
function rebindChatWorldbook(chat_name: 'current', worldbook_name: string): Promise<void>;
参数
chat_name
- 类型:
'current' | string
- 描述: 聊天文件名称, 'current' 表示当前打开的聊天文件
replaceWorldbook
完全替换 worldbook_name
世界书的内容为 worldbook
typescript
function replaceWorldbook(
worldbook_name: string,
worldbook: PartialDeep<WorldbookEntry>[],
{ render }?: ReplaceWorldbookOptions,
): Promise<void>;
typescript
interface ReplaceWorldbookOptions {
render?: 'debounced' | 'immediate';
}
参数
worldbook_name
- 类型:
string
- 描述: 世界书名称
worldbook
- 类型:
PartialDeep<WorldbookEntry>[]
- 描述: 要替换的世界书内容
option?
一个可选的配置对象,包含以下属性:
render
:debounced|immediate
- 对于对世界书的更改, 世界书编辑器应该防抖渲染 (debounced) 还是立即渲染 (immediate)? 默认为性能更好的防抖渲染
示例
typescript
// 禁止所有条目递归, 保持其他设置不变
const worldbook = await getWorldbook("eramgt少女歌剧");
await replaceWorldbook(
'eramgt少女歌剧',
worldbook.map(entry => ({
...entry,
recursion: { prevent_incoming: true, prevent_outgoing: true, delay_until: null },
})),
);
typescript
const worldbook = await getWorldbook("eramgt少女歌剧");
_.remove(worldbook, entry => entry.name.includes('神乐光'));
await replaceWorldbook("eramgt少女歌剧", worldbook);
updateWorldbookWith
用 updater
函数更新世界书 worldbook_name
typescript
function updateWorldbookWith(
worldbook_name: string,
updater: WorldbookUpdater,
{ render }?: ReplaceWorldbookOptions,
): Promise<WorldbookEntry[]>;
typescript
type WorldbookUpdater =
| ((worldbook: WorldbookEntry[]) => PartialDeep<WorldbookEntry>[])
| ((worldbook: WorldbookEntry[]) => Promise<PartialDeep<WorldbookEntry>[]>);
参数
worldbook_name
- 类型:
string
- 描述: 世界书名称
updater
- 类型:
WorldbookUpdater
- 描述: 用于更新世界书的函数。它应该接收世界书条目作为参数,并返回更新后的世界书条目。
option?
一个可选的配置对象,包含以下属性:
render
:debounced|immediate
- 对于对世界书的更改, 世界书编辑器应该防抖渲染 (debounced) 还是立即渲染 (immediate)? 默认为性能更好的防抖渲染
返回值
- 更新后的世界书条目:
WorldbookEntry[]
示例
typescript
await updateWorldbookWith("eramgt少女歌剧", worldbook => worldbook.filter(entry => entry.name.includes('神乐光')));
createWorldbookEntries
向世界书 worldbook_name
中新增条目
typescript
function createWorldbookEntries(
worldbook_name: string,
new_entries: PartialDeep<WorldbookEntry>[],
{ render }?: ReplaceWorldbookOptions,
): Promise<{ worldbook: WorldbookEntry[]; new_entries: WorldbookEntry[] }>;
参数
worldbook_name
- 类型:
string
- 描述: 世界书名称
new_entries
- 类型:
PartialDeep<WorldbookEntry>[]
- 描述: 要新增的条目
option?
一个可选的配置对象,包含以下属性:
render
:debounced|immediate
- 对于对世界书的更改, 世界书编辑器应该防抖渲染 (debounced) 还是立即渲染 (immediate)? 默认为性能更好的防抖渲染
返回值
- 更新后的世界书条目:
WorldbookEntry[]
- 新增的条目:
WorldbookEntry[]
示例
typescript
const { worldbook, new_entries } = await createWorldbookEntries('eramgt少女歌剧', [{ name: '神乐光' }, {}]);
deleteWorldbookEntries
删除世界书 worldbook_name
中的条目
typescript
function deleteWorldbookEntries(
worldbook_name: string,
predicate: (entry: WorldbookEntry) => boolean,
{ render }?: ReplaceWorldbookOptions,
): Promise<{ worldbook: WorldbookEntry[]; deleted_entries: WorldbookEntry[] }>;
参数
worldbook_name
- 类型:
string
- 描述: 世界书名称
predicate
- 类型:
(entry: WorldbookEntry) => boolean
- 描述: 要删除的条目
option?
一个可选的配置对象,包含以下属性:
render
:debounced|immediate
- 对于对世界书的更改, 世界书编辑器应该防抖渲染 (debounced) 还是立即渲染 (immediate)? 默认为性能更好的防抖渲染
返回值
- 更新后的世界书条目:
WorldbookEntry[]
- 被删除的条目:
WorldbookEntry[]
示例
typescript
const { worldbook, deleted_entries } = await deleteWorldbookEntries('eramgt少女歌剧', entry => entry.name.includes('神乐光'));