Hello, i need some help with my bot. I’ve coded a bot which reacts to the message “$shoot”, every time I send $shoot it should tell me if I hit the target or if I missed. Everything works fine but the problem is that sometimes I send the command “$shoot” and it just simply does nothing, I have to send the command multiple times for the bot to reply. Can anyone tell me where the problem is please?
The purpose of the bot is for a server event, where many people can shoot a snow ball to a snowman every 10 minutes. So if people send the command, discord channel will not allow them to type in 10 minutes, so i want the bot to reply every time it sees the command “$shoot”. Here is the code:
import os
import discord
import random
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('$shoot'):
accuracy1 = random.randint(1,10)
accuracy2 = random.randint(1,10)
accuracy3 = random.randint(1,10)
accuracy4 = random.randint(1,10)
#reply1 = random.randint(1,4)
if accuracy1 >= 1 and accuracy1 <= 5:
if accuracy2 >= 1 and accuracy2 <= 5:
if accuracy3 >= 1 and accuracy3 <= 5:
if accuracy4 >= 1 and accuracy4 <= 5:
"""await message.channel.send(accuracy1)
await message.channel.send(accuracy2)
await message.channel.send(accuracy3)
await message.channel.send(accuracy4)"""
await message.channel.send('**{0.author.name}** hit the snowman, congratulations!' .format(message))
else:
"""await message.channel.send(accuracy1)
await message.channel.send(accuracy2)
await message.channel.send(accuracy3)
await message.channel.send(accuracy4)"""
await message.channel.send('**{0.author.name}** missed the shot, try again!' .format(message))
client.run('TOKEN')