Merge pull request #11 from strNophix/command-description-config

slash command descriptions configurable by config
This commit is contained in:
2021-11-06 14:59:43 +01:00
committed by GitHub
6 changed files with 44 additions and 35 deletions
+9 -18
View File
@@ -12,15 +12,13 @@ from discord.ext.commands import Context
from bot import ChristmasBot
from utils.database import AutoJoin
from utils.EmbedGenerator import EmbedGenerator
from utils.classes import BaseCog
from utils.paginator import HelpPaginator
class InformationCog(commands.Cog, name="Information"):
def __init__(self, bot: ChristmasBot):
self.bot = bot
class InformationCog(BaseCog, name="Information"):
@commands.command(name="ping", aliases=["pong"])
@commands.cooldown(rate=1, per=5, type=commands.BucketType.user)
@commands.command(description="PONG!", aliases=["pong"])
async def ping(self, ctx: Context):
"""Test the latency"""
avatar = ctx.author.avatar.with_static_format("jpeg")
@@ -41,24 +39,18 @@ class InformationCog(commands.Cog, name="Information"):
embed.set_footer(text=f"Requested by: {ctx.author}", icon_url=f"{avatar}")
await msg.edit(embed=embed)
@commands.command(
name="invite", description="Gets the invite link!", slash_commands=True
)
@commands.command(name="invite")
@commands.cooldown(rate=1, per=5, type=commands.BucketType.user)
async def invite(self, ctx: Context):
"""Gets the invite link!"""
"""Gets the invite link"""
await EmbedGenerator.Message(
ctx, "Add our bot to your server:", self.bot.invite_link
)
@commands.command(
name="wlinfo",
description="Retrieve various Node/Server/Player information.",
slash_commands=True,
)
@commands.command(name="wlinfo")
@commands.cooldown(rate=1, per=5, type=commands.BucketType.user)
async def wlinfo(self, ctx: Context):
"""Retrieve various Node/Server/Player information."""
"""Retrieve various node/server/player information"""
player = self.bot.lavalink.player_manager.get(ctx.guild.id)
node = player.node
@@ -79,10 +71,9 @@ class InformationCog(commands.Cog, name="Information"):
f"Server Uptime: `{datetime.timedelta(milliseconds=node.stats.uptime)}`"
)
await ctx.send(fmt)
AutoJoin.get_channels()
@commands.command(name="help", aliases=["about", "info"], slash_command=True)
@commands.command(name="help", aliases=["about", "info"])
@commands.cooldown(1, 1, commands.BucketType.user)
async def about(
self,
@@ -91,7 +82,7 @@ class InformationCog(commands.Cog, name="Information"):
description="Show help for a command or category"
),
):
"""ChristmasBot command list"""
"""Retrieve a list of possible commands"""
if command:
entity = self.bot.get_cog(command) or self.bot.get_command(command)
+7 -9
View File
@@ -12,6 +12,7 @@ from lavalink.models import AudioTrack
from lavalink.models import DefaultPlayer
from bot import ChristmasBot
from utils.classes import BaseCog
from context import CustomContext
from utils.database import AutoJoin
from utils.database import Playlist
@@ -69,10 +70,7 @@ class LavalinkVoiceClient(discord.VoiceClient):
self.cleanup()
class Music(commands.Cog):
def __init__(self, bot: ChristmasBot):
self.bot = bot
class Music(BaseCog):
@commands.Cog.listener()
async def on_ready(self):
if not hasattr(
@@ -215,7 +213,7 @@ class Music(commands.Cog):
@commands.command(name="connect", aliases=["p", "play", "join"])
async def play(self, ctx: CustomContext):
"""Starts playing Christmas bangers"""
"""Start the radio"""
# Get the player for this guild from cache.
player: DefaultPlayer = self.bot.lavalink.player_manager.get(ctx.guild.id)
await self.fill_player_queue(player, self.bot.config["queue_buffer_size"])
@@ -227,20 +225,20 @@ class Music(commands.Cog):
@commands.command(name="skip", aliases=["next"])
async def skip(self, ctx: Context):
"""I heard this song way too often"""
"""Skip the current song"""
player: DefaultPlayer = self.bot.lavalink.player_manager.get(ctx.guild.id)
await player.skip()
await ctx.send("Skipped current song")
@commands.command(name="queue")
@commands.command(name="queue", aliases=["q"])
async def queue(self, ctx: Context):
"""Ghetto queue"""
"""Display the current radio queue"""
player: DefaultPlayer = self.bot.lavalink.player_manager.get(ctx.guild.id)
await EmbedGenerator.Message(ctx, "Queue:", player.queue)
@commands.command(name="disconnect", aliases=["dc", "stop"])
async def disconnect(self, ctx: Context):
"""Disconnects ChristmasBot"""
"""Disconnects the radio from the channel"""
player: DefaultPlayer = self.bot.lavalink.player_manager.get(ctx.guild.id)
if not player.is_connected:
+3 -2
View File
@@ -13,11 +13,12 @@ from discord.ext import commands
from discord.ext.commands.context import Context
from bot import ChristmasBot
from utils.classes import BaseCog
class OwnerCog(commands.Cog):
class OwnerCog(BaseCog):
def __init__(self, bot: ChristmasBot):
self.bot = bot
super().__init__(bot)
self._last_result = None
@staticmethod
+11 -6
View File
@@ -1,4 +1,8 @@
from discord.ext import commands
from utils.EmbedGenerator import EmbedGenerator
from utils.classes import BaseCog
from utils.database import AutoJoin
from bot import ChristmasBot
from discord.ext.commands import Context
from bot import ChristmasBot
@@ -7,13 +11,11 @@ from utils.database import AutoJoin
from utils.EmbedGenerator import EmbedGenerator
class SettingsCog(commands.Cog, name="Settings"):
def __init__(self, bot: ChristmasBot):
self.bot = bot
class SettingsCog(BaseCog, name="Settings"):
@commands.group(aliases=["aj"], invoke_without_command=True)
@commands.cooldown(rate=1, per=5, type=commands.BucketType.user)
async def autojoin(self, ctx: CustomContext):
"""Enable/Disable the bot automatically joining"""
await EmbedGenerator.Message(
ctx,
"Autojoin",
@@ -24,16 +26,19 @@ class SettingsCog(commands.Cog, name="Settings"):
@commands.has_permissions(manage_channels=True)
@commands.cooldown(rate=1, per=5, type=commands.BucketType.user)
async def autojoin_set(self, ctx: CustomContext):
"""Enable the bot automatically joining"""
voicechannel_id = ctx.author.voice.channel.id
textchannel_id = ctx.message.channel.id
await AutoJoin.update_channel(ctx.get_redis(), ctx.guild.id, voicechannel_id, textchannel_id)
await AutoJoin.update_channel(
ctx.get_redis(), ctx.guild.id, voicechannel_id, textchannel_id
)
await EmbedGenerator.Message(ctx, "Autojoin", "`enabled`")
@autojoin.command(name="disable")
@commands.has_permissions(manage_channels=True)
@commands.cooldown(rate=1, per=5, type=commands.BucketType.user)
async def autojoin_del(self, ctx: CustomContext):
vc = ctx.author.voice.channel
"""Disable the bot automatically joining"""
await AutoJoin.del_channel(ctx.get_redis(), ctx.guild.id)
await EmbedGenerator.Message(ctx, "Autojoin", "`disabled`")
+1
View File
@@ -21,4 +21,5 @@
"cogs": ["cogs.owner", "cogs.settings", "cogs.information", "cogs.music"],
"slash_command_guilds": [],
"queue_buffer_size": 5,
"slash_descriptions": {}
}
+13
View File
@@ -0,0 +1,13 @@
from typing import Dict
from discord.ext.commands import Cog
from bot import ChristmasBot
class BaseCog(Cog):
def __init__(self, bot: ChristmasBot) -> None:
self.bot = bot
slash_descriptions: Dict[str, str] = self.bot.config["slash_descriptions"]
for command in self.walk_commands():
if brief := slash_descriptions.get(command.qualified_name):
command.brief = brief