'How can I add users in a private room with a command when they are mentioned?
I am creating a command and in this command when I run it, it has to create a room and add the people mentioned. Instead, it adds the user who used the command. How can I fix my code?
@client.command()
async def real1v1(ctx, member: discord.Member, arg, product, *, stars):
embed = discord.Embed(title = f "New realistic 1v1 wager for {arg}", description = f "** Team 1: {product} vs Team 2: {stars} **", color = discord.Color.red())
guild = ctx.guild
member = ctx.author
member2 = ctx.author.member
admin_role = get(guild.roles, name = "RoleTestAdmin")
overwrites = {
guild.default_role:discord.PermissionOverwrite(read_messages = False),
member:discord.PermissionOverwrite(read_messages = True),
member2:discord.PermissionOverwrite(read_messages = True),
admin_role:discord.PermissionOverwrite(read_messages = True)
}
channel = await guild.create_text_channel(f'Team1-Team2 ', overwrites = overwrites)
#await channel.send(f"{product} {stars}")
embed.set_footer(text = f"{ctx.guild.name}")
await ctx.send(embed = embed)
Solution 1:[1]
You can use discord.Greedy. For example:
async def real1v1(ctx, target_members: discord.Greedy[discord.Member]):
# `target_members` is a list of members
# do stuff
#await ctx.send(f'member 0 of {len(members)} is {members[0].display_name}')
This can be invoked like real1v1 @member name#1111 @anothermember and you'll get a list of the members.
For your overwrites, you can add the new members like this:
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages = False),
member: discord.PermissionOverwrite(read_messages = True),
member2: discord.PermissionOverwrite(read_messages = True),
admin_role: discord.PermissionOverwrite(read_messages = True)
}
overwrites.update({member: discord.PermissionOverwrite(read_messages=True) for member in target_members})
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Eric Jin |
