修改消息
提示
请务必先阅读如何正确使用酒馆助手
点击查看对应类型定义文件 (可发给 AI 或 IDE 使用, 酒馆助手界面中提供了打包下载)
setChatMessages
修改聊天消息的数据
ts
function setChatMessages(
chat_messages: Array<{ message_id: number } & (Partial<ChatMessage> | Partial<ChatMessageSwiped>)>,
option: SetChatMessagesOption = {}
): Promise<void>;
ts
type SetChatMessagesOption = {
refresh?: 'none' | 'affected' | 'all';
}
参数
chat_messages
- 类型:
Array<{ message_id: number } & (Partial<ChatMessage> | Partial<ChatMessageSwiped>)>
- 描述: 要修改的消息, 必须包含
message_id
字段
refresh?
- 类型:
'none' | 'affected' | 'all'
- 描述: 是否更新楼层在页面上的显示, 只会更新已经被加载在网页上的楼层, 并触发被更新楼层的 "仅格式显示" 正则; 默认为
'affected'
'none'
: 不更新页面的显示'affected'
: 仅更新被影响楼层的显示, 更新显示时会发送tavern_events.USER_MESSAGE_RENDERED
或tavern_events.CHARACTER_MESSAGE_RENDERED
事件从而重新渲染前端'all'
: 重新载入整个聊天消息, 将会触发tavern_events.CHAT_CHANGED
事件
示例
ts
await setChatMessages([{message_id: 10, message: '新的消息'}]);
ts
await setChatMessages([{message_id: 0, swipes: ['开局1', '开局2']}])
ts
await setChatMessages([{message_id: 0, swipe_id: 2}]);
ts
const chat_message = getChatMessages(-2)[0];
_.set(chat_message.data, '神乐光好感度', 5);
await setChatMessages([{message_id: 0, data: chat_message.data}], {refresh: 'none'});
ts
const last_message_id = getLastMessageId();
await setChatMessages(_.range(last_message_id + 1).map(message_id => ({message_id, is_hidden: true})));
rotateChatMessages
修改聊天消息的顺序, 将原本顺序是 [begin, middle) [middle, end)
的楼层调整为 [middle, end) [begin, middle)
ts
function rotateChatMessages(
begin: number,
middle: number,
end: number,
option: RotateChatMessagesOption = {}
): Promise<void>;
ts
type RotateChatMessagesOption = {
refresh?: 'none' | 'all';
}
参数
begin
- 类型:
number
- 描述: 修改前开头楼层的楼层号
middle
- 类型:
number
- 描述: 修改后将会被放到最开头的楼层号
end
- 类型:
number
- 描述: 修改前结尾楼层的楼层号 + 1
refresh?
- 类型:
'none' | 'all'
- 描述: 是否更新楼层在页面上的显示, 只会更新已经被加载在网页上的楼层, 并触发被更新楼层的 "仅格式显示" 正则; 默认为
'all'
'none'
: 不更新页面的显示'all'
: 重新载入整个聊天消息, 将会触发tavern_events.CHAT_CHANGED
事件
示例
ts
// 将最后一楼放到第 5 楼之前
await rotateChatMessages(5, getLastMessageId(), getLastMessageId() + 1);
ts
// 将最后 3 楼放到第 1 楼之前
await rotateChatMessages(1, getLastMessageId() - 2, getLastMessageId() + 1);
ts
// 将前 3 楼放到最后
await rotateChatMessages(0, 3, getLastMessageId() + 1);