diff --git a/astrbot/core/message/components.py b/astrbot/core/message/components.py index 44caa2075..d136013ca 100644 --- a/astrbot/core/message/components.py +++ b/astrbot/core/message/components.py @@ -353,16 +353,20 @@ class Node(BaseMessageComponent): id: T.Optional[int] = 0 # 忽略 name: T.Optional[str] = "" # qq昵称 uin: T.Optional[int] = 0 # qq号 - content: T.Optional[T.Union[str, list]] = "" # 子消息段列表 + content: T.Optional[T.Union[str, list, dict]] = "" # 子消息段列表 seq: T.Optional[T.Union[str, list]] = "" # 忽略 time: T.Optional[int] = 0 - def __init__(self, content: T.Union[str, list], **_): + def __init__(self, content: T.Union[str, list, dict, "Node"], **_): if isinstance(content, list): _content = "" for chain in content: _content += chain.toString() content = _content + elif isinstance(content, Node): + content = content.toDict() + else: + content = content super().__init__(content=content, **_) def toString(self):