diff options
author | AnInternetTroll <lucafulger@gmail.com> | 2020-05-06 10:00:46 +0000 |
---|---|---|
committer | AnInternetTroll <lucafulger@gmail.com> | 2020-05-06 10:00:46 +0000 |
commit | 14fd81118a30dea394eca940cefb6dda86b66933 (patch) | |
tree | 5105b1cf1d0ef86dd651e17564c49f58c384b3ed /cogs/admin.py | |
download | steve-bot-14fd81118a30dea394eca940cefb6dda86b66933.tar steve-bot-14fd81118a30dea394eca940cefb6dda86b66933.tar.gz steve-bot-14fd81118a30dea394eca940cefb6dda86b66933.tar.bz2 steve-bot-14fd81118a30dea394eca940cefb6dda86b66933.tar.lz steve-bot-14fd81118a30dea394eca940cefb6dda86b66933.tar.xz steve-bot-14fd81118a30dea394eca940cefb6dda86b66933.tar.zst steve-bot-14fd81118a30dea394eca940cefb6dda86b66933.zip |
First commit :partying_face:
Diffstat (limited to 'cogs/admin.py')
-rwxr-xr-x | cogs/admin.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/cogs/admin.py b/cogs/admin.py new file mode 100755 index 0000000..4cf7df7 --- /dev/null +++ b/cogs/admin.py @@ -0,0 +1,70 @@ +from discord.ext import commands +import discord + +import subprocess + +import json + +class Admin(commands.Cog): + def __init__(self, bot): + self.bot = bot + + async def is_mod(ctx): + return ctx.author.guild_permissions.manage_channels + + @commands.command(aliases=['addcommand', 'newcommand']) + @commands.check(is_mod) + async def setcommand(self, ctx, command, *, message): + self.bot.custom_commands["/" + command] = message + with open('custom_commands.json', 'w') as f: + json.dump(self.bot.custom_commands, f) + + await ctx.send(f"Set message for command {command}") + + @commands.command(aliases=['deletecommand']) + @commands.check(is_mod) + async def removecommand(self, ctx, command): + del self.bot.custom_commands["/" + command] + with open('custom_commands.json', 'w') as f: + json.dump(self.bot.custom_commands, f) + + await ctx.send(f"Removed command {command}") + + + @commands.check(is_mod) + @commands.command(name='reload', hidden=True, usage='<extension>') + async def _reload(self, ctx, ext): + """Reloads an extension""" + try: + self.bot.reload_extension(f'cogs.{ext}') + await ctx.send(f'The extension {ext} was reloaded!') + except commands.ExtensionNotFound: + await ctx.send(f'The extension {ext} doesn\'t exist.') + except commands.ExtensionNotLoaded: + await ctx.send(f'The extension {ext} is not loaded! (use /load)') + except commands.NoEntryPointError: + await ctx.send(f'The extension {ext} doesn\'t have an entry point (try adding the setup function) ') + except commands.ExtensionFailed: + await ctx.send(f'Some unknown error happened while trying to reload extension {ext} (check logs)') + self.bot.logger.exception(f'Failed to reload extension {ext}:') + + @commands.check(is_mod) + @commands.command(name='load', hidden=True, usage='<extension>') + async def _load(self, ctx, ext): + """Loads an extension""" + try: + self.bot.load_extension(f'cogs.{ext}') + await ctx.send(f'The extension {ext} was loaded!') + except commands.ExtensionNotFound: + await ctx.send(f'The extension {ext} doesn\'t exist!') + except commands.ExtensionAlreadyLoaded: + await ctx.send(f'The extension {ext} is already loaded.') + except commands.NoEntryPointError: + await ctx.send(f'The extension {ext} doesn\'t have an entry point (try adding the setup function)') + except commands.ExtensionFailed: + await ctx.send(f'Some unknown error happened while trying to reload extension {ext} (check logs)') + self.bot.logger.exception(f'Failed to reload extension {ext}:') + + +def setup(bot): + bot.add_cog(Admin(bot)) |