From 40f6d6427dec1fa7dc05f9fed3a41c6ee65b1676 Mon Sep 17 00:00:00 2001 From: Conatum Date: Sun, 22 Oct 2023 21:37:00 +0300 Subject: [PATCH] feat(meta): Implement join_message. --- src/modules/config/settingui.py | 2 +- src/modules/member_admin/settingui.py | 2 +- src/modules/meta/cog.py | 53 +++++++++++++++++++++++++++ src/modules/pomodoro/settingui.py | 2 +- 4 files changed, 56 insertions(+), 3 deletions(-) diff --git a/src/modules/config/settingui.py b/src/modules/config/settingui.py index 55cf9081..48e441a7 100644 --- a/src/modules/config/settingui.py +++ b/src/modules/config/settingui.py @@ -96,7 +96,7 @@ class GeneralSettingUI(ConfigUI): class GeneralDashboard(DashboardSection): section_name = _p( "dash:general|title", - "General Configuration ({commands[admin config general]})" + "General Configuration ({commands[config general]})" ) _option_name = _p( "dash:general|option|name", diff --git a/src/modules/member_admin/settingui.py b/src/modules/member_admin/settingui.py index 52efce20..b6845827 100644 --- a/src/modules/member_admin/settingui.py +++ b/src/modules/member_admin/settingui.py @@ -259,7 +259,7 @@ class MemberAdminUI(ConfigUI): class MemberAdminDashboard(DashboardSection): section_name = _p( "dash:member_admin|title", - "Greetings and Initial Roles ({commands[admin config welcome]})" + "Greetings and Initial Roles ({commands[config welcome]})" ) _option_name = _p( "dash:member_admin|dropdown|placeholder", diff --git a/src/modules/meta/cog.py b/src/modules/meta/cog.py index d5117698..715d0ec5 100644 --- a/src/modules/meta/cog.py +++ b/src/modules/meta/cog.py @@ -2,6 +2,7 @@ from typing import Optional import gc import sys import asyncio +import logging import discord from discord.ext import commands as cmds @@ -20,8 +21,15 @@ from .helpui import HelpUI _p = babel._p +logger = logging.getLogger(__name__) + created = utc_now() +guide_link = "https://discord.studylions.com/tutorial" + +animation_link = ( + "https://media.discordapp.net/attachments/879412267731542047/926837189814419486/ezgif.com-resize.gif" +) class MetaCog(LionCog): @@ -47,6 +55,51 @@ class MetaCog(LionCog): ) await ui.run(ctx.interaction) + @LionCog.listener('on_guild_join') + async def post_join_message(self, guild: discord.Guild): + logger.debug(f"Sending join message to ") + # Send join message + t = self.bot.translator.t + message = t(_p( + 'new_guild_join_message|desc', + "Thank you for inviting me to your community!\n" + "Get started by typing {help_cmd} to see my commands," + " and {dash_cmd} to view and set up my configuration options!\n\n" + "If you need any help configuring me," + " or would like to suggest a feature," + " report a bug, and stay updated," + " make sure to join our main support server by [clicking here]({support})." + )).format( + dash_cmd=self.bot.core.mention_cmd('dashboard'), + help_cmd=self.bot.core.mention_cmd('help'), + support=self.bot.config.bot.support_guild, + ) + try: + await guild.me.edit(nick="Leo") + except discord.HTTPException: + pass + if (channel := guild.system_channel) and channel.permissions_for(guild.me).embed_links: + embed = discord.Embed( + description=message, + colour=discord.Colour.orange(), + ) + embed.set_author( + name=t(_p( + 'new_guild_join_message|name', + "Hello everyone! My name is Leo, the LionBot!" + )), + icon_url="https://cdn.discordapp.com/emojis/933610591459872868.webp" + ) + embed.set_image(url=animation_link) + + try: + await channel.send(embed=embed) + except discord.HTTPException: + logger.warning( + f"Could not send join message to ", + exc_info=True, + ) + @cmds.hybrid_command( name=_p('cmd:invite', "invite"), description=_p( diff --git a/src/modules/pomodoro/settingui.py b/src/modules/pomodoro/settingui.py index bf2ee198..4e29f88d 100644 --- a/src/modules/pomodoro/settingui.py +++ b/src/modules/pomodoro/settingui.py @@ -79,7 +79,7 @@ class TimerConfigUI(ConfigUI): class TimerDashboard(DashboardSection): section_name = _p( 'dash:pomodoro|title', - "Pomodoro Configuration ({commands[admin config pomodoro]})" + "Pomodoro Configuration ({commands[config pomodoro]})" ) _option_name = _p( "dash:stats|dropdown|placeholder",