diff --git a/cogs/mod.py b/cogs/mod.py index fd44dcbdf..b1c7a6691 100644 --- a/cogs/mod.py +++ b/cogs/mod.py @@ -18,7 +18,7 @@ class Mod: self.filter = fileIO("data/mod/filter.json", "load") @commands.group(pass_context=True,no_pm=True) - @checks.admin_or_permissions(manage_server=True) + @checks.serverowner_or_permissions(manage_server=True) async def modset(self,ctx): """Manages server administration settings.""" if ctx.invoked_subcommand is None: diff --git a/cogs/utils/checks.py b/cogs/utils/checks.py index 961ccd717..3e8c59828 100644 --- a/cogs/utils/checks.py +++ b/cogs/utils/checks.py @@ -64,3 +64,14 @@ def admin_or_permissions(**perms): return role_or_permissions(ctx, lambda r: r.name.lower() == admin_role.lower(), **perms) return commands.check(predicate) + +def serverowner_or_permissions(**perms): + def predicate(ctx): + server = ctx.message.server + owner = server.owner + + if ctx.message.author.id == owner.id: + return True + + return check_permissions(ctx,perms) + return commands.check(predicate)