Added on_message handling
This commit is contained in:
		| @@ -1,13 +1,8 @@ | ||||
| from abc import ABC, abstractmethod | ||||
| from cpl_query.extension import List | ||||
|  | ||||
| from modules_core.events_enum import EventsEnum | ||||
| import discord | ||||
|  | ||||
| class ModuleABC(ABC): | ||||
|  | ||||
|     @abstractmethod | ||||
|     def __init__(self): pass | ||||
|      | ||||
|     # @property | ||||
|     # @abstractmethod | ||||
|     # def events(self) -> List[EventsEnum]: pass | ||||
|   | ||||
							
								
								
									
										11
									
								
								src/modules_core/abc/on_message_abc.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/modules_core/abc/on_message_abc.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| from abc import ABC, abstractmethod | ||||
| import discord | ||||
|  | ||||
|  | ||||
| class OnMessageABC(ABC): | ||||
|  | ||||
|     @abstractmethod | ||||
|     def __init__(self): pass | ||||
|      | ||||
|     @abstractmethod | ||||
|     async def on_message(self, message: discord.Message): pass | ||||
							
								
								
									
										10
									
								
								src/modules_core/abc/on_ready_abc.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								src/modules_core/abc/on_ready_abc.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| from abc import ABC, abstractmethod | ||||
|  | ||||
|  | ||||
| class OnReadyABC(ABC): | ||||
|  | ||||
|     @abstractmethod | ||||
|     def __init__(self): pass | ||||
|      | ||||
|     @abstractmethod | ||||
|     async def on_ready(self): pass | ||||
| @@ -1,3 +1,4 @@ | ||||
| from async_timeout import asyncio | ||||
| import discord | ||||
| from discord.ext import commands | ||||
|  | ||||
| @@ -7,7 +8,8 @@ from cpl_core.logging import LoggerABC | ||||
| from cpl_query.extension import List | ||||
| from modules_core.abc.module_abc import ModuleABC | ||||
| from modules_core.abc.module_service_abc import ModuleServiceABC | ||||
| from modules_core.events_enum import EventsEnum | ||||
| from modules_core.abc.on_message_abc import OnMessageABC | ||||
| from modules_core.abc.on_ready_abc import OnReadyABC | ||||
|  | ||||
|  | ||||
| class ModuleService(ModuleServiceABC): | ||||
| @@ -21,10 +23,21 @@ class ModuleService(ModuleServiceABC): | ||||
|  | ||||
|     async def on_ready(self): | ||||
|         self._logger.debug(__name__, 'Start on_ready modules') | ||||
|         modules = self._modules.where(lambda m: hasattr(m, EventsEnum.on_ready.value) and callable(m.on_ready)) | ||||
|         modules = self._modules.where(lambda m: issubclass(m, OnReadyABC)) | ||||
|         for module_type in modules: | ||||
|             module = self._services.get_service(module_type) | ||||
|             module_type = module_type | ||||
|             module: OnReadyABC = self._services.get_service(module_type) | ||||
|             await module.on_ready() | ||||
|          | ||||
|         self._logger.debug(__name__, 'Stopped on_ready modules') | ||||
|  | ||||
|     async def on_message(self, message: discord.Message): | ||||
|         pass | ||||
|         self._logger.debug(__name__, 'Start on_message modules') | ||||
|         modules = self._modules.where(lambda m: issubclass(m, OnMessageABC)) | ||||
|          | ||||
|         for module_type in modules: | ||||
|             module_type = module_type | ||||
|             module: OnMessageABC = self._services.get_service(module_type) | ||||
|             await module.on_message(message) | ||||
|              | ||||
|         self._logger.debug(__name__, f'Stopped on_message modules') | ||||
		Reference in New Issue
	
	Block a user