5050from .invite import Invite
5151from .iterators import HistoryIterator , MessagePinIterator
5252from .mentions import AllowedMentions
53+ from .object import Object
5354from .partial_emoji import PartialEmoji , _EmojiTag
5455from .permissions import PermissionOverwrite , Permissions
5556from .role import Role
@@ -1208,6 +1209,8 @@ async def create_invite(
12081209 target_type : InviteTarget | None = None ,
12091210 target_user : User | None = None ,
12101211 target_application_id : int | None = None ,
1212+ roles : list [Role | Object ] | None = None ,
1213+ target_users_file : File | None = None ,
12111214 ) -> Invite :
12121215 """|coro|
12131216
@@ -1259,6 +1262,20 @@ async def create_invite(
12591262
12601263 .. versionadded:: 2.0
12611264
1265+ roles: Optional[List[Union[:class:`.Role`, :class:`.Object`]]]
1266+ The roles to give a user when joining through this invite.
1267+
1268+ You must have the :attr:`~Permissions.manage_roles` permission to do this and roles cannot be higher than your own.
1269+
1270+ .. versionadded:: 2.8
1271+
1272+ target_users_file: Optional[:class:`File`]
1273+ A CSV file with a single column of user IDs for all the users able to accept this invite.
1274+
1275+ You can use :func:`utils.users_to_csv` to generate a virtual CSV file from a sequence of user IDs.
1276+
1277+ .. versionadded:: 2.8
1278+
12621279 Returns
12631280 -------
12641281 :class:`~discord.Invite`
@@ -1283,8 +1300,11 @@ async def create_invite(
12831300 target_type = target_type .value if target_type else None ,
12841301 target_user_id = target_user .id if target_user else None ,
12851302 target_application_id = target_application_id ,
1303+ roles = [str (r .id ) for r in roles ] if roles else None ,
1304+ target_users_file = target_users_file ,
12861305 )
12871306 invite = Invite .from_incomplete (data = data , state = self ._state )
1307+
12881308 if target_event :
12891309 invite .set_scheduled_event (target_event )
12901310 return invite
0 commit comments