@@ -361,13 +361,18 @@ class MessageInteraction:
361
361
user: :class:`User`
362
362
The user who invoked the interaction.
363
363
"""
364
- def __init__ (self , state : ConnectionState , data : MessageInteractionPayload ) :
364
+ def __init__ (self , state : ConnectionState , data : MessageInteractionPayload , guild : Optional [ Guild ] = None ) -> None :
365
365
self ._state : ConnectionState = state
366
366
self .id : int = int (data ['id' ])
367
367
self .type : InteractionType = try_enum (InteractionType , data ['type' ])
368
- self .name : str = data ['name' ]
368
+ self .name : Optional [ str ] = data ['name' ]
369
369
self .user : User = state .store_user (data ['user' ])
370
- self .partial_member : Optional [PartialMemberPayload ] = data .get ('member' , None ) # TODO: Use a model for this
370
+ try :
371
+ member = data ['member' ]
372
+ except KeyError :
373
+ self .member : Optional [Member ] = None
374
+ else :
375
+ self .member : Optional [Member ] = guild .get_member (self .user .id ) or Member (data = member , state = state , guild = guild )
371
376
372
377
def __repr__ (self ) -> str :
373
378
return f'<MessageInteraction command={ self .name } user={ self .user } interaction_id={ self .id } >'
@@ -664,7 +669,11 @@ def __init__(self, *, state: ConnectionState, channel, data: MessagePayload):
664
669
self .application = data .get ('application' ) # TODO: make this a class
665
670
self .activity = data .get ('activity' ) # TODO: make this a class
666
671
interaction = data .get ('interaction' )
667
- self .interaction : Optional [MessageInteraction ] = MessageInteraction (state = state , data = data ) if interaction else None
672
+ self .interaction : Optional [MessageInteraction ] = MessageInteraction (
673
+ state = state ,
674
+ data = interaction ,
675
+ guild = self .guild
676
+ ) if interaction else None
668
677
self .channel : Messageable = channel
669
678
self ._edited_timestamp : datetime = utils .parse_time (data ['edited_timestamp' ])
670
679
self .type : MessageType = try_enum (MessageType , data ['type' ])
0 commit comments