diff --git a/bot.py b/bot.py index 3670617..de37a47 100644 --- a/bot.py +++ b/bot.py @@ -90,7 +90,7 @@ class DiscordBot(commands.Bot): if os.path.exists(init_file): try: await self.load_extension(f"cogs.{folder}") - if folder in ["owner", "help"]: + if folder in ["owner", "help", "botinfo"]: self.logger.info(f"Loaded extension '{folder}'") except Exception as e: exception = f"{type(e).__name__}: {e}" @@ -122,7 +122,8 @@ class DiscordBot(commands.Bot): continue try: await self.load_extension(f"cogs.{extension}") - self.logger.info(f"Loaded extension '{extension}'") + if extension in ["owner", "help", "botinfo"]: + self.logger.info(f"Loaded extension '{extension}'") except Exception as e: exception = f"{type(e).__name__}: {e}" self.logger.error( diff --git a/cogs/general/botinfo.py b/cogs/botinfo.py similarity index 67% rename from cogs/general/botinfo.py rename to cogs/botinfo.py index c3473d5..3b64682 100644 --- a/cogs/general/botinfo.py +++ b/cogs/botinfo.py @@ -1,13 +1,21 @@ import platform import discord +from discord import app_commands from discord.ext import commands +from discord.ext.commands import Context + + +class BotInfo(commands.Cog, name="botinfo"): + def __init__(self, bot) -> None: + self.bot = bot -def botinfo_command(): @commands.hybrid_command( name="botinfo", description="Get some useful (or not) information about the bot.", ) - async def botinfo(self, context): + @app_commands.allowed_contexts(guilds=True, dms=True, private_channels=True) + @app_commands.allowed_installs(guilds=True, users=True) + async def botinfo(self, context: Context) -> None: embed = discord.Embed( title="Syntrel Discord Bot", color=0x7289DA, @@ -22,9 +30,11 @@ def botinfo_command(): value=f"/ (Slash Commands) or {self.bot.bot_prefix} for normal commands", inline=False, ) - if getattr(context, "interaction", None): + if context.interaction: await context.interaction.response.send_message(embed=embed, ephemeral=True) else: await context.send(embed=embed) - - return botinfo \ No newline at end of file + + +async def setup(bot) -> None: + await bot.add_cog(BotInfo(bot)) diff --git a/cogs/general/__init__.py b/cogs/general/__init__.py index e37c04c..c82a93a 100644 --- a/cogs/general/__init__.py +++ b/cogs/general/__init__.py @@ -4,7 +4,6 @@ from discord.ext.commands import Context from .ping import ping_command from .uptime import uptime_command -from .botinfo import botinfo_command from .serverinfo import serverinfo_command from .feedback import feedback_command @@ -32,7 +31,7 @@ class General(commands.GroupCog, name="general"): color=0x7289DA ) embed.set_author(name="General", icon_url="https://yes.nighty.works/raw/y5SEZ9.webp") - embed.add_field(name="Available", value="ping, uptime, botinfo, serverinfo, feedback", inline=False) + embed.add_field(name="Available", value="ping, uptime, serverinfo, feedback", inline=False) await context.send(embed=embed) async def _invoke_hybrid(self, context: Context, name: str): @@ -50,10 +49,6 @@ class General(commands.GroupCog, name="general"): async def general_group_uptime(self, context: Context): await self._invoke_hybrid(context, "uptime") - @general_group.command(name="botinfo") - async def general_group_botinfo(self, context: Context): - await self._invoke_hybrid(context, "botinfo") - @general_group.command(name="serverinfo") async def general_group_serverinfo(self, context: Context): await self._invoke_hybrid(context, "serverinfo") @@ -78,14 +73,6 @@ class General(commands.GroupCog, name="general"): async def uptime(self, context): return await uptime_command()(self, context) - @commands.check(_require_group_prefix) - @commands.hybrid_command( - name="botinfo", - description="Get some useful (or not) information about the bot.", - ) - async def botinfo(self, context): - return await botinfo_command()(self, context) - @commands.check(_require_group_prefix) @commands.hybrid_command( name="serverinfo", @@ -108,6 +95,5 @@ async def setup(bot) -> None: bot.logger.info("Loaded extension 'general.ping'") bot.logger.info("Loaded extension 'general.uptime'") - bot.logger.info("Loaded extension 'general.botinfo'") bot.logger.info("Loaded extension 'general.serverinfo'") bot.logger.info("Loaded extension 'general.feedback'") diff --git a/cogs/help.py b/cogs/help.py index 9513655..672ac72 100644 --- a/cogs/help.py +++ b/cogs/help.py @@ -79,6 +79,18 @@ class Help(commands.Cog, name="help"): ) embed.set_author(name="Help", icon_url="https://yes.nighty.works/raw/T9mnBO.png") + standalone_commands = [] + botinfo_cmd = self.bot.tree.get_command("botinfo") + if botinfo_cmd: + standalone_commands.append("**/botinfo** ยป Get information about this bot") + + if standalone_commands: + embed.add_field( + name="", + value="".join(standalone_commands) + "\n", + inline=False + ) + available_categories = set() for cog_name in self.bot.cogs: mapped_category = category_mapping.get(cog_name.lower())