From 5dac2114ff6e02a4d71eeb182ba14605cbc489ec Mon Sep 17 00:00:00 2001 From: fomys Date: Wed, 5 Jun 2019 03:37:50 +0200 Subject: [PATCH] DES MODULES LUA --- main.py | 3 +-- modules/base/BaseLua.py | 7 +++---- modules/base/BasePython.py | 2 +- modules/modules/__init__.py | 1 + modules/test_lua/main.lua | 6 +++++- modules/test_lua/version.json | 13 +++++++++++++ 6 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 modules/test_lua/version.json diff --git a/main.py b/main.py index a8a8f9d..f05c284 100644 --- a/main.py +++ b/main.py @@ -281,7 +281,7 @@ class LBI(discord.Client): initialized_class = imported.MainClass(self) self.modules.update({module: {"imported": imported, "initialized_class": initialized_class}}) self.info("Module {module} successfully imported.".format(module=module)) - initialized_class.on_load() + initialized_class.dispatch("load") if module not in self.config["modules"]: self.config["modules"].append(module) self.save_config() @@ -315,7 +315,6 @@ class LBI(discord.Client): @event def dispatch(self, event, *args, **kwargs): - print(event) super().dispatch(event, *args, **kwargs) for module in self.modules.values(): module["initialized_class"].dispatch(event, *args, **kwargs) diff --git a/modules/base/BaseLua.py b/modules/base/BaseLua.py index ecfc589..20e0b68 100644 --- a/modules/base/BaseLua.py +++ b/modules/base/BaseLua.py @@ -39,10 +39,9 @@ class BaseClassLua: self.storage.makedirs(path.join("storage", self.name), exist_ok=True) # Get lua globals self.lua = lupa.LuaRuntime(unpack_returned_tuples=True) - self.luaMethods = self.lua.eval("require \"main\"") + self.luaMethods = self.lua.require("modules/test_lua/main") def dispatch(self, event, *args, **kwargs): - print(self.luaMethods) - print(self.luaMethods.__dict__) - print(dict(self.luaMethods)) + if self.luaMethods["on_"+event] is not None: + self.luaMethods["on_"+event](asyncio.ensure_future, self.client, *args, **kwargs) diff --git a/modules/base/BasePython.py b/modules/base/BasePython.py index c2750c1..85c465f 100644 --- a/modules/base/BasePython.py +++ b/modules/base/BasePython.py @@ -186,7 +186,7 @@ class BaseClassPython: pass else: # Run event - asyncio.ensure_future(self._run_event(coro, method, *args, **kwargs), loop=self.loop) + asyncio.ensure_future(self._run_event(coro, method, *args, **kwargs), loop=self.client.loop) async def _run_event(self, coro, event_name, *args, **kwargs): # Run event diff --git a/modules/modules/__init__.py b/modules/modules/__init__.py index c357b6f..1794fbd 100644 --- a/modules/modules/__init__.py +++ b/modules/modules/__init__.py @@ -53,6 +53,7 @@ class MainClass(BaseClassPython): return for arg in args: e = self.client.load_module(arg) + print(e) if e: await message.channel.send("An error occurred during the loading of the module {module}." .format(module=arg)) diff --git a/modules/test_lua/main.lua b/modules/test_lua/main.lua index 223b64e..db9cc6d 100644 --- a/modules/test_lua/main.lua +++ b/modules/test_lua/main.lua @@ -1,8 +1,12 @@ main = {} -function main.on_message(discord, message) + +function main.on_message(await, client, message, ...) print("I LOVE LUA") print(message.content) + if message.author.bot == false then + await(message.channel.send("Tu n'es pas un bot")) + end end return main \ No newline at end of file diff --git a/modules/test_lua/version.json b/modules/test_lua/version.json new file mode 100644 index 0000000..acfacc8 --- /dev/null +++ b/modules/test_lua/version.json @@ -0,0 +1,13 @@ +{ + "version": "0.1.0", + "dependencies": { + "base": { + "min": "0.1.0", + "max": "0.1.0" + } + }, + "bot_version": { + "min": "0.1.0", + "max": "0.1.0" + } +} \ No newline at end of file