#python #discord.py
#python #discord.py
Вопрос:
Я создаю своего бота discord и выполняю команду отключения звука
@bot.command(pass_context = True)
@commands.has_any_role('Тестеры',764167672971657236)
async def мут(ctx, member: discord.Member):
role = discord.utils.get(member.guild.roles, name="muted")
await member.add_roles(role, member)
embed=discord.Embed(title="Пользователь получил бан чата!", description="**{0}** получил бан чата от **{1}**! За размутом обращайтесь к администратору!".format(member, ctx.message.author), color=0xff00f6)
await ctx.send(embed=embed)
и это работает, но после перезагрузки компьютера я получил сообщение об ошибке
Traceback (most recent call last):
File "C:UsersIvanAppDataLocalProgramsPythonPython38-32libsite-packagesdiscordextcommandsbot.py", line 903, in invoke
await ctx.command.invoke(ctx)
File "C:UsersIvanAppDataLocalProgramsPythonPython38-32libsite-packagesdiscordextcommandscore.py", line 859, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "C:UsersIvanAppDataLocalProgramsPythonPython38-32libsite-packagesdiscordextcommandscore.py", line 94, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'NoneType' object has no attribute 'id'
Пожалуйста, помогите
Комментарии:
1. С идентификатором ничего не связано. Вы уверены, что этот код вызывает проблему?
Ответ №1:
Бот не может получить роль с именем «muted», а также это не то, как вы даете роли.
Ниже приведен пересмотренный код:
@bot.command(pass_context = True)
@commands.has_any_role('Тестеры',764167672971657236)
async def мут(ctx, member: discord.Member):
role = discord.utils.get(member.guild.roles, name="muted") # make sure role is named muted and not Muted
await member.add_roles(role)
embed=discord.Embed(title="Пользователь получил бан чата!", description="**{0}** получил бан чата от **{1}**! За размутом обращайтесь к администратору!".format(member, ctx.message.author), color=0xff00f6)
await ctx.send(embed=embed)