diff --git a/cogs/app_commands/__init__.py b/cogs/app_commands/__init__.py deleted file mode 100644 index 42e9366..0000000 --- a/cogs/app_commands/__init__.py +++ /dev/null @@ -1,30 +0,0 @@ -import nextcord -from nextcord.ext import commands -from utils import embed_success - - -class ApplicationCommandsExample(commands.Cog, name="App Commands"): - def __init__(self, bot: commands.Bot): - self.bot = bot - - @nextcord.slash_command(description="Slash command that responds with 'Hello World'") - async def my_slash_cmd(self, interaction: nextcord.Interaction): - await interaction.send(embed=embed_success("Hello World!")) - - @nextcord.slash_command(description="Slash command that repeats an argument") - async def my_slash_cmd_2(self, interaction: nextcord.Interaction, my_arg: str): - await interaction.send(embed=embed_success(f"You said: {my_arg}")) - - @nextcord.user_command() - async def my_user_cmd(self, interaction: nextcord.Interaction, member: nextcord.Member): - await interaction.send(f"Hello, {member.mention}!") - - @nextcord.message_command() - async def my_message_cmd(self, interaction: nextcord.Interaction, message: nextcord.Message): - await interaction.send(f"Hello, {message.author.mention}!") - - -# This function will be called when this extension is loaded. -# It is necessary to add these functions to the bot. -def setup(bot: commands.Bot): - bot.add_cog(ApplicationCommandsExample(bot)) diff --git a/cogs/help/__init__.py b/cogs/help/__init__.py deleted file mode 100644 index 31aeac1..0000000 --- a/cogs/help/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -from nextcord.ext import commands - -from .help_command import NewHelpCommand - - -class HelpCog(commands.Cog): - def __init__(self, bot: commands.Bot): - self.bot = bot - self._original_help_command = bot.help_command - bot.help_command = NewHelpCommand() - bot.help_command.cog = self - - def cog_unload(self): - self.bot.help_command = self._original_help_command - - -# setup functions for bot -def setup(bot: commands.Bot): - bot.add_cog(HelpCog(bot)) diff --git a/cogs/help/help_command.py b/cogs/help/help_command.py deleted file mode 100644 index 8634b78..0000000 --- a/cogs/help/help_command.py +++ /dev/null @@ -1,80 +0,0 @@ -import config -import nextcord -from nextcord.embeds import EmptyEmbed -from nextcord.ext import commands - - -class NewHelpCommand(commands.MinimalHelpCommand): - """Custom help command override using embeds""" - - COLOUR = nextcord.Colour.blurple() - - def get_ending_note(self): - """Returns note to display at the bottom""" - invoked_with = self.invoked_with - return f"Use {config.BOT_PREFIX}{invoked_with} [command] for more info on a command." - - def get_command_signature(self, command: commands.core.Command): - """Retrieves the signature portion of the help page.""" - return f"{command.qualified_name} {command.signature}" - - async def send_bot_help(self, mapping: dict): - """implements bot command help page""" - embed = nextcord.Embed(title="Bot Commands", colour=self.COLOUR) - avatar = self.context.bot.user.avatar - avatar_url = avatar.url if avatar else EmptyEmbed - embed.set_author(name=self.context.bot.user.name, icon_url=avatar_url) - description = self.context.bot.description - if description: - embed.description = description - - for cog, commands in mapping.items(): - name = "No Category" if cog is None else cog.qualified_name - filtered = await self.filter_commands(commands, sort=True) - if filtered: - # \u2002 = middle dot - value = "\u2002".join(f"{config.BOT_PREFIX}{c.name}" for c in filtered) - if cog and cog.description: - value = f"{cog.description}\n{value}" - embed.add_field(name=name, value=value) - - embed.set_footer(text=self.get_ending_note()) - await self.get_destination().send(embed=embed) - - async def send_cog_help(self, cog: commands.Cog): - """implements cog help page""" - embed = nextcord.Embed(title=f"{cog.qualified_name} Commands", colour=self.COLOUR) - if cog.description: - embed.description = cog.description - - filtered = await self.filter_commands(cog.get_commands(), sort=True) - for command in filtered: - embed.add_field( - name=self.get_command_signature(command), - value=command.short_doc or "...", - inline=False, - ) - - embed.set_footer(text=self.get_ending_note()) - await self.get_destination().send(embed=embed) - - async def send_group_help(self, group: commands.Group): - """implements group help page and command help page""" - embed = nextcord.Embed(title=group.qualified_name, colour=self.COLOUR) - if group.help: - embed.description = group.help - - if isinstance(group, commands.Group): - filtered = await self.filter_commands(group.commands, sort=True) - for command in filtered: - embed.add_field( - name=self.get_command_signature(command), - value=command.short_doc or "...", - inline=False, - ) - - embed.set_footer(text=self.get_ending_note()) - await self.get_destination().send(embed=embed) - - # Use the same function as group help for command help - send_command_help = send_group_help # type: ignore diff --git a/cogs/ping/__init__.py b/cogs/ping/__init__.py deleted file mode 100644 index f768c4e..0000000 --- a/cogs/ping/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -from nextcord.ext import commands -from utils import embed_success - - -class Ping(commands.Cog, name="Ping"): - def __init__(self, bot: commands.Bot): - self.bot = bot - - @commands.command(name="ping") - async def ping(self, ctx: commands.Context): - """A command which simply acknowledges the user's ping. - Usage: - ``` - ?ping - ``` - """ - # log in console that a ping was received - print("Received ping") - # respond to the message - await ctx.send(embed=embed_success("Pong!")) - - -# This function will be called when this extension is loaded. -# It is necessary to add these functions to the bot. -def setup(bot: commands.Bot): - bot.add_cog(Ping(bot)) diff --git a/cogs/register_highscore_channel/__init__.py b/cogs/register_highscore_channel/__init__.py index 665bb9e..4c12462 100644 --- a/cogs/register_highscore_channel/__init__.py +++ b/cogs/register_highscore_channel/__init__.py @@ -1,3 +1,7 @@ +""" +Bot command to register the highscores channel +""" + from nextcord.ext import commands import highscores # pylint: disable=import-error @@ -16,7 +20,7 @@ class RegisterHighscoreChannel(commands.Cog, name="Register HighScore Channel"): """ # log in console that a ping was received print(f"Registering {ctx.channel.id}.") - print(bot.open_highscores_data()) + print(highscores.open_highscores_data()) # respond to the message await ctx.send(f"Registered <#{ctx.channel.id}> as channel to post highscores in.") diff --git a/utils/__init__.py b/utils/__init__.py deleted file mode 100644 index 387d09a..0000000 --- a/utils/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .embedder import * diff --git a/utils/embedder.py b/utils/embedder.py deleted file mode 100644 index a87b413..0000000 --- a/utils/embedder.py +++ /dev/null @@ -1,75 +0,0 @@ -from typing import Optional, Union - -import nextcord -from nextcord.embeds import EmptyEmbed, _EmptyEmbed - -DEFAULT_COLOR = nextcord.Colour.blurple() -MAX_EMBED_DESCRIPTION_LENGTH = 4096 -MAX_EMBED_FIELD_TITLE_LENGTH = 256 -MAX_EMBED_FIELD_FOOTER_LENGTH = 2048 - - -def __trim(text: str, limit: int) -> str: - """limit text to a certain number of characters""" - return text[: limit - 3].strip() + "..." if len(text) > limit else text - - -def embed_success( - title: str, - description: Optional[str] = None, - footer: Optional[str] = None, - url: Union[str, _EmptyEmbed] = EmptyEmbed, - image: Optional[str] = None, - thumbnail: Optional[str] = None, -) -> nextcord.Embed: - """Embed a success message and an optional description, footer, and url""" - return build_embed(title, description, footer, url, nextcord.Colour.green(), image, thumbnail) - - -def embed_warning( - title: str, - description: Optional[str] = None, - footer: Optional[str] = None, - url: Union[str, _EmptyEmbed] = EmptyEmbed, - image: Optional[str] = None, - thumbnail: Optional[str] = None, -) -> nextcord.Embed: - """Embed a warning message and an optional description, footer, and url""" - return build_embed(title, description, footer, url, nextcord.Colour.gold(), image, thumbnail) - - -def embed_error( - title: str, - description: Optional[str] = None, - footer: Optional[str] = None, - url: Union[str, _EmptyEmbed] = EmptyEmbed, - image: Optional[str] = None, - thumbnail: Optional[str] = None, -) -> nextcord.Embed: - """Embed an error message and an optional description, footer, and url""" - return build_embed(title, description, footer, url, nextcord.Colour.red(), image, thumbnail) - - -def build_embed( - title: str, - description: Optional[str] = None, - footer: Optional[str] = None, - url: Union[str, _EmptyEmbed] = EmptyEmbed, - colour: nextcord.Colour = DEFAULT_COLOR, - image: Optional[str] = None, - thumbnail: Optional[str] = None, -) -> nextcord.Embed: - """Embed a message and an optional description, footer, and url""" - # create the embed - embed = nextcord.Embed( - title=__trim(title, MAX_EMBED_FIELD_TITLE_LENGTH), url=url, colour=colour - ) - if description: - embed.description = __trim(description, MAX_EMBED_DESCRIPTION_LENGTH) - if footer: - embed.set_footer(text=__trim(footer, MAX_EMBED_FIELD_FOOTER_LENGTH)) - if image: - embed.set_image(url=image) - if thumbnail: - embed.set_thumbnail(url=thumbnail) - return embed