#python #discord.py
Вопрос:
Я пробовал много разных методов и искал их на YouTube, но все, что я пытался, не работало (устарело или не актуально), как я могу добавить роль упомянутому пользователю?
Это мой код, смотри, и то, что я написал в () в конце.
@client.command()
@commands.has_permissions(kick_members=True)
async def mute(ctx, member:discord.Member,*,reason=None):
Embed = discord.Embed(title = f'✅{member} was muted by {ctx.author.name}!',color = 0x00ff00)
Embed.add_field(name=f'Reason', value=f'{reason}')
Embed.set_image(url='https://ak.picdn.net/shutterstock/videos/1014234401/thumb/1.jpg')
await ctx.message.channel.send(embed=Embed)
await (The command that should add the role "Muted" to the mentioned user)
Ответ №1:
Сначала вам нужно получить роль от ролей гильдии.
role = ctx.guild.get_role(role_id)
или
role = discord.utils.get(ctx.guild.roles, name="Muted")
Теперь вы можете добавить роль целевому участнику
await member.add_roles(role)
Также вам не нужно писать
await ctx.message.channel.send()
Вы можете сделать это с помощью
await ctx.send()
Ответ №2:
Вы можете использовать:
role = discord.utils.get(member.guild.roles, name="Test")
await member.add_roles(role)
Таким образом, ваш код будет выглядеть следующим образом:
@client.command()
@commands.has_permissions(kick_members=True)
async def mute(ctx, member:discord.Member,*,reason=None):
Embed = discord.Embed(title = f'✅{member} was muted by {ctx.author.name}!',color = 0x00ff00)
Embed.add_field(name=f'Reason', value=f'{reason}')
Embed.set_image(url='https://ak.picdn.net/shutterstock/videos/1014234401/thumb/1.jpg')
await ctx.message.channel.send(embed=Embed)
role = discord.utils.get(member.server.roles, name="Muted") # Change name to the muted role name!
await member.add_roles(role)