@@ -481,15 +481,26 @@ def __init__(self, state: ConnectionState, data: InteractionPayload) -> None:
481
481
self .deferred : bool = False
482
482
self .deferred_hidden : bool = False
483
483
self .deferred_modal : bool = False
484
- self .callback_message : Optional [Message ] = None
485
484
self ._command = None
486
485
self ._component = None
487
- self .messages : Optional [Dict [int , Union [Message , EphemeralMessage ]]] = {}
486
+ self ._callback_message : Optional [Union [Message , EphemeralMessage ]] = None
487
+ self .messages : Optional [Dict [Union [str , int ], Union [Message , EphemeralMessage ]]] = {}
488
488
489
489
def __repr__ (self ) -> str :
490
490
"""Represents a :class:`~discord.BaseInteraction` object."""
491
491
return f'<{ self .__class__ .__name__ } { ", " .join (["%s=%s" % (k , v ) for k , v in self .__dict__ .items () if k [0 ] != "_" ])} >'
492
-
492
+
493
+ @property
494
+ def callback_message (self ) -> Optional [Union [Message , EphemeralMessage ]]:
495
+ """Optional[Union[:class:`Message`, :class:`EphemeralMessage`]: The initial interaction response message,if any. (``@original``)"""
496
+ return self ._callback_message
497
+
498
+ @callback_message .setter
499
+ def callback_message (self , value : Optional [Union [Message , EphemeralMessage ]]) -> None :
500
+ self ._callback_message = value
501
+ if value :
502
+ self .messages ['@original' ] = value
503
+
493
504
async def _defer (
494
505
self ,
495
506
response_type : Optional [InteractionCallbackType ] = InteractionCallbackType .deferred_update_msg ,
@@ -863,14 +874,15 @@ async def respond(
863
874
else :
864
875
msg = Message (state = self ._state , channel = self .channel , data = data )
865
876
877
+
878
+ if not self .callback_message or is_initial :
879
+ self .callback_message = msg
880
+ else :
881
+ self .messages [msg .id ] = msg
866
882
if response_type is not MISSING or is_initial :
867
883
self .deferred = True
868
884
if is_hidden :
869
885
self .deferred_hidden = True
870
- if not self .callback_message and not self .deferred :
871
- self .callback_message = msg
872
- else :
873
- self .messages [msg .id ] = msg
874
886
if delete_after is not None :
875
887
await msg .delete (delay = delete_after )
876
888
return msg
0 commit comments