discord.py bot机器人重写AttributeError:'Bot'对象没有属性'send_message'

时间:2019-01-01 23:33:50

标签: python python-3.x discord.py

我为不和谐创造了一个机器人,当我在本地启动它时,它可以正常工作。 我在heroku上构建它,而且似乎也可以正常工作(感谢Tristo)。 但是在日志中,我收到以下消息:

2019-01-01T23:06:50.131982+00:00 app[worker.1]: Ignoring exception in on_message
2019-01-01T23:06:50.132550+00:00 app[worker.1]: Traceback (most recent call last):
2019-01-01T23:06:50.132589+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/discord/client.py", line 227, in _run_event
2019-01-01T23:06:50.132590+00:00 app[worker.1]:     await coro(*args, **kwargs)
2019-01-01T23:06:50.132593+00:00 app[worker.1]:   File "run.py", line 14, in on_message
2019-01-01T23:06:50.132594+00:00 app[worker.1]:     await client.send_message(message.channel, newMessage)
2019-01-01T23:06:50.132616+00:00 app[worker.1]: AttributeError: 'Bot' object has no attribute 'send_message'

我的程序是:

from discord.ext.commands import Bot
import os

BOT_PREFIX = ("?")
access_token= os.environ["ACCESS_TOKEN"]

client = Bot(command_prefix=BOT_PREFIX)

@client.event
async def on_message(message):
     if message.content.startswith("?"):
         newMessage = 'text' + str(message.content)[1:].upper() + '.png'
         await client.send_message(message.channel, newMessage)

client.run(access_token)

我的requirements.txt仅包含“ git + https://github.com/Rapptz/discord.py@rewrite#egg=discord.py[voice]

我尝试使用“发送”而不是“ send_message”(类似文章中的答案),但没有任何变化。

尽管出现属性消息错误,我的机器人仍可以正常工作。 请您帮我了解发生了什么事?

2 个答案:

答案 0 :(得分:0)

您已经安装了discord.py的重写分支,该分支以不同的方式执行sending messages

# before
await client.send_message(channel, 'Hello')

# after
await channel.send('Hello')

答案 1 :(得分:0)

await message.channel.send('Hello')是您所需要的!