From 3c18d552c2c9eb15834b33687915a7b16c98883b Mon Sep 17 00:00:00 2001 From: Parker Date: Sat, 25 Jan 2025 22:58:41 -0600 Subject: reupload --- code/cogs/profile.py | 691 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 691 insertions(+) create mode 100644 code/cogs/profile.py (limited to 'code/cogs/profile.py') diff --git a/code/cogs/profile.py b/code/cogs/profile.py new file mode 100644 index 0000000..4f76c66 --- /dev/null +++ b/code/cogs/profile.py @@ -0,0 +1,691 @@ +import discord +import datetime +from discord.ext import commands +import psycopg2 +from discord import app_commands + +from global_variables import CONNECTION, BOT_COLOR +from bot import InsufficientFundsException +from database import Database + + +class Economy: + def __init__(self, bot): + self.bot = bot + self.economy = Database(bot) + + async def check_bet( + self, + user_id, + bet, + ): + bet = int(bet) + if bet <= 0: + raise commands.errors.BadArgument() + current = (await self.economy.get_entry(user_id))[1] + if bet > current: + raise InsufficientFundsException() + +#BEGIN CODE FOR RANK PURCHASING + +class AfterRankPurchase(discord.ui.View): + def __init__(self, bot, *, timeout = 180.0): + super().__init__(timeout=timeout) + self.bot = bot + self.economy = Database(bot) + self.value = None + + @discord.ui.button(label='Main Page', style=discord.ButtonStyle.blurple, row=2) + async def main_page(self, interaction: discord.Interaction, button: discord.ui.Button): + user_id = interaction.user.id + profile = await self.economy.get_entry(user_id) + balance = profile[1] + + cur = CONNECTION.cursor() + cur.execute("SELECT rank_name FROM profile WHERE user_id = %s ORDER BY rank_int DESC", (user_id,)) + data = cur.fetchall() + if data: + names = ', '.join([str(i[0]) for i in data]) + + else: + names = "No ranks" + + embed = discord.Embed( + title="Shop", + description=f"Choose from one of the categories below in order to shop for items \n\nBalance: **${balance:,}** \n\nRanks: **{names}**", + color=BOT_COLOR + ) + view = ShopView(self.bot) + await interaction.response.edit_message(embed=embed, view=view) + + +class ConfirmRankPurchase(discord.ui.View): + def __init__(self, bot, bet, rank_value, rank_name, *, timeout = 180.0): + super().__init__(timeout=timeout) + self.bot = bot + self.bet = bet + self.rank_int = int(rank_value) + self.rank_name = str(rank_name) + self.check = Economy(bot) + self.economy = Database(bot) + self.add_item(RankDropdown(bot)) + + + @discord.ui.button(label='Yes', style=discord.ButtonStyle.green, row=2) + async def yes(self, interaction: discord.Interaction, button: discord.ui.Button): + user_id = interaction.user.id + + cur = CONNECTION.cursor() + try: + await self.check.check_bet(user_id, self.bet) + cur.execute("INSERT INTO profile (user_id, rank_name, rank_int) VALUES(%s,%s,%s)", (user_id, self.rank_name, self.rank_int)) + CONNECTION.commit() + await self.economy.add_money(user_id, self.bet*-1) + + embed = discord.Embed( + title="Purchase Successful", + description=f"Your purchase was successful. In order to purchase more items, please click the main page button below.", + color=BOT_COLOR + ) + view = AfterRankPurchase(self.bot) + await interaction.response.edit_message(embed=embed, view=view) + + except psycopg2.errors.UniqueViolation: + embed = discord.Embed( + title="Rank Already Owned", + description=f"You already have that rank and therefore cannot buy it again. Try purchasing another rank.", + color=BOT_COLOR + ) + view = RankView(self.bot) + return await interaction.response.edit_message(embed=embed, view=view) + + except InsufficientFundsException: + embed = discord.Embed( + title="Not Enough Money", + description=f"You do not have enough money to make that purchase, come back once you've earned some more money.", + color=BOT_COLOR + ) + view = RankView(self.bot) + return await interaction.response.edit_message(embed=embed, view=view) + + + @discord.ui.button(label='No', style=discord.ButtonStyle.red, row=2) + async def no(self, interaction: discord.Interaction, button: discord.ui.Button): + embed = discord.Embed( + title="Purchase Cancelled, Taken Back to Shop", + description=f"Choose from one of the categories below in order to shop for items.", + color=BOT_COLOR + ) + view = ShopView(self.bot) + await interaction.response.edit_message(embed=embed, view=view) + + +class RankDropdown(discord.ui.Select): + def __init__(self, bot): + self.bot = bot + + options = [ + discord.SelectOption(label='Copper III', description="100,000", emoji = "<:copper_3:908535582534299688>"), + discord.SelectOption(label='Copper II', description="200,000", emoji = "<:copper_2:908535594714558524>"), + discord.SelectOption(label='Copper I', description="300,000", emoji = "<:copper_1:908535605644918895>"), + + discord.SelectOption(label='Bronze III', description="100,000,000", emoji = "<:bronze_3:908535616650760222>"), + discord.SelectOption(label='Bronze II', description="200,000,000", emoji = "<:bronze_2:908535628503863296>"), + discord.SelectOption(label='Bronze I', description="300,000,000", emoji = "<:bronze_1:908535639606198292>"), + + discord.SelectOption(label='Silver III', description="100,000,000,000", emoji = "<:silver_3:908535654667911168>"), + discord.SelectOption(label='Silver II', description="200,000,000,000", emoji = "<:silver_2:908535667263434782>"), + discord.SelectOption(label='Silver I', description="300,000,000,000", emoji = "<:silver_1:908535680064442398>"), + + discord.SelectOption(label='Gold III', description="100,000,000,000,000", emoji = "<:gold_3:908535691137388554>"), + discord.SelectOption(label='Gold II', description="200,000,000,000,000", emoji = "<:gold_2:908535705154764870>"), + discord.SelectOption(label='Gold I', description="300,000,000,000,000", emoji = "<:gold_1:908535742224027758>"), + + discord.SelectOption(label='Platinum III', description="100,000,000,000,000,000", emoji = "<:platinum_3:908535751900282880>"), + discord.SelectOption(label='Platinum II', description="200,000,000,000,000,000", emoji = "<:platinum_2:908535764629999656>"), + discord.SelectOption(label='Platinum I', description="300,000,000,000,000,000", emoji = "<:platinum_1:908535773689679932>"), + + discord.SelectOption(label='Diamond', description="123,456,789,000,000,000,000", emoji = "<:diamond:908535791700037702>"), + + discord.SelectOption(label='Champion', description="999,999,999,999,999,999,999,999,999", emoji = "<:champion:908535801338540042>"), + + ] + + super().__init__(placeholder='Choose a rank...', min_values=1, max_values=1, options=options) + + async def callback(self, interaction: discord.Interaction): + if self.values[0] == 'Copper III': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Copper III` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 1 + rank_name = 'Copper III' + bet = 100000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Copper II': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Copper II` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 2 + rank_name = 'Copper II' + bet = 200000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Copper I': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Copper I` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 3 + rank_name = 'Copper I' + bet = 300000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Bronze III': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Bronze III` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 4 + rank_name = 'Bronze III' + bet = 100000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Bronze II': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Bronze II` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 5 + rank_name = 'Bronze II' + bet = 200000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Bronze I': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Bronze I` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 6 + rank_name = 'Bronze I' + bet = 300000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Silver III': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Silver III` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 7 + rank_name = 'Silver III' + bet = 100000000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Silver II': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Silver II` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 8 + rank_name = 'Silver II' + bet = 200000000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Silver I': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Silver I` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 9 + rank_name = 'Silver I' + bet = 300000000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Gold III': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Gold III` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 10 + rank_name = 'Gold III' + bet = 100000000000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Gold II': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Gold II` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 11 + rank_name = 'Gold II' + bet = 200000000000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Gold I': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Gold I` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 12 + rank_name = 'Gold I' + bet = 300000000000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Platinum III': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Platinum III` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 13 + rank_name = 'Platinum III' + bet = 100000000000000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Platinum II': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Platinum II` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 14 + rank_name = 'Platinum II' + bet = 200000000000000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Platinum I': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Platinum I` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 15 + rank_name = 'Platinum I' + bet = 300000000000000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Diamond': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Diamond` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 16 + rank_name = 'Diamond' + bet = 123456789000000000000 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + if self.values[0] == 'Champion': + embed = discord.Embed( + title="Please Confirm Your Purchase", + description="If you are sure you would like to purchase the `Champion` rank, please click the 'Yes' button below, otherwise click the 'No' button.", + color=BOT_COLOR + ) + + rank_value = 17 + rank_name = 'Champion' + bet = 999999999999999999999999999 + + view = ConfirmRankPurchase(self.bot, bet, rank_value, rank_name) + await interaction.response.edit_message(embed=embed, view=view) + + +class RankView(discord.ui.View): + def __init__(self, bot, *, timeout = 180.0): + super().__init__(timeout=timeout) + self.bot = bot + self.economy = Database(bot) + self.add_item(RankDropdown(bot)) + + + @discord.ui.button(label='Main Page', style=discord.ButtonStyle.blurple, row=2) + async def main_page(self, interaction: discord.Interaction, button: discord.ui.Button): + user_id = interaction.user.id + profile = await self.economy.get_entry(user_id) + balance = profile[1] + + cur = CONNECTION.cursor() + cur.execute("SELECT rank_name FROM profile WHERE user_id = %s ORDER BY rank_int DESC", (user_id,)) + data = cur.fetchall() + if data: + names = ', '.join([str(i[0]) for i in data]) + + else: + names = "No ranks" + + embed = discord.Embed( + title="Shop", + description=f"Choose from one of the categories below in order to shop for items \n\nBalance: **${balance:,}** \n\nRanks: **{names}**", + color=BOT_COLOR + ) + view = ShopView(self.bot) + await interaction.response.edit_message(embed=embed, view=view) + + +##END RANK AND BEGIN PROFILE AND OTHER MAIN SHOP VIEWING + + +class ShopDropdown(discord.ui.Select): + def __init__(self, bot): + self.bot = bot + + options = [ + discord.SelectOption(label='Ranks', description='Buy ranks and show off your wealth'), + ] + + super().__init__(placeholder='Choose a category...', min_values=1, max_values=1, options=options) + + async def callback(self, interaction: discord.Interaction): + user_id = interaction.user.id + cur = CONNECTION.cursor() + cur.execute("SELECT rank_name FROM profile WHERE user_id = %s ORDER BY rank_int DESC", (user_id,)) + data = cur.fetchall() + if data: + names = ([str(i[0]) for i in data]) + + if "Copper III" in names: + copper_iii = "~~Copper III~~ - OWNED" + else: + copper_iii = "Copper III" + + if "Copper II" in names: + copper_ii = "~~Copper II~~ - OWNED" + else: + copper_ii = "Copper II" + + if "Copper I" in names: + copper_i = "~~Copper I~~ - OWNED" + else: + copper_i = "Copper I" + + if "Bronze III" in names: + bronze_iii = "~~Bronze III~~ - OWNED" + else: + bronze_iii = "Bronze III" + + if "Bronze II" in names: + bronze_ii = "~~Bronze II~~ - OWNED" + else: + bronze_ii = "Bronze II" + + if "Bronze I" in names: + bronze_i = "~~Bronze I~~ - OWNED" + else: + bronze_i = "Bronze I" + + if "Silver III" in names: + silver_iii = "~~Silver III~~ - OWNED" + else: + silver_iii = "Silver III" + + if "Silver II" in names: + silver_ii = "~~Silver II~~ - OWNED" + else: + silver_ii = "Silver II" + + if "Silver I" in names: + silver_i = "~~Silver I~~ - OWNED" + else: + silver_i = "Silver I" + + if "Gold III" in names: + gold_iii = "~~Gold III~~ - OWNED" + else: + gold_iii = "Gold III" + + if "Gold II" in names: + gold_ii = "~~Gold II~~ - OWNED" + else: + gold_ii = "Gold II" + + if "Gold I" in names: + gold_i = "~~Gold I~~ - OWNED" + else: + gold_i = "Gold I" + + if "Platinum III" in names: + platinum_iii = "~~Platinum III~~ - OWNED" + else: + platinum_iii = "Platinum III" + + if "Platinum II" in names: + platinum_ii = "~~Platinum II~~ - OWNED" + else: + platinum_ii = "Platinum II" + + if "Platinum I" in names: + platinum_i = "~~Platinum I~~ - OWNED" + else: + platinum_i = "Platinum I" + + if "Diamond" in names: + diamond = "~~Diamond~~ - OWNED" + else: + diamond = "Diamond" + + if "Champion" in names: + champion = "~~Champion~~ - OWNED" + else: + champion = "Champion" + else: + copper_iii = "Copper III" + copper_ii = "Copper II" + copper_i = "Copper I" + bronze_iii = "Bronze III" + bronze_ii = "Bronze II" + bronze_i = "Bronze I" + silver_iii = "Silver III" + silver_ii = "Silver II" + silver_i = "Silver I" + gold_iii = "Gold III" + gold_ii = "Gold II" + gold_i = "Gold I" + platinum_iii = "Platinum III" + platinum_ii = "Platinum II" + platinum_i = "Platinum I" + diamond = "Diamond" + champion = "Champion" + + if self.values[0] == 'Ranks': + embed = discord.Embed( + title="Ranks \nSpend your money in order to get more ranks.", + description="**Purchase a rank by clicking on one of the dropdown menus below, and then confirming your purchase.**", + color=BOT_COLOR + ) + + embed.add_field(name=f"{copper_iii}", value=f"```100,000```", inline=True) + embed.add_field(name=f"{copper_ii}", value=f"```200,000```", inline=True) + embed.add_field(name=f"{copper_i}", value=f"```300,000```", inline=True) + + embed.add_field(name=f"{bronze_iii}", value=f"```100,000,000```", inline=True) + embed.add_field(name=f"{bronze_ii}", value=f"```200,000,000```", inline=True) + embed.add_field(name=f"{bronze_i}", value=f"```300,000,000```", inline=True) + + embed.add_field(name=f"{silver_iii}", value=f"```100,000,000,000\n(100 bil.)```", inline=True) + embed.add_field(name=f"{silver_ii}", value=f"```200,000,000,000\n(200 bil.)```", inline=True) + embed.add_field(name=f"{silver_i}", value=f"```300,000,000,000\n(300 bil.)```", inline=True) + + embed.add_field(name=f"{gold_iii}", value=f"```100,000,000,000,\n000 (100 tril.)```", inline=True) + embed.add_field(name=f"{gold_ii}", value=f"```200,000,000,000,\n000 (200 tril.)```", inline=True) + embed.add_field(name=f"{gold_i}", value=f"```300,000,000,000,\n000 (300 tril.)```", inline=True) + + embed.add_field(name=f"{platinum_iii}", value=f"```100,000,000,000,000,000 (100 quad.)```", inline=True) + embed.add_field(name=f"{platinum_ii}", value=f"```200,000,000,000,000,000 (200 quad.)```", inline=True) + embed.add_field(name=f"{platinum_i}", value=f"```300,000,000,000,000,000 (300 quad.)```", inline=True) + + embed.add_field(name=f"{diamond}", value=f"```123,456,789,000,000,000,000\n(<123 quint.)```", inline=True) + + embed.add_field(name=f"{champion}", value=f"```999,999,999,999,999,999,999,\n999,999 (<999 sept.)```", inline=True) + + view = RankView(self.bot) + await interaction.response.edit_message(embed=embed, view=view) + + +class ShopView(discord.ui.View): + def __init__(self, bot, *, timeout = 180.0): + super().__init__(timeout=timeout) + self.economy = Database(bot) + self.bot = bot + self.add_item(ShopDropdown(bot)) + + + @discord.ui.button(label='Main Page', style=discord.ButtonStyle.blurple, row=2) + async def main_page(self, interaction: discord.Interaction, button: discord.ui.Button): + user_id = interaction.user.id + profile = await self.economy.get_entry(user_id) + balance = profile[1] + + cur = CONNECTION.cursor() + cur.execute("SELECT rank_name FROM profile WHERE user_id = %s ORDER BY rank_int DESC", (user_id,)) + data = cur.fetchall() + if data: + names = ', '.join([str(i[0]) for i in data]) + + else: + names = "No ranks" + + embed = discord.Embed( + title="Shop", + description=f"Choose from one of the categories below in order to shop for items \n\nBalance: **${balance:,}** \n\nRanks: **{names}**", + color=BOT_COLOR + ) + view = ShopView(self.bot) + await interaction.response.edit_message(embed=embed, view=view) + + +#BEGIN CODE FOR PROFILE VIEWING + + +class Profile(commands.Cog): + def __init__(self, bot): + self.bot = bot + self.economy = Database(bot) + + + @app_commands.command() + @app_commands.describe(user='User whose profile you would like to view') + async def profile( + self, + interaction: discord.Interaction, + user: discord.Member + ): + "Show the profile for the given user" + user_id = user.id if user else interaction.user.id + profile = await self.economy.get_entry(user_id) + balance = profile[1] + + cur = CONNECTION.cursor() + cur.execute("SELECT rank_name FROM profile WHERE user_id = %s ORDER BY rank_int DESC", (user_id,)) + data = cur.fetchall() + if data: + names = ', '.join([str(i[0]) for i in data]) + + else: + names = "No ranks" + + embed = discord.Embed( + title=f"Profile For - {await self.bot.fetch_user(user_id)}", + description=f"Below will show all economy information for this user", + color=BOT_COLOR + ) + + embed.add_field(name="Money Balance:", value=f"${balance:,}", inline=False) + embed.add_field(name="Ranks:", value=f"{names}", inline=False) + embed.set_thumbnail(url = user.avatar.url) + embed.set_footer(text=datetime.datetime.now(datetime.timezone.utc).strftime('%Y-%m-%d %H:%M:%S')+" UTC") + await interaction.response.send_message(embed=embed) + + + @app_commands.command() + async def shop( + self, + interaction: discord.Interaction + ): + "Shows the shop so that you can buy items" + user_id = interaction.user.id + profile = await self.economy.get_entry(user_id) + balance = profile[1] + + cur = CONNECTION.cursor() + cur.execute("SELECT rank_name FROM profile WHERE user_id = %s ORDER BY rank_int DESC", (user_id,)) + data = cur.fetchall() + if data: + names = ', '.join([str(i[0]) for i in data]) + + else: + names = "No ranks" + + embed = discord.Embed( + title="Shop", + description=f"Choose from one of the categories below in order to shop for items \n\nBalance: **${balance:,}** \n\nRanks: **{names}**", + color=BOT_COLOR + ) + view = ShopView(self.bot) + await interaction.response.send_message(embed=embed, view=view, ephemeral=True) + + +async def setup(bot): + await bot.add_cog(Profile(bot)) \ No newline at end of file -- cgit v1.2.3-70-g09d2