1+ #include < iostream>
2+ // 使用静态库必须要在引入 mirai.h 前定义这个宏
3+ #define MIRAICPP_STATICLIB
4+ #include < mirai.h>
5+
6+ int main ()
7+ {
8+ using namespace std ;
9+ using namespace Cyan ;
10+
11+ // 源文件使用 UTF-8 编码保存,在 Windows 上需要切换代码页才不会显示乱码
12+ #if defined(WIN32) || defined(_WIN32)
13+ system (" chcp 65001" );
14+ #endif
15+
16+ // 16 条事件处理线程
17+ MiraiBot bot (" 127.0.0.1" , 8762 , 16 );
18+
19+ // 检查一下版本
20+ try
21+ {
22+ // 获取 mirai-api-http 插件的版本
23+ string mah_version = bot.GetMiraiApiHttpVersion ();
24+ // 获取 mirai-cpp 的版本
25+ string mc_version = bot.GetMiraiCppVersion ();
26+ cout << " ! mirai-api-http 的版本: " << mah_version
27+ << " ; 当mirai-cpp 的版本: " << mc_version << " ; " << endl;
28+ if (mah_version != mc_version)
29+ {
30+ cout << " ! 警告: 你的 mirai-api-http 插件的版本与 mirai-cpp 的版本不同,可能存在兼容性问题。" << endl;
31+ }
32+ }
33+ catch (const std::exception& ex)
34+ {
35+ cout << ex.what () << endl;
36+ }
37+
38+ // 自动重试地进行 Auth
39+ while (true )
40+ {
41+ try
42+ {
43+ bot.Auth (" AuthKeyASDEWQ" , 1589588851_qq);
44+ break ;
45+ }
46+ catch (const std::exception& ex)
47+ {
48+ cout << ex.what () << endl;
49+ }
50+ MiraiBot::SleepSeconds (1 );
51+ }
52+ cout << " Bot Working..." << endl;
53+
54+ bot.On <NudgeEvent>(
55+ [&](NudgeEvent e)
56+ {
57+ // 注意: 使用 SendNudge 发送的戳一戳,也会触发该事件,
58+ // 注意: 因此必须过滤掉来自bot自己的戳一戳事件,不然会导致死循环
59+ if (e.FromId .ToInt64 () == bot.GetBotQQ ().ToInt64 ()) return ;
60+
61+ cout << e.FromId .ToInt64 () << " " << e.Action << " " << e.Target << " " << e.Suffix ;
62+ // 如果别人戳机器人,那么就让机器人戳回去
63+ if (e.Target .ToInt64 () != bot.GetBotQQ ().ToInt64 ()) return ;
64+ bot.SendNudge (e.FromId , e.SubjectId , e.FromKind );
65+ // 如果不喜欢上面这一行代码,也可以用下面的代码代替
66+ // if (e.FromKind == NudgeEvent::SubjectKind::Group)
67+ // {
68+ // bot.SendNudge(e.FromId, (GID_t)e.SubjectId);
69+ // }
70+ // else
71+ // {
72+ // bot.SendNudge(e.FromId, (QQ_t)e.SubjectId);
73+ // }
74+ });
75+
76+
77+ // 记录轮询事件时的错误
78+ bot.EventLoop ([](const char * errMsg)
79+ {
80+ cout << " 获取事件时出错: " << errMsg << endl;
81+ });
82+
83+ return 0 ;
84+ }
0 commit comments