Здравствуйте, перечитайте всю документацию на discord.py и, к сожалению, не нашли простую вещь, такую как событие on_member_join в чате, отправить сообщение?
Я использую нестандартную конструкцию, и такой клиент строительства = discord.Client(), но поскольку я понял новый bot = commands.Bot(command_prefix = '!')
import discord
from discord.ext import commands
bot = commands.Bot(command_prefix='!')
@bot.event
async def on_ready():
print('Logged in as')
print(bot.user.name)
print(bot.user.id)
print('------')
@bot.event
async def on_member_join(member):
print(member.name)
bot.send(member.name);
Распечатайте() вывод на консоль правильно, но отправить его в чат раздора, к сожалению, не работает (
Я также пробовал:
Но все время выдается ошибка. Объект "Bot" не имеет атрибута "say"
Скажите, пожалуйста, что я не так?
Версия discord.py
которую вы используете, изменит способ отправки сообщений.
discord.py
0.16, ветвь async - это текущая стабильная версия. Он имеет два способа отправки сообщений. (В приведенном ниже примечании обратите внимание, что Bot
является подклассом Client
, поэтому каждый Bot
также имеет доступ ко всем методам Client
)
Использование Client.send_message(target, message)
. Это то, что вы бы использовали в on_message(message)
await bot.send_message(message.channel, "I am responding to your message")
Использование Bot.say(message)
. Это простой способ отправки сообщений на канал, к которому была вызвана команда. Она работает только в командах.
await bot.say("I am responding to your command")
discord.py
1.0, ветвь "переписать" - это самая последняя ветвь. Он считал экспериментальным все же, но вполне применим. Одним из многих изменений является то, как работает отправка сообщений.
Теперь вместо того, чтобы на клиенте отправлять методы для отправки сообщений, у нас есть методы на вещах, которые получают сообщения для отправки им сообщения. Все они реализуют абстрактный базовый класс Messageable
и имеют метод send
. В вашем on_message
это будет выглядеть так:
await message.channel.send("I am responding to your message")
Я считаю, что вы используете версию 1.0