d
· 12 KiB · D
Brut
func (w *GatewayClient) HandleEvent(event []byte, typ string) {
if w.EventHandlers.RawSinkFunc != nil {
w.EventHandlers.RawSinkFunc(w, event, typ)
}
if typ == "Bulk" {
// Bulk is a bit unique, special handling is required
err := w.HandleBulk(event)
if err != nil {
w.Logger.Error(
"bulk handler failed",
zap.Error(err),
)
}
}
if typ == "Auth" {
// Auth is a bit unique because of event it, handle it
err := w.HandleAuth(event)
if err != nil {
w.Logger.Error(
"auth handler failed",
zap.Error(err),
)
}
}
var err error
switch typ {
case "Error":
err = CreateEvent[events.Error](w, event, w.EventHandlers.Error)
case "Authenticated":
err = CreateEvent[events.Authenticated](w, event, w.EventHandlers.Authenticated)
case "Bulk":
err = CreateEvent[events.Bulk](w, event, w.EventHandlers.Bulk)
case "Pong":
err = CreateEvent[events.Pong](w, event, w.EventHandlers.Pong)
case "Ready":
err = CreateEvent[events.Ready](w, event, w.EventHandlers.Ready)
case "Message":
err = CreateEvent[events.Message](w, event, w.EventHandlers.Message)
case "MessageUpdate":
err = CreateEvent[events.MessageUpdate](w, event, w.EventHandlers.MessageUpdate)
case "MessageAppend":
err = CreateEvent[events.MessageAppend](w, event, w.EventHandlers.MessageAppend)
case "MessageDelete":
err = CreateEvent[events.MessageDelete](w, event, w.EventHandlers.MessageDelete)
case "MessageReact":
err = CreateEvent[events.MessageReact](w, event, w.EventHandlers.MessageReact)
case "MessageUnreact":
err = CreateEvent[events.MessageUnreact](w, event, w.EventHandlers.MessageUnreact)
case "MessageRemoveReaction":
err = CreateEvent[events.MessageRemoveReaction](w, event, w.EventHandlers.MessageRemoveReaction)
case "ChannelCreate":
err = CreateEvent[events.ChannelCreate](w, event, w.EventHandlers.ChannelCreate)
case "ChannelUpdate":
err = CreateEvent[events.ChannelUpdate](w, event, w.EventHandlers.ChannelUpdate)
case "ChannelDelete":
err = CreateEvent[events.ChannelDelete](w, event, w.EventHandlers.ChannelDelete)
case "ChannelGroupJoin":
err = CreateEvent[events.ChannelGroupJoin](w, event, w.EventHandlers.ChannelGroupJoin)
case "ChannelGroupLeave":
err = CreateEvent[events.ChannelGroupLeave](w, event, w.EventHandlers.ChannelGroupLeave)
case "ChannelStartTyping":
err = CreateEvent[events.ChannelStartTyping](w, event, w.EventHandlers.ChannelStartTyping)
case "ChannelStopTyping":
err = CreateEvent[events.ChannelStopTyping](w, event, w.EventHandlers.ChannelStopTyping)
case "ChannelAck":
err = CreateEvent[events.ChannelAck](w, event, w.EventHandlers.ChannelAck)
case "ServerCreate":
err = CreateEvent[events.ServerCreate](w, event, w.EventHandlers.ServerCreate)
case "ServerUpdate":
err = CreateEvent[events.ServerUpdate](w, event, w.EventHandlers.ServerUpdate)
case "ServerDelete":
err = CreateEvent[events.ServerDelete](w, event, w.EventHandlers.ServerDelete)
case "ServerMemberUpdate":
err = CreateEvent[events.ServerMemberUpdate](w, event, w.EventHandlers.ServerMemberUpdate)
case "ServerMemberJoin":
err = CreateEvent[events.ServerMemberJoin](w, event, w.EventHandlers.ServerMemberJoin)
case "ServerMemberLeave":
err = CreateEvent[events.ServerMemberLeave](w, event, w.EventHandlers.ServerMemberLeave)
case "ServerRoleUpdate":
err = CreateEvent[events.ServerRoleUpdate](w, event, w.EventHandlers.ServerRoleUpdate)
case "ServerRoleDelete":
err = CreateEvent[events.ServerRoleDelete](w, event, w.EventHandlers.ServerRoleDelete)
case "UserUpdate":
err = CreateEvent[events.UserUpdate](w, event, w.EventHandlers.UserUpdate)
case "UserRelationship":
err = CreateEvent[events.UserRelationship](w, event, w.EventHandlers.UserRelationship)
case "UserSettingsUpdate":
err = CreateEvent[events.UserSettingsUpdate](w, event, w.EventHandlers.UserSettingsUpdate)
case "UserPlatformWipe":
err = CreateEvent[events.UserPlatformWipe](w, event, w.EventHandlers.UserPlatformWipe)
case "EmojiCreate":
err = CreateEvent[events.EmojiCreate](w, event, w.EventHandlers.EmojiCreate)
case "EmojiDelete":
err = CreateEvent[events.EmojiDelete](w, event, w.EventHandlers.EmojiDelete)
case "WebhookCreate":
err = CreateEvent[events.WebhookCreate](w, event, w.EventHandlers.WebhookCreate)
case "WebhookUpdate":
err = CreateEvent[events.WebhookUpdate](w, event, w.EventHandlers.WebhookUpdate)
case "WebhookDelete":
err = CreateEvent[events.WebhookDelete](w, event, w.EventHandlers.WebhookDelete)
case "ReportCreate":
err = CreateEvent[events.ReportCreate](w, event, w.EventHandlers.ReportCreate)
case "Auth":
err = CreateEvent[events.Auth](w, event, w.EventHandlers.Auth)
default:
w.Logger.Warn("Unknown event type: " + typ)
}
if err != nil {
w.Logger.Error(
"Event handling failed",
zap.Error(err),
)
}
}
type EventHandlers struct {
// Not an actual revolt event, this is a sink that allows you to provide a function for raw event handling
RawSinkFunc func(w *GatewayClient, data []byte, typ string)
// An error occurred which meant you couldn't authenticate.
//
// <Note that grevolt handles these for you in general, but you can provide additional logic here>
Error func(w *GatewayClient, ctx *EventContext, e *events.Error)
// The server has authenticated your connection and you will shortly start receiving data.
Authenticated func(w *GatewayClient, ctx *EventContext, e *events.Authenticated)
// Several events have been sent, process each item of v as its own event.
//
// <Note that grevolt handles these for you in general, but you can provide additional logic here>
Bulk func(w *GatewayClient, ctx *EventContext, e *events.Bulk)
// Ping response from the server.
//
// <Note that grevolt handles these for you in general, but you can provide additional logic here>
Pong func(w *GatewayClient, ctx *EventContext, e *events.Pong)
// Data for use by client, data structures match the API specification
Ready func(w *GatewayClient, ctx *EventContext, e *events.Ready)
// Message received, the event object has the same schema as the Message object in the API with the addition of an event type.
Message func(w *GatewayClient, ctx *EventContext, e *events.Message)
// Message edited or otherwise updated.
MessageUpdate func(w *GatewayClient, ctx *EventContext, e *events.MessageUpdate)
// Message has data being appended to it.
MessageAppend func(w *GatewayClient, ctx *EventContext, e *events.MessageAppend)
// Message has been deleted.
MessageDelete func(w *GatewayClient, ctx *EventContext, e *events.MessageDelete)
// A reaction has been added to a message.
MessageReact func(w *GatewayClient, ctx *EventContext, e *events.MessageReact)
// A reaction has been removed from a message.
MessageUnreact func(w *GatewayClient, ctx *EventContext, e *events.MessageUnreact)
// A certain reaction has been removed from the message.
//
// <the difference between this and MessageUnreact is that
// this event is sent when a user with manage messages removes
// a reaction while MessageUnreact is sent when a user removes
// their own reaction>
MessageRemoveReaction func(w *GatewayClient, ctx *EventContext, e *events.MessageRemoveReaction)
// Channel created, the event object has the same schema as the Channel object in the API with the addition of an event type.
ChannelCreate func(w *GatewayClient, ctx *EventContext, e *events.ChannelCreate)
// Channel details updated.
ChannelUpdate func(w *GatewayClient, ctx *EventContext, e *events.ChannelUpdate)
// Channel has been deleted.
ChannelDelete func(w *GatewayClient, ctx *EventContext, e *events.ChannelDelete)
// A user has joined the group.
ChannelGroupJoin func(w *GatewayClient, ctx *EventContext, e *events.ChannelGroupJoin)
// A user has left the group.
ChannelGroupLeave func(w *GatewayClient, ctx *EventContext, e *events.ChannelGroupLeave)
// A user has started typing in this channel.
ChannelStartTyping func(w *GatewayClient, ctx *EventContext, e *events.ChannelStartTyping)
// A user has stopped typing in this channel.
ChannelStopTyping func(w *GatewayClient, ctx *EventContext, e *events.ChannelStopTyping)
// You have acknowledged new messages in this channel up to this message ID.
//
// <official docs say the above, but it should be 'A user' instead of 'you'?>
ChannelAck func(w *GatewayClient, ctx *EventContext, e *events.ChannelAck)
// Server created, the event object has the same schema as the SERVER object in the API with the addition of an event type.
ServerCreate func(w *GatewayClient, ctx *EventContext, e *events.ServerCreate)
// Server details updated.
ServerUpdate func(w *GatewayClient, ctx *EventContext, e *events.ServerUpdate)
// Server has been deleted.
ServerDelete func(w *GatewayClient, ctx *EventContext, e *events.ServerDelete)
// Server member details updated.
ServerMemberUpdate func(w *GatewayClient, ctx *EventContext, e *events.ServerMemberUpdate)
// A user has joined the group.
//
// <this should be server, not group>
ServerMemberJoin func(w *GatewayClient, ctx *EventContext, e *events.ServerMemberJoin)
// A user has left the group.
//
// <this should be server, not group>
ServerMemberLeave func(w *GatewayClient, ctx *EventContext, e *events.ServerMemberLeave)
// Server role has been updated or created.
ServerRoleUpdate func(w *GatewayClient, ctx *EventContext, e *events.ServerRoleUpdate)
// Server role has been deleted.
ServerRoleDelete func(w *GatewayClient, ctx *EventContext, e *events.ServerRoleDelete)
// User has been updated.
UserUpdate func(w *GatewayClient, ctx *EventContext, e *events.UserUpdate)
// Your relationship with another user has changed.
UserRelationship func(w *GatewayClient, ctx *EventContext, e *events.UserRelationship)
// Settings updated remotely
//
// <undocumented, will likely be available in a future release>
UserSettingsUpdate func(w *GatewayClient, ctx *EventContext, e *events.UserSettingsUpdate)
// User has been platform banned or deleted their account
//
// Clients should remove the following associated data:
// - Messages
// - DM Channels
// - Relationships
// - Server Memberships
//
// User flags are specified to explain why a wipe is occurring though not all reasons will necessarily ever appear.
UserPlatformWipe func(w *GatewayClient, ctx *EventContext, e *events.UserPlatformWipe)
// Emoji created, the event object has the same schema as the Emoji object in the API with the addition of an event type.
EmojiCreate func(w *GatewayClient, ctx *EventContext, e *events.EmojiCreate)
// Emoji has been deleted.
EmojiDelete func(w *GatewayClient, ctx *EventContext, e *events.EmojiDelete)
// New report
//
// <undocumented, will likely be available in a future release>
ReportCreate func(w *GatewayClient, ctx *EventContext, e *events.ReportCreate)
// Forwarded events from rAuth, currently only session deletion events are forwarded.
//
// <this event is special, you likely want AuthDeleteSession and AuthDeleteAllSessions instead>
Auth func(w *GatewayClient, ctx *EventContext, e *events.Auth)
// A session has been deleted.
//
// Eq: Auth->DeleteSession
AuthDeleteSession func(w *GatewayClient, ctx *EventContext, e *events.AuthDeleteSession)
// All sessions for this account have been deleted, optionally excluding a given ID.
//
// Eq: Auth->DeleteAllSessions
AuthDeleteAllSessions func(w *GatewayClient, ctx *EventContext, e *events.AuthDeleteAllSessions)
// New webhook
//
// <undocumented, will likely be available in a future release>
WebhookCreate func(w *GatewayClient, ctx *EventContext, e *events.WebhookCreate)
// Update existing webhook
//
// <undocumented, will likely be available in a future release>
WebhookUpdate func(w *GatewayClient, ctx *EventContext, e *events.WebhookUpdate)
// Delete existing webhook
//
// <undocumented, will likely be available in a future release>
WebhookDelete func(w *GatewayClient, ctx *EventContext, e *events.WebhookDelete)
}
1 | func (w *GatewayClient) HandleEvent(event []byte, typ string) { |
2 | if w.EventHandlers.RawSinkFunc != nil { |
3 | w.EventHandlers.RawSinkFunc(w, event, typ) |
4 | } |
5 | |
6 | if typ == "Bulk" { |
7 | // Bulk is a bit unique, special handling is required |
8 | err := w.HandleBulk(event) |
9 | |
10 | if err != nil { |
11 | w.Logger.Error( |
12 | "bulk handler failed", |
13 | zap.Error(err), |
14 | ) |
15 | } |
16 | } |
17 | |
18 | if typ == "Auth" { |
19 | // Auth is a bit unique because of event it, handle it |
20 | err := w.HandleAuth(event) |
21 | |
22 | if err != nil { |
23 | w.Logger.Error( |
24 | "auth handler failed", |
25 | zap.Error(err), |
26 | ) |
27 | } |
28 | } |
29 | |
30 | var err error |
31 | switch typ { |
32 | case "Error": |
33 | err = CreateEvent[events.Error](w, event, w.EventHandlers.Error) |
34 | case "Authenticated": |
35 | err = CreateEvent[events.Authenticated](w, event, w.EventHandlers.Authenticated) |
36 | case "Bulk": |
37 | err = CreateEvent[events.Bulk](w, event, w.EventHandlers.Bulk) |
38 | case "Pong": |
39 | err = CreateEvent[events.Pong](w, event, w.EventHandlers.Pong) |
40 | case "Ready": |
41 | err = CreateEvent[events.Ready](w, event, w.EventHandlers.Ready) |
42 | case "Message": |
43 | err = CreateEvent[events.Message](w, event, w.EventHandlers.Message) |
44 | case "MessageUpdate": |
45 | err = CreateEvent[events.MessageUpdate](w, event, w.EventHandlers.MessageUpdate) |
46 | case "MessageAppend": |
47 | err = CreateEvent[events.MessageAppend](w, event, w.EventHandlers.MessageAppend) |
48 | case "MessageDelete": |
49 | err = CreateEvent[events.MessageDelete](w, event, w.EventHandlers.MessageDelete) |
50 | case "MessageReact": |
51 | err = CreateEvent[events.MessageReact](w, event, w.EventHandlers.MessageReact) |
52 | case "MessageUnreact": |
53 | err = CreateEvent[events.MessageUnreact](w, event, w.EventHandlers.MessageUnreact) |
54 | case "MessageRemoveReaction": |
55 | err = CreateEvent[events.MessageRemoveReaction](w, event, w.EventHandlers.MessageRemoveReaction) |
56 | case "ChannelCreate": |
57 | err = CreateEvent[events.ChannelCreate](w, event, w.EventHandlers.ChannelCreate) |
58 | case "ChannelUpdate": |
59 | err = CreateEvent[events.ChannelUpdate](w, event, w.EventHandlers.ChannelUpdate) |
60 | case "ChannelDelete": |
61 | err = CreateEvent[events.ChannelDelete](w, event, w.EventHandlers.ChannelDelete) |
62 | case "ChannelGroupJoin": |
63 | err = CreateEvent[events.ChannelGroupJoin](w, event, w.EventHandlers.ChannelGroupJoin) |
64 | case "ChannelGroupLeave": |
65 | err = CreateEvent[events.ChannelGroupLeave](w, event, w.EventHandlers.ChannelGroupLeave) |
66 | case "ChannelStartTyping": |
67 | err = CreateEvent[events.ChannelStartTyping](w, event, w.EventHandlers.ChannelStartTyping) |
68 | case "ChannelStopTyping": |
69 | err = CreateEvent[events.ChannelStopTyping](w, event, w.EventHandlers.ChannelStopTyping) |
70 | case "ChannelAck": |
71 | err = CreateEvent[events.ChannelAck](w, event, w.EventHandlers.ChannelAck) |
72 | case "ServerCreate": |
73 | err = CreateEvent[events.ServerCreate](w, event, w.EventHandlers.ServerCreate) |
74 | case "ServerUpdate": |
75 | err = CreateEvent[events.ServerUpdate](w, event, w.EventHandlers.ServerUpdate) |
76 | case "ServerDelete": |
77 | err = CreateEvent[events.ServerDelete](w, event, w.EventHandlers.ServerDelete) |
78 | case "ServerMemberUpdate": |
79 | err = CreateEvent[events.ServerMemberUpdate](w, event, w.EventHandlers.ServerMemberUpdate) |
80 | case "ServerMemberJoin": |
81 | err = CreateEvent[events.ServerMemberJoin](w, event, w.EventHandlers.ServerMemberJoin) |
82 | case "ServerMemberLeave": |
83 | err = CreateEvent[events.ServerMemberLeave](w, event, w.EventHandlers.ServerMemberLeave) |
84 | case "ServerRoleUpdate": |
85 | err = CreateEvent[events.ServerRoleUpdate](w, event, w.EventHandlers.ServerRoleUpdate) |
86 | case "ServerRoleDelete": |
87 | err = CreateEvent[events.ServerRoleDelete](w, event, w.EventHandlers.ServerRoleDelete) |
88 | case "UserUpdate": |
89 | err = CreateEvent[events.UserUpdate](w, event, w.EventHandlers.UserUpdate) |
90 | case "UserRelationship": |
91 | err = CreateEvent[events.UserRelationship](w, event, w.EventHandlers.UserRelationship) |
92 | case "UserSettingsUpdate": |
93 | err = CreateEvent[events.UserSettingsUpdate](w, event, w.EventHandlers.UserSettingsUpdate) |
94 | case "UserPlatformWipe": |
95 | err = CreateEvent[events.UserPlatformWipe](w, event, w.EventHandlers.UserPlatformWipe) |
96 | case "EmojiCreate": |
97 | err = CreateEvent[events.EmojiCreate](w, event, w.EventHandlers.EmojiCreate) |
98 | case "EmojiDelete": |
99 | err = CreateEvent[events.EmojiDelete](w, event, w.EventHandlers.EmojiDelete) |
100 | case "WebhookCreate": |
101 | err = CreateEvent[events.WebhookCreate](w, event, w.EventHandlers.WebhookCreate) |
102 | case "WebhookUpdate": |
103 | err = CreateEvent[events.WebhookUpdate](w, event, w.EventHandlers.WebhookUpdate) |
104 | case "WebhookDelete": |
105 | err = CreateEvent[events.WebhookDelete](w, event, w.EventHandlers.WebhookDelete) |
106 | case "ReportCreate": |
107 | err = CreateEvent[events.ReportCreate](w, event, w.EventHandlers.ReportCreate) |
108 | case "Auth": |
109 | err = CreateEvent[events.Auth](w, event, w.EventHandlers.Auth) |
110 | default: |
111 | w.Logger.Warn("Unknown event type: " + typ) |
112 | } |
113 | |
114 | if err != nil { |
115 | w.Logger.Error( |
116 | "Event handling failed", |
117 | zap.Error(err), |
118 | ) |
119 | } |
120 | } |
121 | |
122 | type EventHandlers struct { |
123 | // Not an actual revolt event, this is a sink that allows you to provide a function for raw event handling |
124 | RawSinkFunc func(w *GatewayClient, data []byte, typ string) |
125 | |
126 | // An error occurred which meant you couldn't authenticate. |
127 | // |
128 | // <Note that grevolt handles these for you in general, but you can provide additional logic here> |
129 | Error func(w *GatewayClient, ctx *EventContext, e *events.Error) |
130 | |
131 | // The server has authenticated your connection and you will shortly start receiving data. |
132 | Authenticated func(w *GatewayClient, ctx *EventContext, e *events.Authenticated) |
133 | |
134 | // Several events have been sent, process each item of v as its own event. |
135 | // |
136 | // <Note that grevolt handles these for you in general, but you can provide additional logic here> |
137 | Bulk func(w *GatewayClient, ctx *EventContext, e *events.Bulk) |
138 | |
139 | // Ping response from the server. |
140 | // |
141 | // <Note that grevolt handles these for you in general, but you can provide additional logic here> |
142 | Pong func(w *GatewayClient, ctx *EventContext, e *events.Pong) |
143 | |
144 | // Data for use by client, data structures match the API specification |
145 | Ready func(w *GatewayClient, ctx *EventContext, e *events.Ready) |
146 | |
147 | // Message received, the event object has the same schema as the Message object in the API with the addition of an event type. |
148 | Message func(w *GatewayClient, ctx *EventContext, e *events.Message) |
149 | |
150 | // Message edited or otherwise updated. |
151 | MessageUpdate func(w *GatewayClient, ctx *EventContext, e *events.MessageUpdate) |
152 | |
153 | // Message has data being appended to it. |
154 | MessageAppend func(w *GatewayClient, ctx *EventContext, e *events.MessageAppend) |
155 | |
156 | // Message has been deleted. |
157 | MessageDelete func(w *GatewayClient, ctx *EventContext, e *events.MessageDelete) |
158 | |
159 | // A reaction has been added to a message. |
160 | MessageReact func(w *GatewayClient, ctx *EventContext, e *events.MessageReact) |
161 | |
162 | // A reaction has been removed from a message. |
163 | MessageUnreact func(w *GatewayClient, ctx *EventContext, e *events.MessageUnreact) |
164 | |
165 | // A certain reaction has been removed from the message. |
166 | // |
167 | // <the difference between this and MessageUnreact is that |
168 | // this event is sent when a user with manage messages removes |
169 | // a reaction while MessageUnreact is sent when a user removes |
170 | // their own reaction> |
171 | MessageRemoveReaction func(w *GatewayClient, ctx *EventContext, e *events.MessageRemoveReaction) |
172 | |
173 | // Channel created, the event object has the same schema as the Channel object in the API with the addition of an event type. |
174 | ChannelCreate func(w *GatewayClient, ctx *EventContext, e *events.ChannelCreate) |
175 | |
176 | // Channel details updated. |
177 | ChannelUpdate func(w *GatewayClient, ctx *EventContext, e *events.ChannelUpdate) |
178 | |
179 | // Channel has been deleted. |
180 | ChannelDelete func(w *GatewayClient, ctx *EventContext, e *events.ChannelDelete) |
181 | |
182 | // A user has joined the group. |
183 | ChannelGroupJoin func(w *GatewayClient, ctx *EventContext, e *events.ChannelGroupJoin) |
184 | |
185 | // A user has left the group. |
186 | ChannelGroupLeave func(w *GatewayClient, ctx *EventContext, e *events.ChannelGroupLeave) |
187 | |
188 | // A user has started typing in this channel. |
189 | ChannelStartTyping func(w *GatewayClient, ctx *EventContext, e *events.ChannelStartTyping) |
190 | |
191 | // A user has stopped typing in this channel. |
192 | ChannelStopTyping func(w *GatewayClient, ctx *EventContext, e *events.ChannelStopTyping) |
193 | |
194 | // You have acknowledged new messages in this channel up to this message ID. |
195 | // |
196 | // <official docs say the above, but it should be 'A user' instead of 'you'?> |
197 | ChannelAck func(w *GatewayClient, ctx *EventContext, e *events.ChannelAck) |
198 | |
199 | // Server created, the event object has the same schema as the SERVER object in the API with the addition of an event type. |
200 | ServerCreate func(w *GatewayClient, ctx *EventContext, e *events.ServerCreate) |
201 | |
202 | // Server details updated. |
203 | ServerUpdate func(w *GatewayClient, ctx *EventContext, e *events.ServerUpdate) |
204 | |
205 | // Server has been deleted. |
206 | ServerDelete func(w *GatewayClient, ctx *EventContext, e *events.ServerDelete) |
207 | |
208 | // Server member details updated. |
209 | ServerMemberUpdate func(w *GatewayClient, ctx *EventContext, e *events.ServerMemberUpdate) |
210 | |
211 | // A user has joined the group. |
212 | // |
213 | // <this should be server, not group> |
214 | ServerMemberJoin func(w *GatewayClient, ctx *EventContext, e *events.ServerMemberJoin) |
215 | |
216 | // A user has left the group. |
217 | // |
218 | // <this should be server, not group> |
219 | ServerMemberLeave func(w *GatewayClient, ctx *EventContext, e *events.ServerMemberLeave) |
220 | |
221 | // Server role has been updated or created. |
222 | ServerRoleUpdate func(w *GatewayClient, ctx *EventContext, e *events.ServerRoleUpdate) |
223 | |
224 | // Server role has been deleted. |
225 | ServerRoleDelete func(w *GatewayClient, ctx *EventContext, e *events.ServerRoleDelete) |
226 | |
227 | // User has been updated. |
228 | UserUpdate func(w *GatewayClient, ctx *EventContext, e *events.UserUpdate) |
229 | |
230 | // Your relationship with another user has changed. |
231 | UserRelationship func(w *GatewayClient, ctx *EventContext, e *events.UserRelationship) |
232 | |
233 | // Settings updated remotely |
234 | // |
235 | // <undocumented, will likely be available in a future release> |
236 | UserSettingsUpdate func(w *GatewayClient, ctx *EventContext, e *events.UserSettingsUpdate) |
237 | |
238 | // User has been platform banned or deleted their account |
239 | // |
240 | // Clients should remove the following associated data: |
241 | // - Messages |
242 | // - DM Channels |
243 | // - Relationships |
244 | // - Server Memberships |
245 | // |
246 | // User flags are specified to explain why a wipe is occurring though not all reasons will necessarily ever appear. |
247 | UserPlatformWipe func(w *GatewayClient, ctx *EventContext, e *events.UserPlatformWipe) |
248 | |
249 | // Emoji created, the event object has the same schema as the Emoji object in the API with the addition of an event type. |
250 | EmojiCreate func(w *GatewayClient, ctx *EventContext, e *events.EmojiCreate) |
251 | |
252 | // Emoji has been deleted. |
253 | EmojiDelete func(w *GatewayClient, ctx *EventContext, e *events.EmojiDelete) |
254 | |
255 | // New report |
256 | // |
257 | // <undocumented, will likely be available in a future release> |
258 | ReportCreate func(w *GatewayClient, ctx *EventContext, e *events.ReportCreate) |
259 | |
260 | // Forwarded events from rAuth, currently only session deletion events are forwarded. |
261 | // |
262 | // <this event is special, you likely want AuthDeleteSession and AuthDeleteAllSessions instead> |
263 | Auth func(w *GatewayClient, ctx *EventContext, e *events.Auth) |
264 | |
265 | // A session has been deleted. |
266 | // |
267 | // Eq: Auth->DeleteSession |
268 | AuthDeleteSession func(w *GatewayClient, ctx *EventContext, e *events.AuthDeleteSession) |
269 | |
270 | // All sessions for this account have been deleted, optionally excluding a given ID. |
271 | // |
272 | // Eq: Auth->DeleteAllSessions |
273 | AuthDeleteAllSessions func(w *GatewayClient, ctx *EventContext, e *events.AuthDeleteAllSessions) |
274 | |
275 | // New webhook |
276 | // |
277 | // <undocumented, will likely be available in a future release> |
278 | WebhookCreate func(w *GatewayClient, ctx *EventContext, e *events.WebhookCreate) |
279 | |
280 | // Update existing webhook |
281 | // |
282 | // <undocumented, will likely be available in a future release> |
283 | WebhookUpdate func(w *GatewayClient, ctx *EventContext, e *events.WebhookUpdate) |
284 | |
285 | // Delete existing webhook |
286 | // |
287 | // <undocumented, will likely be available in a future release> |
288 | WebhookDelete func(w *GatewayClient, ctx *EventContext, e *events.WebhookDelete) |
289 | } |
290 |