Настройка дискорд бота

Я недавно начал "кодить" на питоне и не могу понять, как написать код, чтобы бот отвечал не на каждое сообщение, а на каждое третье сообщение. Пример:

Я пишу случайное сообщение 1/3

Я пишу второе сообщение 2/3

Я пишу третье сообщение 3/3 и бот тут должен ответить

Вот мой код:

@bot.event
async def on_message(message):
if message.author.bot:
    return
await message.channel.send(f"{random.choice(possible_responses)}")
await bot.process_commands(message)

Ответы (1 шт):

Автор решения: Dima

Вы можете "считать" сообщения от конкретного пользователя и для счета кратного трем выполнять команду. Пример:

count = 0
@bot.event
async def on_message(message):
if not message.author.bot:
    count += 1
if count % 3 == 0:
    await message.channel.send(f"{random.choice(possible_responses)}")
    await bot.process_commands(message)

Если же вы хотите сделать так, чтобы бот считал эти каждые 3 сообщения для каждого конкретного человека по отдельности, то можете написать такой код:

count = 0
persons = {}
@bot.event
async def on_message(message):
    if not message.author.bot:
        if message.author not in persons:
            persons[message.author] = 1
        else:
            persons[message.author] += 1
    if persons[message.author] % 3 == 0:
        await message.channel.send(f"Congrats, you have sent {persons[message.author]} messages!")
→ Ссылка