Skip to content

修改世界书

提示

请务必先阅读如何正确使用酒馆助手

点击查看对应类型定义文件(可发给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

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

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)? 默认为性能更好的防抖渲染

返回值

示例

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

option?

一个可选的配置对象,包含以下属性:

  • render: debounced|immediate
    • 对于对世界书的更改, 世界书编辑器应该防抖渲染 (debounced) 还是立即渲染 (immediate)? 默认为性能更好的防抖渲染

返回值

示例

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

option?

一个可选的配置对象,包含以下属性:

  • render: debounced|immediate
    • 对于对世界书的更改, 世界书编辑器应该防抖渲染 (debounced) 还是立即渲染 (immediate)? 默认为性能更好的防抖渲染

返回值

示例

typescript
const { worldbook, deleted_entries } = await deleteWorldbookEntries('eramgt少女歌剧', entry => entry.name.includes('神乐光'));

作者:KAKAA, 青空莉想做舞台少女的狗