from discord.ext import commands import discord import random from typing import Optional def setup(bot: commands.Bot): bot.add_cog(Games(bot)) class Games(commands.Cog): """Gaming commands.""" def __init__(self, bot: commands.Bot): self.bot = bot @commands.command( description="Simulate dice rolls.", brief="Roll dice", help="Roll two dice." ) async def dice(self, ctx: commands.Context, amount: Optional[int], sides: Optional[int]): if amount and amount < 1: await ctx.send("You want me to roll less as one die? How!?") elif amount and amount > 25: await ctx.send("I can not hold so many dice at one time.") elif sides and sides < 2: await ctx.send("A die has physical minimum of 2 sides. Don't ask for impossible objects.") else: if sides: sides = sides else: sides = 6 if not amount: amount = 2 embed = discord.Embed(title = "Dice roll", description=f"Rolling {amount} dice, with {sides} sides.") while amount > 0: embed.insert_field_at(0, name=f"Die {amount}", value=random.randint(1, sides), inline=True) amount -= 1 await ctx.send(embed=embed) @commands.command( description="Ask the magic 8-ball.", brief="Pose question", help="Simulate the iconic 8-ball gimmic.", name="8ball" ) async def eightball(self, ctx: commands.Context, *, question: str = None): if not question: messages = [ "Don't forget to ask a question...", "Hey, that's not a question!", "What would you like to know?", "You want me to predict nothing?", "Are you intentionally not asking a question?", "Ask a question you tease!", "You will die alone.", ] else: messages = [ "Yes.", "No.", "Affirmative.", "No way!", "Negative.", "Positive.", "Correct.", "Incorrect.", "Likely", "Unlikely", "Maybe.", "Definately!", "Perhaps?", "Most indubitably.", "Does the pope shit in the woods?", "When hell freezes over.", "Only between 9 and 5.", "Only just before you die.", "ERROR: Probability failure.", "Ask again later.", "I don't know.", "Unpredictable.", ] await ctx.send(random.choice(messages))