Passed
Pull Request — main (#176)
by Yohann
01:42
created

guessing_game.Bot.guess()   B

Complexity

Conditions 7

Size

Total Lines 28
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 22
dl 0
loc 28
rs 7.952
c 0
b 0
f 0
cc 7
nop 3
1
import random
2
3
from pincer import Client, command
4
from pincer.objects import Intents, MessageContext
5
6
7
class Bot(Client):
8
9
    @command()
10
    async def guess(self, ctx: MessageContext, biggest_number: int):
11
12
        await ctx.reply(f"Starting the guessing game! Picker a number between 0 and {biggest_number}.")
13
        channel = await self.get_channel(ctx.channel_id)
14
        number = random.randint(0, biggest_number)
15
16
        try:
17
            async for next_message, in self.loop_for('on_message'):
18
                if next_message.author.bot:
19
                    continue
20
21
                try:
22
                    guessed_number = int(next_message.content)
23
                except ValueError:
24
                    await channel.send(f"{next_message.content} is not a number. Try again!")
25
                    continue
26
27
                if guessed_number > number:
28
                    await channel.send("Number is too high!")
29
                elif guessed_number < number:
30
                    await channel.send("Number is too low!")
31
                else:
32
                    await next_message.react("🚀")
33
                    await channel.send("Number is correct!")
34
35
        except TimeoutError:
36
            channel.send("Game timed out")
37
38
39
if __name__ == "__main__":
40
    bot = Bot("XXXYOURBOTTOKENHEREXXX", intents=Intents.GUILD_MESSAGES)
41
    bot.run()
42