feat(chat): 增强回复功能,支持通过字符串指定并显示用户ID
为了让插件能更灵活地构造回复消息,而无需依赖完整的原始消息对象,本次提交引入了新的回复机制。 - `send_api` 新增 `reply_to` 参数,允许使用 `昵称(ID)` 格式的字符串直接指定回复目标。 - 统一更新了回复消息的显示格式,在回复引文中一并展示用户昵称和ID,避免因昵称重复造成混淆。
This commit is contained in:
@@ -715,12 +715,16 @@ class MessageHandler:
|
||||
reply_message = [Seg(type="text", data="(获取发言内容失败)")]
|
||||
sender_info: dict = message_detail.get("sender")
|
||||
sender_nickname: str = sender_info.get("nickname")
|
||||
sender_id = sender_info.get("user_id")
|
||||
seg_message: List[Seg] = []
|
||||
if not sender_nickname:
|
||||
logger.warning("无法获取被引用的人的昵称,返回默认值")
|
||||
seg_message.append(Seg(type="text", data="[回复 未知用户:"))
|
||||
else:
|
||||
seg_message.append(Seg(type="text", data=f"[回复<{sender_nickname}>:"))
|
||||
if sender_id:
|
||||
seg_message.append(Seg(type="text", data=f"[回复<{sender_nickname}({sender_id})>:"))
|
||||
else:
|
||||
seg_message.append(Seg(type="text", data=f"[回复<{sender_nickname}>:"))
|
||||
seg_message += reply_message
|
||||
seg_message.append(Seg(type="text", data="],说:"))
|
||||
return seg_message
|
||||
|
||||
Reference in New Issue
Block a user