diff --git a/config.default.yml b/config.default.yml index 4aa13c42..c40a481e 100644 --- a/config.default.yml +++ b/config.default.yml @@ -6,6 +6,7 @@ bot_config: disabled_extensions: ["kanye"] default_prefix: "." global_alerts_channel: "" + override_owner: "" modmail_config: enable_modmail: False disable_thread_creation: False diff --git a/techsupport_bot/bot.py b/techsupport_bot/bot.py index 64b611ab..8c69b719 100644 --- a/techsupport_bot/bot.py +++ b/techsupport_bot/bot.py @@ -243,7 +243,14 @@ async def log_DM(self: Self, sent_from: str, source: str, content: str) -> None: f"{source} recieved a PM", f"PM from: {sent_from}\n{content}" ) embed.timestamp = datetime.datetime.utcnow() - await owner.send(embed=embed) + try: + await owner.send(embed=embed) + except discord.Forbidden as exception: + await self.logger.send_log( + message="Could not DM discord bot owner", + level=LogLevel.ERROR, + exception=exception, + ) async def on_message(self: Self, message: discord.Message) -> None: """Logs DMs and ensure that commands are processed @@ -763,7 +770,6 @@ async def is_bot_admin(self: Self, member: discord.Member) -> bool: context=LogContext(guild=member.guild), console_only=True, ) - owner = await self.get_owner() if getattr(owner, "id", None) == member.id: return True @@ -787,6 +793,12 @@ async def get_owner(self: Self) -> discord.User | None: Returns: discord.User | None: The User object of the owner of the application on discords side """ + if self.file_config.bot_config.override_owner: + self.owner = await self.fetch_user( + int(self.file_config.bot_config.override_owner) + ) + return self.owner + if not self.owner: try: # If this isn't console only, it is a forever recursion