5
5
6
6
Copyright (c) 2015-present Rapptz
7
7
8
- Implementing of the Discord-Message-components made by mccoderpy (Discord-User mccuber04#2960)
9
-
10
8
Permission is hereby granted, free of charge, to any person obtaining a
11
9
copy of this software and associated documentation files (the "Software"),
12
10
to deal in the Software without restriction, including without limitation
30
28
from .message import Message
31
29
from .errors import NotFound
32
30
31
+
33
32
class _RawReprMixin :
34
33
def __repr__ (self ):
35
34
value = ' ' .join ('%s=%r' % (attr , getattr (self , attr )) for attr in self .__slots__ )
36
35
return '<%s %s>' % (self .__class__ .__name__ , value )
37
36
37
+
38
38
class RawMessageDeleteEvent (_RawReprMixin ):
39
39
"""Represents the event payload for a :func:`on_raw_message_delete` event.
40
40
@@ -61,6 +61,7 @@ def __init__(self, data):
61
61
except KeyError :
62
62
self .guild_id = None
63
63
64
+
64
65
class RawBulkMessageDeleteEvent (_RawReprMixin ):
65
66
"""Represents the event payload for a :func:`on_raw_bulk_message_delete` event.
66
67
@@ -88,6 +89,7 @@ def __init__(self, data):
88
89
except KeyError :
89
90
self .guild_id = None
90
91
92
+
91
93
class RawMessageUpdateEvent (_RawReprMixin ):
92
94
"""Represents the payload for a :func:`on_raw_message_edit` event.
93
95
@@ -124,6 +126,7 @@ def __init__(self, data):
124
126
except KeyError :
125
127
self .guild_id = None
126
128
129
+
127
130
class RawReactionActionEvent (_RawReprMixin ):
128
131
"""Represents the payload for a :func:`on_raw_reaction_add` or
129
132
:func:`on_raw_reaction_remove` event.
@@ -169,6 +172,7 @@ def __init__(self, data, emoji, event_type):
169
172
except KeyError :
170
173
self .guild_id = None
171
174
175
+
172
176
class RawReactionClearEvent (_RawReprMixin ):
173
177
"""Represents the payload for a :func:`on_raw_reaction_clear` event.
174
178
@@ -193,6 +197,7 @@ def __init__(self, data):
193
197
except KeyError :
194
198
self .guild_id = None
195
199
200
+
196
201
class RawReactionClearEmojiEvent (_RawReprMixin ):
197
202
"""Represents the payload for a :func:`on_raw_reaction_clear_emoji` event.
198
203
@@ -222,6 +227,7 @@ def __init__(self, data, emoji):
222
227
except KeyError :
223
228
self .guild_id = None
224
229
230
+
225
231
class RawInteractionCreateEvent (_RawReprMixin ):
226
232
227
233
__slots__ = ('_data' , '_member' , '_message_id' , '_channel_id' , '_guild_id' , '__token' )
@@ -242,15 +248,17 @@ def __init__(self, data, http=None):
242
248
self ._type = data .get ('type' , None )
243
249
self .__token = data .get ('token' , None )
244
250
self ._message_id = data .get ('message' ).get ('id' , None )
245
- self ._data = data .get ('data' , None )
246
- self ._member = data .get ('member' )
251
+ self ._data = data .get ('data' , None )
252
+ self ._member = data .get ('member' , None )
247
253
self .__interaction_id = data .get ('id' , 0 )
248
254
self ._guild_id = data .get ('guild_id' , 0 )
249
255
self ._channel_id = data .get ('channel_id' , 0 )
250
256
self .__application_id = data .get ('application_id' , 0 )
251
- self .guild = None
257
+ self .guild = None
252
258
self .channel = None
253
259
self .member : Member = None
260
+ self .user = None
261
+ self ._user = dict (self .member ._user ) if self .member else data .get ('user' )
254
262
self .button = ClickEvent (self ._data )
255
263
self .message : Message = None
256
264
self ._deferred = False
@@ -279,6 +287,7 @@ def token(self):
279
287
@property
280
288
def initeraction_id (self ):
281
289
return int (self .__interaction_id )
290
+
282
291
@property
283
292
def guild_id (self ):
284
293
return int (self ._guild_id )
@@ -291,6 +300,7 @@ def channel_id(self):
291
300
def message_id (self ):
292
301
return int (self ._message_id )
293
302
303
+
294
304
class ClickEvent :
295
305
def __init__ (self , data ):
296
306
if data :
@@ -306,4 +316,4 @@ def custom_id(self):
306
316
307
317
@property
308
318
def component_type (self ):
309
- return self ._component_type
319
+ return self ._component_type
0 commit comments