45
45
from .components import _component_factory
46
46
from .embeds import Embed
47
47
from .emoji import Emoji
48
- from .enums import ChannelType , MessageType , try_enum
48
+ from .enums import ChannelType , MessageType , MessageReferenceType , try_enum
49
49
from .errors import InvalidArgument
50
50
from .file import File
51
51
from .flags import AttachmentFlags , MessageFlags
@@ -477,6 +477,11 @@ class MessageReference:
477
477
478
478
Attributes
479
479
----------
480
+ type: Optional[:class:`MessageReferenceType`]
481
+ The type of message reference. If this is not provided, assume default behavior.
482
+
483
+ .. versionadded:: 2.7
484
+
480
485
message_id: Optional[:class:`int`]
481
486
The id of the message referenced.
482
487
channel_id: :class:`int`
@@ -507,6 +512,7 @@ class MessageReference:
507
512
"guild_id" ,
508
513
"fail_if_not_exists" ,
509
514
"resolved" ,
515
+ "type" ,
510
516
"_state" ,
511
517
)
512
518
@@ -517,9 +523,11 @@ def __init__(
517
523
channel_id : int ,
518
524
guild_id : int | None = None ,
519
525
fail_if_not_exists : bool = True ,
526
+ type : MessageReferenceType | None = None
520
527
):
521
528
self ._state : ConnectionState | None = None
522
529
self .resolved : Message | DeletedReferencedMessage | None = None
530
+ self .type : MessageReferenceType | None = type
523
531
self .message_id : int | None = message_id
524
532
self .channel_id : int = channel_id
525
533
self .guild_id : int | None = guild_id
@@ -530,6 +538,7 @@ def with_state(
530
538
cls : type [MR ], state : ConnectionState , data : MessageReferencePayload
531
539
) -> MR :
532
540
self = cls .__new__ (cls )
541
+ self .type = try_enum (MessageReferenceType , data .get ("type" ))
533
542
self .message_id = utils ._get_as_snowflake (data , "message_id" )
534
543
self .channel_id = int (data .pop ("channel_id" ))
535
544
self .guild_id = utils ._get_as_snowflake (data , "guild_id" )
@@ -540,7 +549,7 @@ def with_state(
540
549
541
550
@classmethod
542
551
def from_message (
543
- cls : type [MR ], message : Message , * , fail_if_not_exists : bool = True
552
+ cls : type [MR ], message : Message , * , fail_if_not_exists : bool = True , type : MessageReferenceType = None
544
553
) -> MR :
545
554
"""Creates a :class:`MessageReference` from an existing :class:`~discord.Message`.
546
555
@@ -556,6 +565,11 @@ def from_message(
556
565
557
566
.. versionadded:: 1.7
558
567
568
+ type: Optional[:class:`MessageReferenceType`]
569
+ The type of reference to create. Defaults to reply.
570
+
571
+ .. versionadded:: 2.7
572
+
559
573
Returns
560
574
-------
561
575
:class:`MessageReference`
@@ -566,6 +580,7 @@ def from_message(
566
580
channel_id = message .channel .id ,
567
581
guild_id = getattr (message .guild , "id" , None ),
568
582
fail_if_not_exists = fail_if_not_exists ,
583
+ type = type ,
569
584
)
570
585
self ._state = message ._state
571
586
return self
0 commit comments