修改消息
提示
请务必先阅读如何正确使用酒馆助手
点击查看对应类型定义文件 (可发给 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);