aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts/evergreen/magic_8ball.py
blob: 61c68693d6b56db4b3857d308dab6f37a6445b9f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import json
import logging
import random
from pathlib import Path

from discord.ext import commands

from bot.bot import Bot

log = logging.getLogger(__name__)


class Magic8ball(commands.Cog):
    """A Magic 8ball command to respond to a user's question."""

    def __init__(self, bot: Bot):
        self.bot = bot
        with open(Path("bot/resources/evergreen/magic8ball.json"), "r", encoding="utf8") as file:
            self.answers = json.load(file)

    @commands.command(name="8ball")
    async def output_answer(self, ctx: commands.Context, *, question: str) -> None:
        """Return a Magic 8ball answer from answers list."""
        if len(question.split()) >= 3:
            answer = random.choice(self.answers)
            await ctx.send(answer)
        else:
            await ctx.send("Usage: .8ball <question> (minimum length of 3 eg: `will I win?`)")


def setup(bot: Bot) -> None:
    """Load the Magic8Ball cog."""
    bot.add_cog(Magic8ball(bot))