Discord.py рассылка спама по сообщениям

#discord.py

#discord.py

Вопрос:

мое сообщение является спамом, я хочу отправить его только 1 раз. как исправить?

@client.event async def on_message(message): if 'happy birthday' in message.content.lower(): await message.channel.send('Happy Birthday! 🎈🎉')

Ответ №1:

Потому что это on_message событие, и оно также обнаруживает сообщения бота, и бот отправляет сообщение, в том числе с днем рождения.

Если вы не хотите рассылать спам, вы можете проверить, является ли автор учетной записью бота message.author.bot .

 @client.event
async def on_message(message):
    if message.author.bot:
        return
    if 'happy birthday' in message.content.lower():
        await message.channel.send('Happy Birthday! 🎈🎉')
  

Ответ №2:

Вы создаете бесконечный цикл, когда бот отправляет ”Happy Birthday!” ”happy birthday” версию сообщения в нижнем регистре. Итак, бот считывает happy birthday и отправляет сообщение, Happy Birthday! . Которое бот распознает как новое сообщение, содержит новое сообщение (при преобразовании в нижний регистр) happy birthday , поэтому бот отправляет сообщение.

Есть два способа исправить это, вы можете изменить содержимое сообщения, чтобы оно не содержало happy birthday

Или вы можете проверить, отправлено ли сообщение от кого-либо, кроме бота, используя страницу message.author документов сообщения