-
-
Notifications
You must be signed in to change notification settings - Fork 37
/
DiscordEvent.cs
130 lines (124 loc) · 2.93 KB
/
DiscordEvent.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#nullable enable
using System;
namespace DisCatSharp.Enums;
/// <summary>
/// Methods marked with this attribute will be registered as event handling methods
/// if the associated type / an associated instance is being registered.
/// </summary>
[AttributeUsage(AttributeTargets.Method)]
public class EventAttribute : Attribute
{
internal readonly string? EventName;
public EventAttribute()
{ }
/// <param name="evtn"><para>The name of the event.</para>
/// <para>The attributed method's name will be used if null.</para></param>
public EventAttribute(DiscordEvent evtn)
{
this.EventName = evtn.ToString();
}
}
/// <summary>
/// Classes marked with this attribute will be considered for event handler registration from an assembly.
/// </summary>
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
public class EventHandlerAttribute : Attribute
{ }
/// <summary>
/// All events available in <see cref="DiscordClient"/> for use with <see cref="EventAttribute"/>.
/// </summary>
public enum DiscordEvent
{
ApplicationCommandCreated,
ApplicationCommandDeleted,
ApplicationCommandPermissionsUpdated,
ApplicationCommandUpdated,
ChannelCreated,
ChannelDeleted,
ChannelPinsUpdated,
ChannelUpdated,
ClientErrored,
ComponentInteractionCreated,
ContextMenuInteractionCreated,
DmChannelDeleted,
EmbeddedActivityUpdated,
GuildApplicationCommandCountUpdated,
GuildAvailable,
GuildBanAdded,
GuildBanRemoved,
GuildCreated,
GuildDeleted,
GuildDownloadCompleted,
GuildEmojisUpdated,
GuildIntegrationCreated,
GuildIntegrationDeleted,
GuildIntegrationsUpdated,
GuildIntegrationUpdated,
GuildMemberAdded,
GuildMemberRemoved,
GuildMembersChunked,
GuildMemberTimeoutAdded,
GuildMemberTimeoutChanged,
GuildMemberTimeoutRemoved,
GuildMemberUpdated,
GuildRoleCreated,
GuildRoleDeleted,
GuildRoleUpdated,
GuildScheduledEventCreated,
GuildScheduledEventDeleted,
GuildScheduledEventUpdated,
GuildScheduledEventUserAdded,
GuildScheduledEventUserRemoved,
GuildStickersUpdated,
GuildUnavailable,
GuildUpdated,
Heartbeated,
InteractionCreated,
InviteCreated,
InviteDeleted,
MessageAcknowledged,
MessageCreated,
MessageDeleted,
MessageReactionAdded,
MessageReactionRemoved,
MessageReactionRemovedEmoji,
MessageReactionsCleared,
MessagesBulkDeleted,
MessageUpdated,
PayloadReceived,
PresenceUpdated,
RateLimitHit,
Ready,
Resumed,
SocketClosed,
SocketErrored,
SocketOpened,
StageInstanceCreated,
StageInstanceDeleted,
StageInstanceUpdated,
ThreadCreated,
ThreadDeleted,
ThreadListSynced,
ThreadMembersUpdated,
ThreadMemberUpdated,
ThreadUpdated,
TypingStarted,
UnknownEvent,
UserSettingsUpdated,
UserUpdated,
VoiceServerUpdated,
VoiceStateUpdated,
WebhooksUpdated,
Zombied,
AutomodRuleCreated,
AutomodRuleUpdated,
AutomodRuleDeleted,
AutomodActionExecuted,
GuildAuditLogEntryCreated,
VoiceChannelStatusUpdated,
EntitlementCreated,
EntitlementUpdated,
EntitlementDeleted,
MessagePollVoteAdded,
MessagePollVoteRemoved
}