refactor: group commands for miscellaneous and utilities cogs

Introduces group commands for both miscellaneous and utilities cogs, allowing users to access subcommands via `.miscellaneous <subcommand>` and `.utilities <subcommand>`. Adds embedded help messages and hybrid invocation logic for easier command management and user guidance.
This commit is contained in:
neoarz
2025-09-29 08:46:21 -04:00
parent 2973d0fd25
commit a67e80a6eb
2 changed files with 59 additions and 0 deletions

View File

@@ -13,6 +13,44 @@ class Miscellaneous(commands.GroupCog, name="miscellaneous"):
self.bot = bot
super().__init__()
@commands.group(name="miscellaneous", invoke_without_command=True)
async def miscellaneous_group(self, context: Context):
embed = discord.Embed(
title="Miscellaneous Commands",
description="Use `.miscellaneous <subcommand>` or `/miscellaneous <subcommand>`.",
color=0x7289DA
)
embed.set_author(name="Miscellaneous", icon_url="https://yes.nighty.works/raw/YxMC0r.png")
embed.add_field(name="Available", value="rr, labubu, tryitandsee, piracy, keanu", inline=False)
await context.send(embed=embed)
async def _invoke_hybrid(self, context: Context, name: str):
command = self.bot.get_command(name)
if command is not None:
await context.invoke(command)
else:
await context.send(f"Unknown miscellaneous command: {name}")
@miscellaneous_group.command(name="rr")
async def miscellaneous_group_rr(self, context: Context):
await self._invoke_hybrid(context, "rr")
@miscellaneous_group.command(name="labubu")
async def miscellaneous_group_labubu(self, context: Context):
await self._invoke_hybrid(context, "labubu")
@miscellaneous_group.command(name="tryitandsee")
async def miscellaneous_group_tryitandsee(self, context: Context):
await self._invoke_hybrid(context, "tryitandsee")
@miscellaneous_group.command(name="piracy")
async def miscellaneous_group_piracy(self, context: Context):
await self._invoke_hybrid(context, "piracy")
@miscellaneous_group.command(name="keanu")
async def miscellaneous_group_keanu(self, context: Context):
await self._invoke_hybrid(context, "keanu")
@commands.hybrid_command(
name="rr",
description="Rickroll"

View File

@@ -9,6 +9,27 @@ class Utilities(commands.GroupCog, name="utilities"):
self.bot = bot
super().__init__()
@commands.group(name="utilities", invoke_without_command=True)
async def utilities_group(self, context: Context):
embed = discord.Embed(
title="Utilities Commands",
description="Use `.utilities <subcommand>` or `/utilities <subcommand>`.",
color=0x7289DA
)
embed.add_field(name="Available", value="translate", inline=False)
await context.send(embed=embed)
async def _invoke_hybrid(self, context: Context, name: str, **kwargs):
command = self.bot.get_command(name)
if command is not None:
await context.invoke(command, **kwargs)
else:
await context.send(f"Unknown utilities command: {name}")
@utilities_group.command(name="translate")
async def utilities_group_translate(self, context: Context, text: str = None, to_lang: str = "en", from_lang: str = None):
await self._invoke_hybrid(context, "translate", text=text, to_lang=to_lang, from_lang=from_lang)
@commands.hybrid_command(
name="translate",
description="Translate text to another language"