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

Commit ae19822

Browse files
authored
Merge pull request #9 from cyanray/dev/cyanray
重构代码,消灭 dirty code;
2 parents 1ba073b + 447174a commit ae19822

26 files changed

+156
-521
lines changed

include/events/bot_mute_event.hpp

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,27 @@
77
#include "defs/serializable.hpp"
88
#include "defs/message_chain.hpp"
99
#include "defs/group_member.hpp"
10+
#include "event_interface.hpp"
1011

1112
namespace Cyan
1213
{
1314
// bot 被禁言事件
14-
class BotMuteEvent : public Serializable
15+
class BotMuteEvent : public EventBase
1516
{
1617
public:
1718
int DurationSeconds = 0;
1819
GroupMember_t Operator;
1920

20-
BotMuteEvent() = default;
21-
BotMuteEvent(const BotMuteEvent& gm)
21+
static MiraiEvent GetMiraiEvent()
2222
{
23-
DurationSeconds = gm.DurationSeconds;
24-
Operator = gm.Operator;
25-
}
26-
BotMuteEvent& operator=(const BotMuteEvent& t)
27-
{
28-
BotMuteEvent tmp(t);
29-
std::swap(this->DurationSeconds, tmp.DurationSeconds);
30-
std::swap(this->Operator, tmp.Operator);
31-
return *this;
23+
return MiraiEvent::BotMuteEvent;
3224
}
3325

34-
void SetMiraiBot(MiraiBot* bot)
26+
virtual void SetMiraiBot(MiraiBot* bot) override
3527
{
3628
this->bot_ = bot;
3729
}
3830

39-
virtual ~BotMuteEvent() = default;
4031
virtual bool Set(const json& j) override
4132
{
4233
this->DurationSeconds = j["durationSeconds"].get<int>();

include/events/bot_offline_active.hpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,26 @@
55
#include <nlohmann/json.hpp>
66
#include "defs/qq_types.hpp"
77
#include "defs/serializable.hpp"
8+
#include "event_interface.hpp"
89

910
namespace Cyan
1011
{
1112
// bot 主动离线事件
12-
class BotOfflineEventActive : public Serializable
13+
class BotOfflineEventActive : public EventBase
1314
{
1415
public:
1516
QQ_t QQ;
1617

17-
BotOfflineEventActive() = default;
18-
BotOfflineEventActive(const BotOfflineEventActive& gm)
18+
static MiraiEvent GetMiraiEvent()
1919
{
20-
QQ = gm.QQ;
21-
}
22-
BotOfflineEventActive& operator=(const BotOfflineEventActive& t)
23-
{
24-
BotOfflineEventActive tmp(t);
25-
std::swap(this->QQ, tmp.QQ);
26-
return *this;
20+
return MiraiEvent::BotOfflineEventActive;
2721
}
2822

29-
void SetMiraiBot(MiraiBot* bot)
23+
virtual void SetMiraiBot(MiraiBot* bot) override
3024
{
3125
this->bot_ = bot;
3226
}
3327

34-
virtual ~BotOfflineEventActive() = default;
3528
virtual bool Set(const json& j) override
3629
{
3730
this->QQ = (QQ_t)(j["qq"].get<int64_t>());

include/events/bot_offline_dropped.hpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,26 @@
55
#include <nlohmann/json.hpp>
66
#include "defs/qq_types.hpp"
77
#include "defs/serializable.hpp"
8+
#include "event_interface.hpp"
89

910
namespace Cyan
1011
{
1112
// bot 因网络原因掉线
12-
class BotOfflineEventDropped : public Serializable
13+
class BotOfflineEventDropped : public EventBase
1314
{
1415
public:
1516
QQ_t QQ;
1617

17-
BotOfflineEventDropped() = default;
18-
BotOfflineEventDropped(const BotOfflineEventDropped& gm)
18+
static MiraiEvent GetMiraiEvent()
1919
{
20-
QQ = gm.QQ;
21-
}
22-
BotOfflineEventDropped& operator=(const BotOfflineEventDropped& t)
23-
{
24-
BotOfflineEventDropped tmp(t);
25-
std::swap(this->QQ, tmp.QQ);
26-
return *this;
20+
return MiraiEvent::BotOfflineEventDropped;
2721
}
2822

29-
void SetMiraiBot(MiraiBot* bot)
23+
virtual void SetMiraiBot(MiraiBot* bot) override
3024
{
3125
this->bot_ = bot;
3226
}
3327

34-
virtual ~BotOfflineEventDropped() = default;
3528
virtual bool Set(const json& j) override
3629
{
3730
this->QQ = (QQ_t)(j["qq"].get<int64_t>());

include/events/bot_offline_force.hpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,26 @@
55
#include <nlohmann/json.hpp>
66
#include "defs/qq_types.hpp"
77
#include "defs/serializable.hpp"
8+
#include "event_interface.hpp"
89

910
namespace Cyan
1011
{
1112
// bot 被挤下线事件
12-
class BotOfflineEventForce : public Serializable
13+
class BotOfflineEventForce : public EventBase
1314
{
1415
public:
1516
QQ_t QQ;
1617

17-
BotOfflineEventForce() = default;
18-
BotOfflineEventForce(const BotOfflineEventForce& gm)
18+
static MiraiEvent GetMiraiEvent()
1919
{
20-
QQ = gm.QQ;
21-
}
22-
BotOfflineEventForce& operator=(const BotOfflineEventForce& t)
23-
{
24-
BotOfflineEventForce tmp(t);
25-
std::swap(this->QQ, tmp.QQ);
26-
return *this;
20+
return MiraiEvent::BotOfflineEventForce;
2721
}
2822

29-
void SetMiraiBot(MiraiBot* bot)
23+
virtual void SetMiraiBot(MiraiBot* bot) override
3024
{
3125
this->bot_ = bot;
3226
}
3327

34-
virtual ~BotOfflineEventForce() = default;
3528
virtual bool Set(const json& j) override
3629
{
3730
this->QQ = (QQ_t)(j["qq"].get<int64_t>());

include/events/bot_online_event.hpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,26 @@
55
#include <nlohmann/json.hpp>
66
#include "defs/qq_types.hpp"
77
#include "defs/serializable.hpp"
8+
#include "event_interface.hpp"
89

910
namespace Cyan
1011
{
1112
// bot 登录成功事件
12-
class BotOnlineEvent : public Serializable
13+
class BotOnlineEvent : public EventBase
1314
{
1415
public:
1516
QQ_t QQ;
1617

17-
BotOnlineEvent() = default;
18-
BotOnlineEvent(const BotOnlineEvent& gm)
18+
static MiraiEvent GetMiraiEvent()
1919
{
20-
QQ = gm.QQ;
21-
}
22-
BotOnlineEvent& operator=(const BotOnlineEvent& t)
23-
{
24-
BotOnlineEvent tmp(t);
25-
std::swap(this->QQ, tmp.QQ);
26-
return *this;
20+
return MiraiEvent::BotOnlineEvent;
2721
}
2822

29-
void SetMiraiBot(MiraiBot* bot)
23+
virtual void SetMiraiBot(MiraiBot* bot) override
3024
{
3125
this->bot_ = bot;
3226
}
3327

34-
virtual ~BotOnlineEvent() = default;
3528
virtual bool Set(const json& j) override
3629
{
3730
this->QQ = (QQ_t)(j["qq"].get<int64_t>());

include/events/bot_relogin_event.hpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,26 @@
55
#include <nlohmann/json.hpp>
66
#include "defs/qq_types.hpp"
77
#include "defs/serializable.hpp"
8+
#include "event_interface.hpp"
89

910
namespace Cyan
1011
{
1112
// bot 主动重新登录事件
12-
class BotReloginEvent : public Serializable
13+
class BotReloginEvent : public EventBase
1314
{
1415
public:
1516
QQ_t QQ;
1617

17-
BotReloginEvent() = default;
18-
BotReloginEvent(const BotReloginEvent& gm)
18+
static MiraiEvent GetMiraiEvent()
1919
{
20-
QQ = gm.QQ;
21-
}
22-
BotReloginEvent& operator=(const BotReloginEvent& t)
23-
{
24-
BotReloginEvent tmp(t);
25-
std::swap(this->QQ, tmp.QQ);
26-
return *this;
20+
return MiraiEvent::BotReloginEvent;
2721
}
2822

29-
void SetMiraiBot(MiraiBot* bot)
23+
virtual void SetMiraiBot(MiraiBot* bot) override
3024
{
3125
this->bot_ = bot;
3226
}
3327

34-
virtual ~BotReloginEvent() = default;
3528
virtual bool Set(const json& j) override
3629
{
3730
this->QQ = (QQ_t)(j["qq"].get<int64_t>());

include/events/bot_unmute_event.hpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,26 @@
77
#include "defs/serializable.hpp"
88
#include "defs/message_chain.hpp"
99
#include "defs/group_member.hpp"
10+
#include "event_interface.hpp"
1011

1112
namespace Cyan
1213
{
1314
// bot 被解除禁言事件
14-
class BotUnmuteEvent : public Serializable
15+
class BotUnmuteEvent : public EventBase
1516
{
1617
public:
1718
GroupMember_t Operator;
1819

19-
BotUnmuteEvent() = default;
20-
BotUnmuteEvent(const BotUnmuteEvent& gm)
20+
static MiraiEvent GetMiraiEvent()
2121
{
22-
Operator = gm.Operator;
23-
}
24-
BotUnmuteEvent& operator=(const BotUnmuteEvent& t)
25-
{
26-
BotUnmuteEvent tmp(t);
27-
std::swap(this->Operator, tmp.Operator);
28-
return *this;
22+
return MiraiEvent::BotUnmuteEvent;
2923
}
3024

31-
void SetMiraiBot(MiraiBot* bot)
25+
virtual void SetMiraiBot(MiraiBot* bot) override
3226
{
3327
this->bot_ = bot;
3428
}
3529

36-
virtual ~BotUnmuteEvent() = default;
3730
virtual bool Set(const json& j) override
3831
{
3932
this->Operator.Set(j["operator"]);

include/events/event_interface.hpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#pragma once
2+
#ifndef mirai_cpp_events_event_interface_hpp_H_
3+
#define mirai_cpp_events_event_interface_hpp_H_
4+
#include "events_name.hpp"
5+
#include "defs/serializable.hpp"
6+
#include "defs/qq_types.hpp"
7+
namespace Cyan
8+
{
9+
class EventBase : public Serializable
10+
{
11+
public:
12+
EventBase() {}
13+
static MiraiEvent GetMiraiEvent()
14+
{
15+
return MiraiEvent::Default;
16+
}
17+
virtual void SetMiraiBot(MiraiBot*) = 0;
18+
virtual ~EventBase() {}
19+
};
20+
21+
22+
23+
} // namespace Cyan
24+
25+
#endif // !mirai_cpp_events_event_interface_hpp_H_

include/events/event_processer.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44

55
#include <functional>
66
#include <memory>
7-
#include "defs/serializable.hpp"
7+
#include "event_interface.hpp"
88

99
namespace Cyan
1010
{
1111
template<typename T>
1212
using EventProcessor = std::function<void(T)>;
1313

14-
typedef std::shared_ptr<Serializable> WeakEvent;
14+
typedef std::shared_ptr<EventBase> WeakEvent;
1515
//using WeakEvent = std::function<void(Serializable*)>;
1616

1717

include/events/events.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,6 @@
2828
// 一些定义
2929
#include "event_processer.hpp"
3030
#include "events_name.hpp"
31+
#include "event_interface.hpp"
3132

3233
#endif // !mirai_cpp_events_events_hpp_H_

0 commit comments

Comments
 (0)