【发布时间】:2020-09-02 07:01:44
【问题描述】:
我只是想让我的机器人为不和谐的用户添加一个角色。虽然语法看起来很简单,但显然我做错了什么。我是 python 新手,所以我很感激一些正确方向的指针!
bot = commands.Bot(command_prefix='!')
def getdiscordid(discordname):
for guild in bot.guilds:
for member in guild.members:
if member.name == discordname:
return member.id
@bot.command(name='role')
async def role(ctx):
await ctx.message.channel.send("Testing roles")
discordid = getdiscordid("Waldstein")
print ("id: " , discordid)
member = bot.get_user(discordid)
print ("member: ", member)
role = get(ctx.message.guild.roles, name="Egg")
print("role: ", role.name)
await member.add_roles(role)
print("done")
# error handler
@bot.event
async def on_command_error(ctx, error):
if isinstance(error, commands.errors.CheckFailure):
await ctx.send(error)
bot.run(TOKEN)
在此示例中,他成功检索了成员,但找不到 Egg 角色,并且没有添加角色。 [编辑:我更正了检索角色的行,该行有效,但仍然没有添加角色。添加了错误处理程序]
【问题讨论】:
-
Egg角色是否已经存在? -
确实如此!我在之前的尝试中得到了该部分的工作。
-
尝试用这个替换添加角色功能:
bot.add_role(member, role) -
我改成这个了,还是不行:@bot.command(name='role') async def role(ctx): await ctx.message.channel.send("测试角色") member = ctx.message.author print ("member: ", member) role = get(ctx.message.guild.roles, name="Egg") print("role: ", role.name) bot .add_role(成员,角色)
-
它会抛出任何错误吗?
标签: python discord discord.py