import discord import socket from mstbot.cogs.admin import Admin from mstbot.cogs.other import Other from mstbot.utils import safe_send, log class MinecraftStatusBot(discord.ext.commands.Bot): def __init__(self): intents = discord.Intents.default() intents.messages = True intents.message_content = True super().__init__(command_prefix="$", intents=intents) async def setup_hook(self): await self.add_cog(Admin(self)) await self.add_cog(Other(self)) async def on_command_error(self, ctx: discord.ext.commands.Context, error: discord.ext.commands.CommandError): command = ctx.message.content.split()[0][1:] # Extract command name if isinstance(error, discord.ext.commands.CommandNotFound): await safe_send(f'Command "{command}" does not exist. Use `{ctx.prefix}help` for available commands.', ctx) elif isinstance(error, discord.ext.commands.MissingRequiredArgument): await log(ctx, f'Command "{command}" is missing required arguments. Use `{ctx.prefix}help {command}` for details.') elif isinstance(error, discord.ext.commands.MissingPermissions): await safe_send(f'You lack permissions: {", ".join(error.missing_perms)}.', ctx) elif isinstance(error, discord.ext.commands.CommandInvokeError) and isinstance(error.original, socket.gaierror): await log(ctx, "Could not connect, is the server down?") else: raise error