我的 discord 机器人给我权限错误
My discord bot is giving me permission errors
问题是我的机器人有管理员权限,但我不知道我是如何或为什么会出现权限错误的。当机器人应该为加入成员提供角色时,会弹出此错误。
@bot.event
async def on_member_join(member):
welcome_channel = discord.utils.get(member.guild.text_channels, name='welcome_channel')
guild=member.guild
if guild.member_count % 10 ==1: #to find the last digit of the member count to see if st or nd or rd or th should be placed at the end
embed=discord.Embed()
embed2=discord.Embed()
name=(member)
embed.set_author(name=f"{random.choice(greetings)} {name}. You are the {guild.member_count}st member", icon_url=member.avatar_url)
await welcome_channel.send(embed=embed)
embed2.set_thumbnail(url=member.avatar_url)
await welcome_channel.send(f"{random.choice(greetings)} {member.mention}. You are the {guild.member_count}st member", embed=embed2)
我得到的确切错误是:
Traceback (most recent call last):
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "c:\Users\Lenovo\Desktop\Python\VSC\Discord Bot\Main backup.py", line 53, in on_message
await message.author.add_roles(role)
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\member.py", line 777, in add_roles
await req(guild_id, user_id, role.id, reason=reason)
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\http.py", line 248, in request
raise Forbidden(r, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions
如 Traceback 中所述,错误可能不是来自 on_member_join()
,而是来自 on_message()
事件
您应该检查服务器角色的顺序。如果机器人的角色低于您要授予用户的角色,那么您的机器人没有权限这样做(如 here 所述)
示例:
问题是我的机器人有管理员权限,但我不知道我是如何或为什么会出现权限错误的。当机器人应该为加入成员提供角色时,会弹出此错误。
@bot.event
async def on_member_join(member):
welcome_channel = discord.utils.get(member.guild.text_channels, name='welcome_channel')
guild=member.guild
if guild.member_count % 10 ==1: #to find the last digit of the member count to see if st or nd or rd or th should be placed at the end
embed=discord.Embed()
embed2=discord.Embed()
name=(member)
embed.set_author(name=f"{random.choice(greetings)} {name}. You are the {guild.member_count}st member", icon_url=member.avatar_url)
await welcome_channel.send(embed=embed)
embed2.set_thumbnail(url=member.avatar_url)
await welcome_channel.send(f"{random.choice(greetings)} {member.mention}. You are the {guild.member_count}st member", embed=embed2)
我得到的确切错误是:
Traceback (most recent call last):
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "c:\Users\Lenovo\Desktop\Python\VSC\Discord Bot\Main backup.py", line 53, in on_message
await message.author.add_roles(role)
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\member.py", line 777, in add_roles
await req(guild_id, user_id, role.id, reason=reason)
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\http.py", line 248, in request
raise Forbidden(r, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions
如 Traceback 中所述,错误可能不是来自 on_member_join()
,而是来自 on_message()
事件
您应该检查服务器角色的顺序。如果机器人的角色低于您要授予用户的角色,那么您的机器人没有权限这样做(如 here 所述)
示例: