#python #discord #discord.py #bots
Вопрос:
Я пытаюсь заставить своего бота discord отправлять сообщение на канал в произвольное время вот мой код до сих пор:
@client.event async def on_message(message): if (random.randint(0,500) == 42) and (message.author != client.user): await message.channel.send("bruh") elif (random.randint(0,500) == 69) and (message.author != client.user): await message.channel.send("good plan") elif (random.randint(0,500) == 99) and (message.author != client.user): await message.channel.send("awwww hellll nahhhhhhh") elif (random.randint(0,500) == 76) and (message.author != client.user): await message.channel.send("I think we should see other people...") elif (random.randint(0,500) == 25) and (message.author != client.user): await message.channel.send("no.") elif (random.randint(0,500) == 56) and (message.author != client.user): await message.channel.send("bad idea") else: return
Каждый раз, когда я запускаю бота с этим кодом, мои команды вообще не работают. Что мне делать?
Ответ №1:
если у вас есть событие on_message, вы должны добавить await client.process_commands(message)
его в конце события, как это:
@client.event async def on_message(message): if (random.randint(0,500) == 42) and (message.author != client.user): await message.channel.send("bruh") elif (random.randint(0,500) == 69) and (message.author != client.user): await message.channel.send("good plan") elif (random.randint(0,500) == 99) and (message.author != client.user): await message.channel.send("awwww hellll nahhhhhhh") elif (random.randint(0,500) == 76) and (message.author != client.user): await message.channel.send("I think we should see other people...") elif (random.randint(0,500) == 25) and (message.author != client.user): await message.channel.send("no.") elif (random.randint(0,500) == 56) and (message.author != client.user): await message.channel.send("bad idea") else: return await client.process_commands(message)
или вы могли бы просто использовать @client.listen()
декоратора, как это:
@client.listen() async def on_message(message): if (random.randint(0,500) == 42) and (message.author != client.user): await message.channel.send("bruh") elif (random.randint(0,500) == 69) and (message.author != client.user): await message.channel.send("good plan") elif (random.randint(0,500) == 99) and (message.author != client.user): await message.channel.send("awwww hellll nahhhhhhh") elif (random.randint(0,500) == 76) and (message.author != client.user): await message.channel.send("I think we should see other people...") elif (random.randint(0,500) == 25) and (message.author != client.user): await message.channel.send("no.") elif (random.randint(0,500) == 56) and (message.author != client.user): await message.channel.send("bad idea") else: return
если вы используете событие listen (), вам не нужно обрабатывать команды