Fix to !help failing in DM

This commit is contained in:
Twentysix 2016-02-29 18:06:56 +01:00
parent 58e0b6d46a
commit a58aebe218
3 changed files with 11 additions and 6 deletions

View File

@ -380,6 +380,7 @@ class Mod:
@commands.group(no_pm=True, pass_context=True) @commands.group(no_pm=True, pass_context=True)
@checks.admin_or_permissions(manage_roles=True) @checks.admin_or_permissions(manage_roles=True)
async def editrole(self, ctx): async def editrole(self, ctx):
"""Edits roles settings"""
if ctx.invoked_subcommand is None: if ctx.invoked_subcommand is None:
await send_cmd_help(ctx) await send_cmd_help(ctx)

View File

@ -67,6 +67,8 @@ def admin_or_permissions(**perms):
def serverowner_or_permissions(**perms): def serverowner_or_permissions(**perms):
def predicate(ctx): def predicate(ctx):
if ctx.message.server is None:
return False
server = ctx.message.server server = ctx.message.server
owner = server.owner owner = server.owner

View File

@ -107,38 +107,40 @@ class Settings:
return ret return ret
def get_server(self,server): def get_server(self,server):
if server is None:
return self.bot_settings["default"].copy()
assert isinstance(server,discord.Server) assert isinstance(server,discord.Server)
return self.bot_settings.get(server.id,self.bot_settings["default"]).copy() return self.bot_settings.get(server.id,self.bot_settings["default"]).copy()
def get_server_admin(self,server): def get_server_admin(self,server):
assert isinstance(server,discord.Server)
if server is None: if server is None:
return return self.default_admin
assert isinstance(server,discord.Server)
if server.id not in self.bot_settings: if server.id not in self.bot_settings:
return self.default_admin return self.default_admin
return self.bot_settings[server.id].get("ADMIN_ROLE","") return self.bot_settings[server.id].get("ADMIN_ROLE","")
def set_server_admin(self,server,value): def set_server_admin(self,server,value):
assert isinstance(server,discord.Server)
if server is None: if server is None:
return return
assert isinstance(server,discord.Server)
if server.id not in self.bot_settings: if server.id not in self.bot_settings:
self.add_server(server.id) self.add_server(server.id)
self.bot_settings[server.id]["ADMIN_ROLE"] = value self.bot_settings[server.id]["ADMIN_ROLE"] = value
self.save_settings() self.save_settings()
def get_server_mod(self,server): def get_server_mod(self,server):
assert isinstance(server,discord.Server)
if server is None: if server is None:
return return self.default_mod
assert isinstance(server,discord.Server)
if server.id not in self.bot_settings: if server.id not in self.bot_settings:
return self.default_mod return self.default_mod
return self.bot_settings[server.id].get("MOD_ROLE","") return self.bot_settings[server.id].get("MOD_ROLE","")
def set_server_mod(self,server,value): def set_server_mod(self,server,value):
assert isinstance(server,discord.Server)
if server is None: if server is None:
return return
assert isinstance(server,discord.Server)
if server.id not in self.bot_settings: if server.id not in self.bot_settings:
self.add_server(server.id) self.add_server(server.id)
self.bot_settings[server.id]["MOD_ROLE"] = value self.bot_settings[server.id]["MOD_ROLE"] = value