41
41
from .role import Role
42
42
from .invite import Invite
43
43
from .file import File
44
- from .components import Button , SelectionMenu , ActionRow
44
+ from .components import Button , SelectMenu , ActionRow
45
45
from .voice_client import VoiceClient , VoiceProtocol
46
46
from . import utils
47
47
@@ -175,7 +175,10 @@ def __init__(self, **kwargs):
175
175
self .id = kwargs .pop ('id' )
176
176
self .allow = int (kwargs .pop ('allow_new' , 0 ))
177
177
self .deny = int (kwargs .pop ('deny_new' , 0 ))
178
- self .type = sys .intern (kwargs .pop ('type' ))
178
+ type = kwargs .pop ('type' )
179
+ if type not in ('role' , 'user' , 'member' ):
180
+ type = {0 : 'role' , 1 : 'user' }.get (type )
181
+ self .type = sys .intern (type )
179
182
180
183
def _asdict (self ):
181
184
return {
@@ -962,8 +965,10 @@ async def send(self, content=None, *, tts=False, embed=None, embeds=None, compon
962
965
Indicates if the message should be sent using text-to-speech.
963
966
embed: :class:`~discord.Embed`
964
967
The rich embed for the content.
965
- components: List[:class:`discord.ActionRow`]
966
- A list of :type:`discord.Actionrow`'s
968
+ embeds: List[:class:`~discord.Embed`]
969
+ A list containing up to ten embeds
970
+ components: List[Union[:class:`ActionRow`, List[Union[:class:`Button`, :class:`SelectMenu`]]]]
971
+ A list of :type:`discord.ActionRow`'s or a list of :class:`Button`'s or :class:`SelectMenu`'
967
972
file: :class:`~discord.File`
968
973
The file to upload.
969
974
files: List[:class:`~discord.File`]
@@ -1032,12 +1037,12 @@ async def send(self, content=None, *, tts=False, embed=None, embeds=None, compon
1032
1037
for component in ([components ] if not isinstance (components , list ) else components ):
1033
1038
if isinstance (component , Button ):
1034
1039
_components .extend (ActionRow (component ).sendable ())
1035
- elif isinstance (component , SelectionMenu ):
1040
+ elif isinstance (component , SelectMenu ):
1036
1041
_components .extend (ActionRow (component ).sendable ())
1037
1042
elif isinstance (component , ActionRow ):
1038
1043
_components .extend (component .sendable ())
1039
1044
elif isinstance (component , list ):
1040
- _components .extend (ActionRow (* [obj for obj in component if any ([isinstance (obj , Button ), isinstance (obj , SelectionMenu )])]).sendable ())
1045
+ _components .extend (ActionRow (* [obj for obj in component if any ([isinstance (obj , Button ), isinstance (obj , SelectMenu )])]).sendable ())
1041
1046
components = _components
1042
1047
1043
1048
if allowed_mentions is not None :
@@ -1070,17 +1075,14 @@ async def send(self, content=None, *, tts=False, embed=None, embeds=None, compon
1070
1075
followup = kwargs .pop ('followup' , False )
1071
1076
if is_interaction_responce is False or None :
1072
1077
hidden = None
1073
- if hidden is not None :
1074
- embedlist = []
1075
- if embed :
1076
- embedlist .append (embed )
1077
- if embeds :
1078
- embedlist .extend ([e .to_dict () for e in embeds ])
1079
- embeds = embedlist
1080
- if len (embeds ) > 10 :
1081
- raise InvalidArgument (f'The maximum number of embeds that can be sent with a response is 10, get: { len (embeds )} ' )
1082
- elif embeds :
1083
- raise InvalidArgument ('Normal Messages dont support multible Embeds.' )
1078
+ embedlist = []
1079
+ if embed :
1080
+ embedlist .append (embed )
1081
+ if embeds :
1082
+ embedlist .extend ([e .to_dict () for e in embeds ])
1083
+ embeds = embedlist
1084
+ if len (embeds ) > 10 :
1085
+ raise InvalidArgument (f'The maximum number of embeds that can be sent with a response is 10, get: { len (embeds )} ' )
1084
1086
if file is not None :
1085
1087
if not isinstance (file , File ):
1086
1088
raise InvalidArgument ('file parameter must be File' )
@@ -1100,7 +1102,7 @@ async def send(self, content=None, *, tts=False, embed=None, embeds=None, compon
1100
1102
followup = followup )
1101
1103
else :
1102
1104
data = await state .http .send_files (channel .id , files = [file ], allowed_mentions = allowed_mentions ,
1103
- content = content , tts = tts , embed = embed , components = components ,
1105
+ content = content , tts = tts , embeds = embeds , components = components ,
1104
1106
nonce = nonce , message_reference = reference )
1105
1107
finally :
1106
1108
file .close ()
@@ -1144,7 +1146,7 @@ async def send(self, content=None, *, tts=False, embed=None, embeds=None, compon
1144
1146
flags = 64 if hidden is True else None ,
1145
1147
followup = followup )
1146
1148
else :
1147
- data = await state .http .send_message (channel .id , content , tts = tts , embed = embed , components = components ,
1149
+ data = await state .http .send_message (channel .id , content , tts = tts , embeds = embeds , components = components ,
1148
1150
nonce = nonce , allowed_mentions = allowed_mentions ,
1149
1151
message_reference = reference )
1150
1152
if not hidden is True :
0 commit comments