Skip to content

修改角色卡 ​

提示

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

点击查看对应类型定义文件 (可发给 AI 或 IDE 使用, 酒馆助手界面中提供了打包下载)

replaceCharacter ​

完全替换 character_name_or_id 角色卡的内容为 character

ts
function replaceCharacter(
  character_name_or_id: LiteralUnion<'current', string | `${string}.png`>,
  character: PartialDeep<Character>,
  { render }?: ReplaceCharacterOptions,
): Promise<void>
ts
interface ReplaceCharacterOptions {
  render?: 'debounced' | 'immediate' | 'none';
}

参数 ​

character_name_or_id ​

  • 类型: 'current' | string | `${string}.png`
  • 描述: 角色卡显示名称 (如 '少女歌剧') 或头像 id (角色卡文件名, 如 '少女歌剧.png'); 'current' 表示当前打开的角色卡

character ​

option? ​

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

  • render: debounced|immediate
    • 酒馆网页应该防抖渲染 (debounced)、立即渲染 (immediate) 还是不刷新前端显示 (none)? 默认为性能更好的防抖渲染

异常 ​

  • 如果角色卡不存在, 将会抛出异常
  • 如果访问后端失败, 将会抛出异常

示例 ​

ts
const character = await getCharacter('角色卡显示名称');
character.first_messages = ['新的开场白1', '新的开场白2'];
await replaceCharacter('角色卡显示名称', character);
ts
const character = await getCharacter('角色卡头像id.png');
character.extensions.regex_scripts = [];
await replaceCharacter('角色卡头像id.png', character);
ts
const character = await getCharacter('角色卡显示名称');
character.avatar = await fetch('https://example.com/avatar.png').then(response => response.blob());
await replaceCharacter('角色卡显示名称', character);

updateCharacterWith ​

用 updater 函数更新 character_name_or_id 角色卡

ts
function updateCharacterWith(
  character_name_or_id: LiteralUnion<'current', string | `${string}.png`>,
  updater: CharacterUpdater,
  { render }?: ReplaceCharacterOptions,
): Promise<Character>;
ts
type CharacterUpdater = ((character: Character) => Character) | ((character: Character) => Promise<Character>);

参数 ​

character_name_or_id ​

  • 类型: 'current' | string | `${string}.png`
  • 描述: 角色卡显示名称 (如 '少女歌剧') 或头像 id (角色卡文件名, 如 '少女歌剧.png'); 'current' 表示当前打开的角色卡

updater ​

  • 类型: CharacterUpdater
  • 描述: 用于更新角色卡的函数. 它应该接收角色卡内容作为参数, 并返回更新后的角色卡内容.

option? ​

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

  • render: debounced|immediate|none
    • 酒馆网页应该防抖渲染 (debounced)、立即渲染 (immediate) 还是不刷新前端显示 (none)? 默认为性能更好的防抖渲染

返回值 ​

异常 ​

  • 如果角色卡不存在, 将会抛出异常
  • 如果访问后端失败, 将会抛出异常

示例 ​

ts
await updateCharacterWith('角色卡显示名称', character => {
  character.first_messages = ['新的开场白1', '新的开场白2'];
  return character;
});
ts
await updateCharacterWith('角色卡头像id.png', character => {
  character.extensions.regex_scripts = [];
  return character;
});
ts
await updateCharacterWith('角色卡显示名称', character => {
  character.avatar = await fetch('https://example.com/avatar.png').then(response => response.blob());
  return character;
});