Как заставить бота discord отправить сообщение, если кто-то, в частности, отправляет сообщение

#python #discord #discord.py

Вопрос:

Поэтому я хочу, чтобы, например, бот говорил «заткнись», когда конкретный человек отправляет сообщение

К настоящему времени это код:

 if message.author == (317330140486959106):
        await message.channel.send("shut up")
 

Комментарии:

1. пробовать message.author.id

Ответ №1:

Вы можете использовать событие on_message из discord.py:

 @client.event
async def on_message(message):
   if message.author.id == 317330140486959106:
       await message.channel.send("shut up")
 

где клиент-это ваш клиент бота discord.

Кроме того, вы должны обратить внимание, какую информацию вы размещаете здесь. Теперь все знают, что вы хотите нацелиться на этого пользователя и можете узнать его имя с помощью поиска идентификатора discord или чего-то подобного.

Ответ №2:

Следует отметить , что message.author это тип Member , поэтому вы сравниваете объект с числом-кроме того, нет необходимости заключать число в круглые скобки.

Чтобы правильно обработать каждое отправленное сообщение, вы должны использовать on_message событие, которое ожидает/прослушивает отправку сообщения на любых серверах, на которых может находиться бот.

Рабочий код будет выглядеть примерно так:

 @bot.event
async def on_message(message):
    targetId = 10101010
    if message.author.id == targetId:
        await message.channel.send("Shut up")