python - AttributeError: el objeto ''Cliente'' no tiene el atributo ''send_message''(Discord Bot)
python-3.x discord.py (1)
Probablemente esté ejecutando la versión de reescritura de discord.py, ya que el objeto
discord.Client
no tiene un método
send_message
.
Para solucionar su problema, puede tenerlo como:
async def test(author, message):
await message.channel.send(''I heard you! {0.name}''.format(author))
pero por lo que veo haciendo, recomiendo usar la extensión de comandos
Esto hace que la creación de un bot y comandos para el bot sea mucho más simple, por ejemplo, aquí hay un código que hace exactamente lo mismo que el tuyo
from discord.ext import commands
bot = commands.Bot(command_prefix=''!'')
@bot.command()
async def test(ctx):
await ctx.send(''I heard you! {0}''.format(ctx.author))
bot.run(''token'')
Por alguna razón, send_message no funciona correctamente en mi bot de Discord y no puedo encontrar la forma de solucionarlo.
import asyncio
import discord
client = discord.Client()
@client.async_event
async def on_message(message):
author = message.author
if message.content.startswith(''!test''):
print(''on_message !test'')
await test(author, message)
async def test(author, message):
print(''in test function'')
await client.send_message(message.channel, ''Hi %s, i heard you.'' % author)
client.run("key")
on_message !test
in test function
Ignoring exception in on_message
Traceback (most recent call last):
File "C:/Users/indit/AppData/Roaming/Python/Python36/site-packages/discord/client.py", line 223, in _run_event
yield from coro(*args, **kwargs)
File "bot.py", line 15, in on_message
await test(author, message)
File "bot.py", line 21, in test
await client.send_message(message.channel, ''Hi %s, i heard you.'' % author)
AttributeError: ''Client'' object has no attribute ''send_message''