Python 当用户加入服务器时,我如何将角色授予用户?
这是我不工作的代码,请记住我的bot位于多个服务器中Python 当用户加入服务器时,我如何将角色授予用户?,python,discord,discord.py,Python,Discord,Discord.py,这是我不工作的代码,请记住我的bot位于多个服务器中 @bot.event 成员加入时的异步定义(成员:discord.member): 角色=成员.公会.获取角色(746380043344937081) 等待成员。添加角色(角色,原因=无) 此代码不起作用,我已启用了正确的意图。您的设置没有问题,但错误如下: 无法通过ID定义所需的角色。在每台服务器上,角色的ID都不同 如果bot位于多台服务器上,则必须进行名称搜索,并且具有名称的角色必须存在于服务器上或加入后要授予该角色的每台服务器上 这
@bot.event
成员加入时的异步定义(成员:discord.member):
角色=成员.公会.获取角色(746380043344937081)
等待成员。添加角色(角色,原因=无)
此代码不起作用,我已启用了正确的意图。您的设置没有问题,但错误如下: 无法通过ID定义所需的角色。在每台服务器上,角色的ID都不同 如果bot位于多台服务器上,则必须进行名称搜索,并且具有名称的角色必须存在于服务器上或加入后要授予该角色的每台服务器上 这里有一个例子:
从discord.utils导入获取
intents=discord.intents.default()
intents.members=True
@机器人事件
成员加入时的异步定义(成员):
role=discord.utils.get(member.guild.roles,name=“Test”)
等待成员。添加_角色(角色)
打印(f“已将{role}分配给{member}!”)
记住还要将意图导入到代码中,而不仅仅是激活它们。如果你这样做了,你会没事的
我们所做的:
- 通过名称而不是ID获取角色
- 已导入
以按名称获取角色discord.utils.get
- 把结果打印出来看看是否有效
intents=intents