@@ -15,12 +15,12 @@ namespace Cyan
1515
1616 enum class MessageType
1717 {
18- FriendMessage, // 好友消息
19- GroupMessage, // 群组消息
20- TempMessage // 临时消息
18+ FriendMessage, // 好友消息
19+ GroupMessage, // 群组消息
20+ TempMessage // 临时消息
2121 };
2222
23- // 通用消息事件 (可转换为 FriendMessage GroupMessage TempMessage)
23+ // 通用消息事件 (可转换为 FriendMessage GroupMessage TempMessage)
2424 class EXPORTED Message : public EventBase
2525 {
2626 public:
@@ -39,21 +39,21 @@ namespace Cyan
3939 FriendMessage ToFriendMessage () const
4040 {
4141 FriendMessage m;
42- m.Set (this -> ToJson () );
42+ m.Set (json_ );
4343 return m;
4444 }
4545
4646 GroupMessage ToGroupMessage () const
4747 {
4848 GroupMessage m;
49- m.Set (this -> ToJson () );
49+ m.Set (json_ );
5050 return m;
5151 }
5252
5353 TempMessage ToTempMessage () const
5454 {
5555 TempMessage m;
56- m.Set (this -> ToJson () );
56+ m.Set (json_ );
5757 return m;
5858 }
5959
@@ -81,32 +81,31 @@ namespace Cyan
8181 {
8282 messageType_ = MessageType::FriendMessage;
8383 friendMessage_.Set (j);
84+ friendMessage_.SetMiraiBot (bot_);
8485 }
8586 if (j[" type" ] == " GroupMessage" )
8687 {
8788 messageType_ = MessageType::GroupMessage;
8889 groupMessage_.Set (j);
90+ groupMessage_.SetMiraiBot (bot_);
8991 }
9092 if (j[" type" ] == " TempMessage" )
9193 {
9294 messageType_ = MessageType::TempMessage;
9395 tempMessage_.Set (j);
96+ tempMessage_.SetMiraiBot (bot_);
9497 }
9598 this ->MessageChain .Set (j[" messageChain" ]);
99+ json_ = j;
96100 return true ;
97101 }
98102 virtual json ToJson () const override
99103 {
100- switch (messageType_)
101- {
102- case MessageType::FriendMessage: return friendMessage_.ToJson ();
103- case MessageType::GroupMessage: return groupMessage_.ToJson ();
104- case MessageType::TempMessage: return tempMessage_.ToJson ();
105- default : throw std::runtime_error (" 错误的 MessageType ." );
106- }
104+ return json_;
107105 }
108106 private:
109107 MiraiBot* bot_;
108+ json json_;
110109 MessageType messageType_;
111110 FriendMessage friendMessage_;
112111 GroupMessage groupMessage_;
0 commit comments