修改消息
setChatMessages
修改聊天消息的数据。
typescript
async function setChatMessages(
chat_messages: Array<{ message_id: number } & (Partial<ChatMessage> | Partial<ChatMessageSwiped>)>,
option: SetChatMessagesOption = {}
): Promise<void>;
typescript
interface 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
事件
示例
typescript
await setChatMessages([{ message_id: 5, message: "设置楼层 5 当前消息页的文本" }]);
typescript
await setChatMessages([{
message_id: 5,
swipe_id: 3,
message: "设置楼层 5 第 3 页的文本"
}]);
typescript
await setChatMessages([{ message_id: 5, data: { 神乐光好感度: 5 } }], { refresh: 'none' });
typescript
await setChatMessages([{ message_id: 0, swipe_id: 2 }]);
typescript
const last_message_id = getLastMessageId();
await setChatMessages(_.range(last_message_id + 1).map(message_id => ({
message_id,
is_hidden: true
})));
注意
如果设置了当前会被发送给 ai 的消息文本 (正被使用且没被隐藏的消息页文本), 则 "仅格式提示词" 正则将会使用它而不是原来的消息。
rotateChatMessages
修改聊天消息的顺序,将原本顺序是 [begin, middle) [middle, end)
的楼层调整为 [middle, end) [begin, middle)
。
typescript
async function rotateChatMessages(
begin: number,
middle: number,
end: number,
option: RotateChatMessagesOption = {}
): Promise<void>;
typescript
interface RotateChatMessagesOption {
refresh?: 'none' | 'all';
}
参数
begin
- 类型:
number
- 描述: 修改前开头楼层的楼层号
middle
- 类型:
number
- 描述: 修改后将会被放到最开头的楼层号
end
- 类型:
number
- 描述: 修改前结尾楼层的楼层号 + 1
refresh?
- 类型:
'none' | 'all'
- 描述: 是否更新楼层在页面上的显示,只会更新已经被加载在网页上的楼层,并触发被更新楼层的 "仅格式显示" 正则; 默认为
'all'
'none'
: 不更新页面的显示'all'
: 重新载入整个聊天消息,将会触发tavern_events.CHAT_CHANGED
事件
示例
typescript
// 将最后一楼放到第 5 楼之前
await rotateChatMessages(5, getLastMessageId(), getLastMessageId() + 1);
typescript
// 将最后 3 楼放到第 1 楼之前
await rotateChatMessages(1, getLastMessageId() - 2, getLastMessageId() + 1);
typescript
// 将前 3 楼放到最后
await rotateChatMessages(0, 3, getLastMessageId() + 1);