在命令中赋予角色的Discord Bot不起作用

时间:2020-01-01 22:30:36

标签: python discord discord.py

我正在尝试用Python制作一个Discord机器人,该机器人可以在命令中赋予人们角色。我尝试过:

import discord

client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))


@client.event
async def on_message(message):
    if message.author == client.user:
        return
    if message.content == '$attack':
        role = discord.utils.get(message.guild.roles, name='Do admin?')
        await member.add_roles(message.author, role)


client.run('MyToken!')

当我运行$ attack命令时,我得到了:

Ignoring exception in on_message
Traceback (most recent call last):
  File "/home/pandemicofnukes/PycharmProjects/bot/venv/lib/python3.7/site-packages/discord/client.py", line 271, in _run_event
    await coro(*args, **kwargs)
  File "/home/pandemicofnukes/PycharmProjects/bot/bot.py", line 31, in on_message
    await member.add_roles(message.author, role)
NameError: name 'member' is not defined

我没有更多的想法可以工作。

2 个答案:

答案 0 :(得分:0)

您正在使用discord.py版本v0.16中的语法,该语法不再受支持。
参见the guide for migrating to v1

client.add_roles(message.author, role)返回None时没有等待。
在没有看到更多代码的情况下,无法确定为什么会出现这种情况。

答案 1 :(得分:0)

问题解决了,我想通了……实际上是在from discord import Member中添加async def on_message(message):

谢谢大家为我服务!