diff --git a/astrbot/core/platform/astr_message_event.py b/astrbot/core/platform/astr_message_event.py index f6eda07a9..9c0418be8 100644 --- a/astrbot/core/platform/astr_message_event.py +++ b/astrbot/core/platform/astr_message_event.py @@ -42,8 +42,6 @@ def __init__( """消息对象, AstrBotMessage。带有完整的消息结构。""" self.platform_meta = platform_meta """消息平台的信息, 其中 name 是平台的类型,如 aiocqhttp""" - self.session_id = session_id - """用户的会话 ID。可以直接使用下面的 unified_msg_origin""" self.role = "member" """用户是否是管理员。如果是管理员,这里是 admin""" self.is_wake = False @@ -51,12 +49,12 @@ def __init__( self.is_at_or_wake_command = False """是否是 At 机器人或者带有唤醒词或者是私聊(插件注册的事件监听器会让 is_wake 设为 True, 但是不会让这个属性置为 True)""" self._extras: dict[str, Any] = {} - self.session = MessageSesion( + self.session = MessageSession( platform_name=platform_meta.id, message_type=message_obj.type, session_id=session_id, ) - self.unified_msg_origin = str(self.session) + # self.unified_msg_origin = str(self.session) """统一的消息来源字符串。格式为 platform_name:message_type:session_id""" self._result: MessageEventResult | None = None """消息事件的结果""" @@ -72,6 +70,27 @@ def __init__( # back_compability self.platform = platform_meta + @property + def unified_msg_origin(self) -> str: + """统一的消息来源字符串。格式为 platform_name:message_type:session_id""" + return str(self.session) + + @unified_msg_origin.setter + def unified_msg_origin(self, value: str): + """设置统一的消息来源字符串。格式为 platform_name:message_type:session_id""" + self.new_session = MessageSession.from_str(value) + self.session = self.new_session + + @property + def session_id(self) -> str: + """用户的会话 ID。可以直接使用下面的 unified_msg_origin""" + return self.session.session_id + + @session_id.setter + def session_id(self, value: str): + """设置用户的会话 ID。可以直接使用下面的 unified_msg_origin""" + self.session.session_id = value + def get_platform_name(self): """获取这个事件所属的平台的类型(如 aiocqhttp, slack, discord 等)。