Browse Source

Allow MessageReference to be constructible by users

pull/6091/head
Rapptz 4 years ago
parent
commit
1014bfcb63
  1. 28
      discord/message.py
  2. 11
      docs/api.rst

28
discord/message.py

@ -217,6 +217,9 @@ class MessageReference:
.. versionadded:: 1.5
.. versionchanged:: 1.6
This class can now be constructed by users.
Attributes
-----------
message_id: Optional[:class:`int`]
@ -229,11 +232,20 @@ class MessageReference:
__slots__ = ('message_id', 'channel_id', 'guild_id', '_state')
def __init__(self, state, **kwargs):
self.message_id = utils._get_as_snowflake(kwargs, 'message_id')
self.channel_id = int(kwargs.pop('channel_id'))
self.guild_id = utils._get_as_snowflake(kwargs, 'guild_id')
def __init__(self, *, message_id, channel_id, guild_id=None):
self._state = None
self.message_id = message_id
self.channel_id = channel_id
self.guild_id = guild_id
@classmethod
def with_state(cls, state, data):
self = cls.__new__(cls)
self.message_id = utils._get_as_snowflake(data, 'message_id')
self.channel_id = int(data.pop('channel_id'))
self.guild_id = utils._get_as_snowflake(data, 'guild_id')
self._state = state
return self
@classmethod
def from_message(cls, message):
@ -416,8 +428,12 @@ class Message(Hashable):
self.nonce = data.get('nonce')
self.stickers = [Sticker(data=data, state=state) for data in data.get('stickers', [])]
ref = data.get('message_reference')
self.reference = MessageReference(state, **ref) if ref is not None else None
try:
ref = data['message_reference']
except KeyError:
self.reference = None
else:
self.reference = MessageReference.with_state(state, ref)
for handler in ('author', 'member', 'mentions', 'mention_roles', 'call', 'flags'):
try:

11
docs/api.rst

@ -2844,11 +2844,6 @@ Sticker
.. autoclass:: Sticker()
:members:
MessageReference
~~~~~~~~~~~~~~~~~
.. autoclass:: MessageReference()
:members:
RawMessageDeleteEvent
~~~~~~~~~~~~~~~~~~~~~~~
@ -2921,6 +2916,12 @@ AllowedMentions
.. autoclass:: AllowedMentions
:members:
MessageReference
~~~~~~~~~~~~~~~~~
.. autoclass:: MessageReference
:members:
Intents
~~~~~~~~~~

Loading…
Cancel
Save