From bccf54591172fba91d1d825553dd0e19f49f97ab Mon Sep 17 00:00:00 2001 From: Louis Chauvet Date: Sat, 21 Mar 2020 14:53:40 +0100 Subject: [PATCH] [mod-help] aide et d'autre trucs --- modules/errors/__init__.py | 9 ++++----- modules/help/__init__.py | 39 +++++++++++++++++++++++++++++++++++++ modules/modules/__init__.py | 2 +- modules/perdu/__init__.py | 2 +- modules/roles/__init__.py | 35 +++++++++++++++++++++++++++++++++ 5 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 modules/help/__init__.py create mode 100644 modules/roles/__init__.py diff --git a/modules/errors/__init__.py b/modules/errors/__init__.py index daa0870..a9d9033 100644 --- a/modules/errors/__init__.py +++ b/modules/errors/__init__.py @@ -11,8 +11,7 @@ from modules.base import BaseClassPython class MainClass(BaseClassPython): name = "errors" - description = "Error handling" - interactive = True + help_active = True authorized_users = [431043517217898496] authorized_roles = [] color = 0xdb1348 @@ -30,8 +29,8 @@ class MainClass(BaseClassPython): self.errorsDeque = None async def on_load(self): - if self.objects.save_exists('errorsDeque'): - self.errorsDeque = self.objects.load_object('errorsDeque') + if await self.objects.save_exists('errorsDeque'): + self.errorsDeque = await self.objects.load_object('errorsDeque') else: self.errorsDeque = collections.deque() @@ -44,7 +43,7 @@ class MainClass(BaseClassPython): await to_delete.delete() except: raise - self.objects.save_object('errorsDeque', self.errorsDeque) + await self.objects.save_object('errorsDeque', self.errorsDeque) async def command(self, message, args, kwargs): raise Exception("KERNEL PANIC!!!") diff --git a/modules/help/__init__.py b/modules/help/__init__.py new file mode 100644 index 0000000..140e3d5 --- /dev/null +++ b/modules/help/__init__.py @@ -0,0 +1,39 @@ +from pprint import pprint + +import discord + +from modules.base import BaseClassPython + + +class MainClass(BaseClassPython): + name = "Aide" + help_active = True + help = { + "description": "Module d'aide", + "commands": { + "`{prefix}{command} list`": "Affiche une liste des modules ainsi qu'une desription", + "`{prefix}{command} `": "Affiche l'aide sépcifique d'un module"# , + # "`{prefix}{command} all`": "Affiche l'aide de tous les modules" + } + } + color = 0x3c9653 + command_text = "help" + + async def com_list(self, message, args, kwargs): + embed = discord.Embed(title="[Aide] - Liste des modules", color=self.color) + for moduleName in list(self.client.modules.keys()): + if self.client.modules[moduleName]["initialized_class"].help_active: + embed.add_field( + name=moduleName.capitalize(), + value=self.client.modules[moduleName]["initialized_class"].help["description"]) + await message.channel.send(embed=embed) + + # async def com_all(self, message, args, kwargs): + # for name, module in self.client.modules.items(): + # await module["initialized_class"].send_help(message.channel) + + async def command(self, message, args, kwargs): + if len(args) and args[0] in self.client.modules.keys(): + await self.client.modules[args[0]]["initialized_class"].send_help(message.channel) + else : + await self.send_help(message.channel) \ No newline at end of file diff --git a/modules/modules/__init__.py b/modules/modules/__init__.py index 66e033e..96f6b04 100644 --- a/modules/modules/__init__.py +++ b/modules/modules/__init__.py @@ -9,7 +9,7 @@ from modules.modules.api import Api class MainClass(BaseClassPython): name = "modules" - + help_active = True command_text = "modules" color = 0x000000 help = { diff --git a/modules/perdu/__init__.py b/modules/perdu/__init__.py index e923c22..4ebf202 100644 --- a/modules/perdu/__init__.py +++ b/modules/perdu/__init__.py @@ -26,7 +26,7 @@ class MainClass(BaseClassPython): self.config.init({"channel": 0, "lost_role": 0, "min_delta": datetime.timedelta(minutes=30).total_seconds()}) async def on_load(self): - if self.objects.save_exists('history'): + if await self.objects.save_exists('history'): self.history = self.objects.load_object('history') else: self.history = {} diff --git a/modules/roles/__init__.py b/modules/roles/__init__.py new file mode 100644 index 0000000..5227ce5 --- /dev/null +++ b/modules/roles/__init__.py @@ -0,0 +1,35 @@ +import discord + +from modules.base import BaseClassPython + + +class MainClass(BaseClassPython): + name = "Roles" + color = 0xffb593 + help_active = True + help = { + "description": "Modulé gérant l'attribution des roles", + "commands": { + "`{prefix}{command} list`": "Liste les roles", + "`{prefix}{command} `": "S'attribuer le role " + } + } + command_text = "roles" + + def __init__(self, client): + super().__init__(client) + self.config.init({"roles": {}}) + + async def com_list(self, message, args, kwargs): + response = discord.Embed(title="Roles disponibles", color=self.color) + for id_ in self.config.roles.keys(): + role = await self.client.id.get_role(int(id_)) + response.add_field(name=role.name, value=self.config.roles[id_], inline=True) + await message.channel.send(embed=response) + + async def com_add(self, message, args, kwargs): + if len(args) <= 1: + await message.channel.send("Il manque des arguments à la commande") + for role in args[0:]: + role = await self.client.id.get_role(name = role) + print(role.name)