Как сделать команду которая будет у отдельного участника забирать определенную роль?
Я пытался сделать что-то похожее, но выходит ошибка:
@bot.command()
@commands.has_permissions(manage_roles=True, ban_members=True, kick_members=True)
async def toff(ctx, user:discord.Member, role:discord.Role, reason):
await user.remove_roles(role)
em = discord.Embed(title="Снятие:", description=f"Участник {user.mention} был снят с должности {role.mention}\nпо причине: {reason}", color=0x1f8b4c)
await ctx.send(embed=em)
Ошибка:
[2023-08-20 16:34:53] [ERROR ] discord.ext.commands.bot: Ignoring exception in command toff
Traceback (most recent call last):
File "C:\Users\matve\Desktop\CreeperBot 1.0\lib\site-packages\discord\ext\commands\core.py", line 235, in wrapped
ret = await coro(*args, **kwargs)
File "C:\Users\matve\Desktop\CreeperBot 1.0\main.py", line 69, in toff
await user.remove_roles(role)
File "C:\Users\matve\Desktop\CreeperBot 1.0\lib\site-packages\discord\member.py", line 1096, in remove_roles
await req(guild_id, user_id, role.id, reason=reason)
File "C:\Users\matve\Desktop\CreeperBot 1.0\lib\site-packages\discord\http.py", line 739, in request
raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\matve\Desktop\CreeperBot 1.0\lib\site-packages\discord\ext\commands\bot.py", line 1350, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\matve\Desktop\CreeperBot 1.0\lib\site-packages\discord\ext\commands\core.py", line 1029, in invoke
await injected(*ctx.args, **ctx.kwargs) # type: ignore
File "C:\Users\matve\Desktop\CreeperBot 1.0\lib\site-packages\discord\ext\commands\core.py", line 244, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: Forbidden: 403 Forbidden (error code: 50013): Missing Permissions
Источник: Stack Overflow на русском