Настройка дискорд бота
Я недавно начал "кодить" на питоне и не могу понять, как написать код, чтобы бот отвечал не на каждое сообщение, а на каждое третье сообщение. Пример:
Я пишу случайное сообщение 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!")