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

Commit fd83d1b

Browse files
committed
MiraiBot 增强对 Method Chaining 的支持
1 parent 07c7931 commit fd83d1b

File tree

2 files changed

+11
-12
lines changed

2 files changed

+11
-12
lines changed

examples/FetchEventsViahHTTP.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,17 @@ int main()
2424
}
2525
cout << "成功登录 bot。" << endl;
2626

27-
bot.OnEventReceived<GroupMessage>(
27+
bot.On<GroupMessage>(
2828
[&](GroupMessage gm)
2929
{
3030
gm.QuoteReply(gm.MessageChain);
31-
});
32-
33-
bot.OnEventReceived<FriendMessage>(
31+
})
32+
.On<FriendMessage>(
3433
[&](FriendMessage fm)
3534
{
3635
fm.Reply("你好呀, " + fm.MessageChain);
37-
});
38-
39-
bot.OnEventReceived<TempMessage>(
36+
})
37+
.On<TempMessage>(
4038
[&](TempMessage tm)
4139
{
4240
tm.Reply(tm.MessageChain);
@@ -50,7 +48,7 @@ int main()
5048
cout << "轮询事件时出错: " << errMsg << endl;
5149
});
5250

53-
// 默认参数是在 cerr 输出错误
51+
// 无参数则会在 cerr 输出错误
5452
// bot.EventLoop();
5553

5654
return 0;

include/mirai_bot.hpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ namespace Cyan
6363
FriendMessage GetFriendMessageFromId(MessageId mid);
6464
GroupMessage GetGroupMessageFromId(MessageId mid);
6565
template<typename T>
66-
void On(const EventProcessor<T>& ep)
66+
MiraiBot& On(const EventProcessor<T>& ep)
6767
{
68-
OnEventReceived<T>(ep);
68+
return OnEventReceived<T>(ep);
6969
}
7070
template<typename T>
71-
void OnEventReceived(const EventProcessor<T>& ep);
71+
MiraiBot& OnEventReceived(const EventProcessor<T>& ep);
7272
void inline static SleepSeconds(int sec)
7373
{
7474
std::this_thread::sleep_for(std::chrono::seconds(sec));
@@ -107,14 +107,15 @@ namespace Cyan
107107
};
108108

109109
template<typename T>
110-
inline void MiraiBot::OnEventReceived(const EventProcessor<T>& ep)
110+
inline MiraiBot& MiraiBot::OnEventReceived(const EventProcessor<T>& ep)
111111
{
112112
processors_.insert({ GetEventType<T>(),
113113
[=](WeakEvent we)
114114
{
115115
ep(*(std::dynamic_pointer_cast<T>(we)));
116116
}
117117
});
118+
return *this;
118119
}
119120

120121
template<typename T>

0 commit comments

Comments
 (0)