Allow MessageReference to be constructible by users
This commit is contained in:
		@@ -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
 | 
				
			||||||
~~~~~~~~~~
 | 
					~~~~~~~~~~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user