Added logic to handle commands

This commit is contained in:
2022-07-16 15:45:34 +02:00
parent fb35e8b8b2
commit 10d33e5d1d
13 changed files with 190 additions and 62 deletions

View File

@@ -1,4 +1,5 @@
import asyncio
from typing import Optional
from cpl_core.application import ApplicationBuilder
@@ -6,12 +7,24 @@ from discord_bot.application import Application
from discord_bot.startup import Startup
async def main():
app_builder = ApplicationBuilder(Application)
app_builder.use_startup(Startup)
app: Application = await app_builder.build_async()
await app.run_async()
class Main:
def __init__(self):
self._app: Optional[Application] = None
async def main(self):
app_builder = ApplicationBuilder(Application)
app_builder.use_startup(Startup)
self._app: Application = await app_builder.build_async()
await self._app.run_async()
async def stop(self):
await self._app.stop_async()
if __name__ == '__main__':
asyncio.run(main())
main = Main()
try:
asyncio.run(main.main())
except KeyboardInterrupt:
asyncio.run(main.stop())

View File

@@ -3,9 +3,10 @@ from cpl_core.configuration import ConfigurationABC
from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC
from cpl_core.environment import ApplicationEnvironment
from cpl_discord import get_discord_collection
from cpl_discord.event_types_enum import EventTypesEnum
from cpl_discord.discord_event_types_enum import DiscordEventTypesEnum
from modules.hello_world.on_ready_event import OnReadyEvent
from modules.hello_world.on_ready_test_event import OnReadyTestEvent
from modules.hello_world.ping_command import PingCommand
class Startup(StartupABC):
@@ -24,7 +25,8 @@ class Startup(StartupABC):
services.add_logging()
services.add_discord()
dc_collection = get_discord_collection(services)
dc_collection.add_event(EventTypesEnum.on_ready.value, OnReadyEvent)
dc_collection.add_event(EventTypesEnum.on_ready.value, OnReadyTestEvent)
dc_collection.add_event(DiscordEventTypesEnum.on_ready.value, OnReadyEvent)
dc_collection.add_event(DiscordEventTypesEnum.on_ready.value, OnReadyTestEvent)
dc_collection.add_command(PingCommand)
return services.build_service_provider()