mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-06-07 04:17:16 +00:00
Allow MessageReference to be constructible by users
This commit is contained in:
parent
bd6ab93348
commit
1014bfcb63
@ -217,6 +217,9 @@ class MessageReference:
|
|||||||
|
|
||||||
.. versionadded:: 1.5
|
.. versionadded:: 1.5
|
||||||
|
|
||||||
|
.. versionchanged:: 1.6
|
||||||
|
This class can now be constructed by users.
|
||||||
|
|
||||||
Attributes
|
Attributes
|
||||||
-----------
|
-----------
|
||||||
message_id: Optional[:class:`int`]
|
message_id: Optional[:class:`int`]
|
||||||
@ -229,11 +232,20 @@ class MessageReference:
|
|||||||
|
|
||||||
__slots__ = ('message_id', 'channel_id', 'guild_id', '_state')
|
__slots__ = ('message_id', 'channel_id', 'guild_id', '_state')
|
||||||
|
|
||||||
def __init__(self, state, **kwargs):
|
def __init__(self, *, message_id, channel_id, guild_id=None):
|
||||||
self.message_id = utils._get_as_snowflake(kwargs, 'message_id')
|
self._state = None
|
||||||
self.channel_id = int(kwargs.pop('channel_id'))
|
self.message_id = message_id
|
||||||
self.guild_id = utils._get_as_snowflake(kwargs, 'guild_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
|
self._state = state
|
||||||
|
return self
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_message(cls, message):
|
def from_message(cls, message):
|
||||||
@ -416,8 +428,12 @@ class Message(Hashable):
|
|||||||
self.nonce = data.get('nonce')
|
self.nonce = data.get('nonce')
|
||||||
self.stickers = [Sticker(data=data, state=state) for data in data.get('stickers', [])]
|
self.stickers = [Sticker(data=data, state=state) for data in data.get('stickers', [])]
|
||||||
|
|
||||||
ref = data.get('message_reference')
|
try:
|
||||||
self.reference = MessageReference(state, **ref) if ref is not None else None
|
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'):
|
for handler in ('author', 'member', 'mentions', 'mention_roles', 'call', 'flags'):
|
||||||
try:
|
try:
|
||||||
|
11
docs/api.rst
11
docs/api.rst
@ -2844,11 +2844,6 @@ Sticker
|
|||||||
.. autoclass:: Sticker()
|
.. autoclass:: Sticker()
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
MessageReference
|
|
||||||
~~~~~~~~~~~~~~~~~
|
|
||||||
.. autoclass:: MessageReference()
|
|
||||||
:members:
|
|
||||||
|
|
||||||
RawMessageDeleteEvent
|
RawMessageDeleteEvent
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
@ -2921,6 +2916,12 @@ AllowedMentions
|
|||||||
.. autoclass:: AllowedMentions
|
.. autoclass:: AllowedMentions
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
|
MessageReference
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. autoclass:: MessageReference
|
||||||
|
:members:
|
||||||
|
|
||||||
Intents
|
Intents
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user