#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
документов сообщения