From 439022f058cb2b9bbf6e2b46c067f4c828a1cab0 Mon Sep 17 00:00:00 2001 From: Joe Robinson Date: Thu, 25 Nov 2021 03:25:44 +0000 Subject: Initial commit --- commands/basic_games.py | 73 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 commands/basic_games.py (limited to 'commands/basic_games.py') diff --git a/commands/basic_games.py b/commands/basic_games.py new file mode 100644 index 0000000..0b594ba --- /dev/null +++ b/commands/basic_games.py @@ -0,0 +1,73 @@ +from discord.ext.commands import Bot, Cog +from discord_slash import cog_ext, SlashContext +from discord_slash.utils.manage_commands import create_option, create_choice +from base import config +from models.user import User +import random +import yaml + + +class BasicGames(Cog): + def __init__(self, bot: Bot): + self.bot = bot + with open("config.yaml", "r") as yamlfile: + config = yaml.load(yamlfile, Loader=yaml.CLoader) + print("Read config successful") + self.config = config + + @cog_ext.cog_slash( + name="coin_flip", + description="Flip a coin", + guild_ids=[config["discord_server_id"]], + options=[ + create_option( + name="num_coins", + description="coins to bet", + option_type=4, + required=True, + ), + create_option( + name="choice", + description="heads or tails?", + option_type=3, + required=True, + choices=[ + create_choice(name="Heads", value="Heads"), + create_choice(name="Tails", value="Tails"), + ], + ), + ], + ) + async def coin_flip(self, ctx: SlashContext, num_coins: int, choice: int): + user = User.get(User.discord_id == ctx.author_id) + + await ctx.send(content=f"{user.username} is betting {num_coins} coins on {choice}") + result = random.randrange(0, 1) + choices = ["Heads", "Tails"] + await ctx.send(content=f"Coin flip lands on {choices[result]}") + if choice == choices[result]: + await ctx.send(content=f"You win {num_coins * 2} coins!") + user.add_coins(num_coins * 2) + else: + await ctx.send(content=f"You lose {num_coins} coins :(") + user.remove_coins(num_coins) + + user.save() + + @cog_ext.cog_slash( + name="dice", + description="Roll some dice.", + guild_ids=[config["discord_server_id"]], + ) + async def dice(self, ctx: SlashContext): + print("dice") + user = User.get(User.discord_id == ctx.author_id) + result = random.randrange(1, 6) + await ctx.send(content=f"{user.display_name}, you roll a {result}") + + +def setup(bot): + bot.add_cog(BasicGames(bot)) + + print("Loaded BasicGames") + print(config["discord_server_id"]) -- cgit v1.2.3