Spaces:
Runtime error
Runtime error
| # cogs/help.py | |
| import discord | |
| from discord import app_commands | |
| from discord.ext import commands | |
| # Define the categories and their fully updated Sueni commands | |
| HELP_DATA = { | |
| "Getting Started & Economy": { | |
| "description": "Welcome to sueni.bot! Here is your core daily loop to build your wealth.", | |
| "commands": [ | |
| ("`susp`", "Type this directly in chat (no slash) to drop a random character! (8m cooldown)"), | |
| ("`/sudaily`", "Claim your free 100 Coins every 24 hours."), | |
| ("`/subalance`", "Check your current Coins and Hero Dust."), | |
| ("`/sushop view`", "Browse the Void Shop to buy Time Winders and Dust Caches."), | |
| ("`/sumail`", "π¬ Check your inbox for system messages, auction payouts, and free rewards!") | |
| ] | |
| }, | |
| "Inventory & Wishlist": { | |
| "description": "Manage your growing collection using unique alphanumeric codes.", | |
| "commands": [ | |
| ("`/suinventory [series]`", "Page through your character collection. Use the dropdown to inspect cards!"), | |
| ("`/suinfo <code>`", "Inspect ANY character card globally by its code to see stats and ownership."), | |
| ("`/sufavourite <code>`", "Add a card you see on the market to your personal Wishlist."), | |
| ("`/suwishlist`", "View all your favourited cards.") | |
| ] | |
| }, | |
| "Progression & Crafting": { | |
| "description": "Turn your duplicate and unwanted cards into raw power.", | |
| "commands": [ | |
| ("`/suascend <code> [levels]`", "Spend Coins and Dust to level up a character (Max Lvl 100)."), | |
| ("`/sufuse <target_code> <sacrifice_code>`", "Sacrifice an exact duplicate to unlock Constellations (Max C6 Awakened!)."), | |
| ("`/suscrap <code>`", "Destroy an unwanted card to receive Coins or Dust (Yield depends on C/R/SR/SSR/UR)."), | |
| ("`/suforge`", "Spend 500 Hero Dust to guarantee a random SSR or UR drop!") | |
| ] | |
| }, | |
| "Vanguard & Combat": { | |
| "description": "Build your ultimate team to activate Elemental/Rarity Synergies and fight players.", | |
| "commands": [ | |
| ("`/suteam view`", "View your active 3-character Vanguard, Total Power, and Elemental Synergies."), | |
| ("`/suteam equip <slot> <code>`", "Assign a character to Slot 1, 2, or 3."), | |
| ("`/suhunt <target>`", "Attack a player on the Global Hit List to steal their Coins and Dust!"), | |
| ("`/suduel <target>`", "Challenge another player to a high-stakes PvP battle, wagering Coins, Dust, or Cards.") | |
| ] | |
| }, | |
| "Expeditions (Idle)": { | |
| "description": "Send your characters out into the world to gather passive income.", | |
| "commands": [ | |
| ("`/suexp start <code> <duration>`", "Send a character away for 4, 8, 12, or 24 hours."), | |
| ("`/suexp claim <code>`", "Welcome your character back and collect their Coins and Dust."), | |
| ("`/suexp list`", "View the countdown timers for all your active expeditions.") | |
| ] | |
| }, | |
| "Market & Trading": { | |
| "description": "The player-driven global economy. Buy, sell, and trade characters!", | |
| "commands": [ | |
| ("`/sumarket view`", "Browse the paginated global marketplace for characters."), | |
| ("`/sumarket list <code> <price> <currency>`", "Put one of your characters up for sale (10% Black Market Tax applies!)."), | |
| ("`/sumarket buy <listing_id>`", "Purchase a character directly from the market."), | |
| ("`/sutrade <user> <my_code> <their_code>`", "Propose a direct 1-for-1 character swap with another player.") | |
| ] | |
| }, | |
| "Profile & Leaderboards": { | |
| "description": "Flex your wealth, titles, and rarest pulls with gorgeous UI.", | |
| "commands": [ | |
| ("`/suprofile [user]`", "View your dynamic visual profile and 8-card cosmetic grid."), | |
| ("`/sudisplay set <slot> <code>`", "Equip a card to slots 1-8 on your visual profile."), | |
| ("`/sutitle list` & `/sutitle equip`", "View and equip your unlocked achievements."), | |
| ("`/suleaderboard <category>`", "Check the Top Wealth, Dust, Collectors, Grinders, or Pity rankings.") | |
| ] | |
| } | |
| } | |
| class HelpDropdown(discord.ui.Select): | |
| def __init__(self): | |
| options = [ | |
| discord.SelectOption(label="Getting Started & Economy", description="The basics, drops, and daily loop", emoji="π°"), | |
| discord.SelectOption(label="Inventory & Wishlist", description="Inspect and manage your collection", emoji="π"), | |
| discord.SelectOption(label="Progression & Crafting", description="Ascension, Constellations, and Forging", emoji="βοΈ"), | |
| discord.SelectOption(label="Vanguard & Combat", description="Synergies, Bounties, and PvP Duels", emoji="βοΈ"), | |
| discord.SelectOption(label="Expeditions (Idle)", description="Passive resource gathering", emoji="ποΈ"), | |
| discord.SelectOption(label="Market & Trading", description="Player-driven global economy", emoji="πͺ"), | |
| discord.SelectOption(label="Profile & Leaderboards", description="Visual grids, titles, and rankings", emoji="π") | |
| ] | |
| super().__init__(placeholder="Choose a category to explore...", min_values=1, max_values=1, options=options) | |
| async def callback(self, interaction: discord.Interaction): | |
| category = self.values[0] | |
| data = HELP_DATA[category] | |
| embed = discord.Embed( | |
| title=f"{category} Guide", | |
| description=f"*{data['description']}*", | |
| color=discord.Color.blue() | |
| ) | |
| for cmd, desc in data["commands"]: | |
| embed.add_field(name=cmd, value=desc, inline=False) | |
| embed.set_footer(text="Sueni Bot Framework | Use the dropdown menu to navigate") | |
| await interaction.response.edit_message(embed=embed) | |
| class HelpView(discord.ui.View): | |
| def __init__(self): | |
| super().__init__(timeout=180) | |
| self.add_item(HelpDropdown()) | |
| class HelpCog(commands.Cog): | |
| def __init__(self, bot): | |
| self.bot = bot | |
| async def help_command(self, interaction: discord.Interaction): | |
| embed = discord.Embed( | |
| title="π Sueni Bot Guide", | |
| description="Welcome to sueni.bot! Use the dropdown menu below to learn about the different systems, commands, and how to build the ultimate Vanguard team.", | |
| color=discord.Color.blurple() | |
| ) | |
| embed.set_thumbnail(url=self.bot.user.display_avatar.url) | |
| view = HelpView() | |
| await interaction.response.send_message(embed=embed, view=view) | |
| async def setup(bot): | |
| await bot.add_cog(HelpCog(bot)) | |