Создание дискорд бота для спама
import discord
import time
client = discord.Client()
@client.event
async def on_ready():
print('Connected to Discord! {0.user}'.format(client))
@client.event
async def on_message(message):
if message.content.lower() == '"spam':
while True:
await message.channel.send('SPAM')
time.sleep(2)
if message.content.lower() == '"stop':
break
client.run('token')
Короче, хотел для тренировки создать бот для дискорда, который как только кто нибудь вводит сообщение "spam в чат дискорд-сервера, бот начинал спамить одно сообщение "SPAM, а как только кто нибудь вводил "stop то он бы останавливался, но у меня не получилось и он не останавливается, а продолжает спамить! Как решить данную проблему (мне нужен не только совет как это исправить, но и исправленный код, пожалуйста) Код вверху
Ответы (1 шт):
Автор решения: Tawero King
→ Ссылка
В асинхроне не силен но суть думаю плюс минус одна.
У тебя обработчик сообщений получил слово спам и ушёл в бесконечный цикл отправки.. и пока он в бесконечном цикле он не получит заветное слово стоп.
Попробуй так
spam = False #Создаем переменную спам, и устанавливаем значение фолс
@client.event
async def on_message(message):
if message.content.lower() == '"spam':
spam = True #Задаём true
while spam: #Если spam true то спамим, а если false то перестаём.
await message.channel.send('SPAM')
time.sleep(2)
if message.content.lower() == '"stop':
spam = False #Получили смс стоп, задали фолс для остановки спама