aboutsummaryrefslogtreecommitdiff
path: root/cogs/admin.py
diff options
context:
space:
mode:
authorAnInternetTroll <lucafulger@gmail.com>2020-05-06 10:00:46 +0000
committerAnInternetTroll <lucafulger@gmail.com>2020-05-06 10:00:46 +0000
commit14fd81118a30dea394eca940cefb6dda86b66933 (patch)
tree5105b1cf1d0ef86dd651e17564c49f58c384b3ed /cogs/admin.py
downloadsteve-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-xcogs/admin.py70
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))