1

I made a bot for discord and it works fine when I launch it in local. I build it on heroku and It's seems to work fine too (thanks to Tristo). But in the log I get the following message :

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'

My programm is :

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)

My requirements.txt includes only "git+https://github.com/Rapptz/discord.py@rewrite#egg=discord.py[voice]"

I tried to use "send" instead of "send_message" (the answer in a similar post) but nothing changes.

My bot seems to work despite the attribute message error. Could you help me to understand what happened, please ?

2 Answers 2

1

You've installed the rewrite branch of discord.py that does sending messages in a different way

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

# after
await channel.send('Hello')
Sign up to request clarification or add additional context in comments.

2 Comments

Thanks anew Tristo. I changed it for "await message.channel.send(newMessage)". I got no error but I get double messages in discord now. Why ? May be it will be easier to change to regular version of discord instead ?
Are you having multiple instances of the bot running at the same time? Depending on what you want to accomplish either version is fine but the currently supported one is the rewrite
0

await message.channel.send('Hello') is what you need!

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.