Функция "say" выдает AttributeError: у объекта 'str' нет атрибута 'channel' error

Я устанавливаю новый бот дискорд с помощью @bot.command() функциональность, однако, моя !say Команда не будет принимать ввод пользователя, а затем сказать боту

@bot.command()
async def say(message):
  #await bot.delete_message(message)
  await bot.send_message(message.channel, message)

Это для сервера разногласий, и бот предназначен для автоматического администрирования вещей для меня, а также для предоставления функций участников разногласий. Я пробовал:

  • bot.say (сообщение)
  • bot.say (message.channel, message)
  • bot.send_message (messsage)
  • bot.send_message (message.channel, сообщение)

Ожидаемый результат для бота, чтобы "сказать" сообщение пользователя, например, с !say Hello бот ответил бы "Привет"

1 ответ

Решение

Вы должны использовать channel.send() например:

@bot.command()
async def foo(ctx, arg):
    await ctx.send(arg)

Более подробные примеры можно найти по адресу: https://discordpy.readthedocs.io/en/rewrite/ext/commands/commands.html

Другие вопросы по тегам