我正在尝试用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
我没有更多的想法可以工作。
答案 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):
谢谢大家为我服务!