python python-3.x discord discord.py

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''