Skip to content
This repository was archived by the owner on Aug 16, 2024. It is now read-only.

Commit e5973fd

Browse files
committed
修复一些错误;
1 parent 938bb22 commit e5973fd

File tree

2 files changed

+26
-16
lines changed

2 files changed

+26
-16
lines changed

include/events/message_event.hpp

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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_;

include/mirai_bot.hpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,8 +359,19 @@ namespace Cyan
359359
return we;
360360
}
361361
};
362-
363-
processors_.insert({T::GetMiraiEvent(), func });
362+
363+
// 特别处理通用消息事件
364+
if (T::GetMiraiEvent() == MiraiEvent::Message)
365+
{
366+
processors_.insert({ MiraiEvent::FriendMessage, func });
367+
processors_.insert({ MiraiEvent::GroupMessage, func });
368+
processors_.insert({ MiraiEvent::TempMessage, func });
369+
}
370+
else
371+
{
372+
processors_.insert({ T::GetMiraiEvent(), func });
373+
}
374+
364375
return *this;
365376
}
366377

0 commit comments

Comments
 (0)