Added guild join event
This commit is contained in:
parent
a8ea9f5e49
commit
378d2c3dc9
@ -4,6 +4,7 @@ from datetime import datetime
|
|||||||
from cpl_core.configuration import ConfigurationModelABC
|
from cpl_core.configuration import ConfigurationModelABC
|
||||||
from cpl_core.database import TableABC
|
from cpl_core.database import TableABC
|
||||||
from cpl_query.extension import List
|
from cpl_query.extension import List
|
||||||
|
from discord import Guild
|
||||||
|
|
||||||
from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum
|
from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum
|
||||||
from bot_data.model.server import Server
|
from bot_data.model.server import Server
|
||||||
@ -59,6 +60,29 @@ class ServerConfig(TableABC, ConfigurationModelABC):
|
|||||||
self._created_at = created_at if created_at is not None else self._created_at
|
self._created_at = created_at if created_at is not None else self._created_at
|
||||||
self._modified_at = modified_at if modified_at is not None else self._modified_at
|
self._modified_at = modified_at if modified_at is not None else self._modified_at
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def new(guild: Guild, server: Server) -> "ServerConfig":
|
||||||
|
return ServerConfig(
|
||||||
|
6,
|
||||||
|
guild.system_channel.id,
|
||||||
|
6,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
20,
|
||||||
|
10,
|
||||||
|
10,
|
||||||
|
10,
|
||||||
|
guild.system_channel.id,
|
||||||
|
guild.system_channel.id,
|
||||||
|
guild.system_channel.id,
|
||||||
|
guild.system_channel.id,
|
||||||
|
guild.default_role.id,
|
||||||
|
{},
|
||||||
|
server,
|
||||||
|
List(int),
|
||||||
|
List(int),
|
||||||
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def id(self) -> int:
|
def id(self) -> int:
|
||||||
return self._id
|
return self._id
|
||||||
|
@ -34,31 +34,12 @@ class ServerConfigSeeder(DataSeederABC):
|
|||||||
if self._server_config.does_server_config_exists(server.id):
|
if self._server_config.does_server_config_exists(server.id):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
config = ServerConfig(
|
config = ServerConfig.new(guild, server)
|
||||||
6,
|
|
||||||
guild.system_channel.id,
|
|
||||||
6,
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
20,
|
|
||||||
10,
|
|
||||||
10,
|
|
||||||
10,
|
|
||||||
guild.system_channel.id,
|
|
||||||
guild.system_channel.id,
|
|
||||||
guild.system_channel.id,
|
|
||||||
guild.system_channel.id,
|
|
||||||
guild.default_role.id,
|
|
||||||
{},
|
|
||||||
server,
|
|
||||||
[],
|
|
||||||
[],
|
|
||||||
)
|
|
||||||
|
|
||||||
self._server_config.add_server_config(config)
|
self._server_config.add_server_config(config)
|
||||||
|
|
||||||
self._db.save_changes()
|
self._db.save_changes()
|
||||||
self._logger.debug(__name__, "Seeded technician config")
|
self._logger.debug(__name__, "Seeded server config")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self._logger.error(__name__, f"Seeding technician config failed", e)
|
self._logger.error(__name__, f"Seeding server config failed", e)
|
||||||
|
@ -21,6 +21,7 @@ from modules.base.command.unregister_group import UnregisterGroup
|
|||||||
from modules.base.command.user_group import UserGroup
|
from modules.base.command.user_group import UserGroup
|
||||||
from modules.base.events.base_on_command_error_event import BaseOnCommandErrorEvent
|
from modules.base.events.base_on_command_error_event import BaseOnCommandErrorEvent
|
||||||
from modules.base.events.base_on_command_event import BaseOnCommandEvent
|
from modules.base.events.base_on_command_event import BaseOnCommandEvent
|
||||||
|
from modules.base.events.base_on_guild_join_event import BaseOnGuildJoinEvent
|
||||||
from modules.base.events.base_on_member_join_event import BaseOnMemberJoinEvent
|
from modules.base.events.base_on_member_join_event import BaseOnMemberJoinEvent
|
||||||
from modules.base.events.base_on_member_remove_event import BaseOnMemberRemoveEvent
|
from modules.base.events.base_on_member_remove_event import BaseOnMemberRemoveEvent
|
||||||
from modules.base.events.base_on_message_delete_event import BaseOnMessageDeleteEvent
|
from modules.base.events.base_on_message_delete_event import BaseOnMessageDeleteEvent
|
||||||
@ -103,3 +104,7 @@ class BaseModule(ModuleABC):
|
|||||||
DiscordEventTypesEnum.on_scheduled_event_update.value,
|
DiscordEventTypesEnum.on_scheduled_event_update.value,
|
||||||
BaseOnScheduledEventUpdateEvent,
|
BaseOnScheduledEventUpdateEvent,
|
||||||
)
|
)
|
||||||
|
self._dc.add_event(
|
||||||
|
DiscordEventTypesEnum.on_guild_join.value,
|
||||||
|
BaseOnGuildJoinEvent,
|
||||||
|
)
|
||||||
|
38
kdb-bot/src/modules/base/events/base_on_guild_join_event.py
Normal file
38
kdb-bot/src/modules/base/events/base_on_guild_join_event.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
from cpl_core.database.context import DatabaseContextABC
|
||||||
|
from cpl_core.logging import LoggerABC
|
||||||
|
from cpl_discord.events import OnGuildJoinABC
|
||||||
|
from cpl_discord.service import DiscordBotServiceABC
|
||||||
|
from discord import Guild
|
||||||
|
|
||||||
|
from bot_data.abc.server_config_repository_abc import ServerConfigRepositoryABC
|
||||||
|
from bot_data.abc.server_repository_abc import ServerRepositoryABC
|
||||||
|
from bot_data.model.server import Server
|
||||||
|
from bot_data.service.seeder_service import SeederService
|
||||||
|
|
||||||
|
|
||||||
|
class BaseOnGuildJoinEvent(OnGuildJoinABC):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
logger: LoggerABC,
|
||||||
|
bot: DiscordBotServiceABC,
|
||||||
|
servers: ServerRepositoryABC,
|
||||||
|
server_config: ServerConfigRepositoryABC,
|
||||||
|
db: DatabaseContextABC,
|
||||||
|
seeder: SeederService,
|
||||||
|
):
|
||||||
|
OnGuildJoinABC.__init__(self)
|
||||||
|
|
||||||
|
self._logger = logger
|
||||||
|
self._bot = bot
|
||||||
|
self._servers = servers
|
||||||
|
self._server_config = server_config
|
||||||
|
self._db = db
|
||||||
|
self._seeder = seeder
|
||||||
|
|
||||||
|
async def on_guild_join(self, guild: Guild):
|
||||||
|
if self._servers.find_server_by_discord_id(guild.id) is None:
|
||||||
|
self._servers.add_server(Server(guild.id))
|
||||||
|
self._db.save_changes()
|
||||||
|
|
||||||
|
await self._seeder.seed()
|
||||||
|
self._logger.debug(__name__, "Seeded technician config")
|
Loading…
Reference in New Issue
Block a user