У меня простой бот для модерации, одна из команд которого используется для опроса кого-либо (повышения его роли до модератора) с использованием Discord.py.
Это рассматриваемая команда, которая находится внутриcog (командами являются discord.ext.commands):
commands.command(name='mod', hidden = True)
#just the mods, the bot role and the server creator can use this command, hence why the decorator below:
@commands.has_any_role("role1","role2", "role3")
async def mod(self, ctx, member:discord.Member = None):
try:
if member == None:
await ctx.send('no argument given')
elif member == ctx.message.author:
await ctx.send('You already are moderator')
else:
await discord.Member.add_roles(392763334052544522, atomic=True)
except Exception as e:
await ctx.send(f"There was an error while trying to elevate {member}. Exception: {e}")
print("\n" + f"There was an error while {ctx.message.author} tried to elevate {member}. Exception: {e}")
Сам бот отлично загружается.При попытке запустить! Mod @ username # 1234 это отображается на терминале из-за перехвата исключения, которое я установил для команды
Произошла ошибка, в то время как (Mydiscorduser) пытался поднять (anotherdiscorduser),Исключение: объект 'int' не имеет атрибута 'id'