diff --git a/jarvis/events/guild.py b/jarvis/events/guild.py deleted file mode 100644 index 119b815..0000000 --- a/jarvis/events/guild.py +++ /dev/null @@ -1,36 +0,0 @@ -"""J.A.R.V.I.S. guild event handler.""" -import asyncio - -from dis_snek import Snake -from dis_snek.models.discord.guild import Guild - -from jarvis.db.models import Setting -from jarvis.utils import find - - -class GuildEventHandler(object): - """J.A.R.V.I.S. guild event handler.""" - - def __init__(self, bot: Snake): - self.bot = bot - self.bot.add_listener(self.on_guild_join) - - async def on_guild_join(self, guild: Guild) -> None: - """Handle on_guild_join event.""" - general = find(lambda x: x.name == "general", guild.channels) - if general and general.permissions_for(guild.me).send_messages: - user = self.bot.user - await general.send( - f"Allow me to introduce myself. I am {user.mention}, a virtual " - "artificial intelligence, and I'm here to assist you with a " - "variety of tasks as best I can, " - "24 hours a day, seven days a week." - ) - await asyncio.sleep(1) - await general.send("Importing all preferences from home interface...") - - # Set some default settings - _ = Setting(guild=guild.id, setting="massmention", value=5).save() - _ = Setting(guild=guild.id, setting="noinvite", value=True).save() - - await general.send("Systems are now fully operational") diff --git a/jarvis/events/member.py b/jarvis/events/member.py index f849a9c..ee1043f 100644 --- a/jarvis/events/member.py +++ b/jarvis/events/member.py @@ -1,5 +1,5 @@ """J.A.R.V.I.S. Member event handler.""" -from dis_snek import Snake +from dis_snek import Snake, listen from dis_snek.models.discord.user import Member from jarvis.db.models import Mute, Setting @@ -12,6 +12,7 @@ class MemberEventHandler(object): self.bot = bot self.bot.add_listener(self.on_member_join) + @listen() async def on_member_join(self, user: Member) -> None: """Handle on_member_join event.""" guild = user.guild diff --git a/jarvis/events/message.py b/jarvis/events/message.py index 74b68e6..ceb73ef 100644 --- a/jarvis/events/message.py +++ b/jarvis/events/message.py @@ -1,14 +1,14 @@ """J.A.R.V.I.S. Message event handler.""" import re -from dis_snek import Snake +from dis_snek import Snake, listen from dis_snek.models.discord.channel import DMChannel +from dis_snek.models.discord.embed import EmbedField from dis_snek.models.discord.message import Message from jarvis.config import get_config from jarvis.db.models import Autopurge, Autoreact, Roleping, Setting, Warning from jarvis.utils import build_embed, find -from jarvis.utils.field import Field invites = re.compile( r"(?:https?://)?(?:www.)?(?:discord.(?:gg|io|me|li)|discord(?:app)?.com/invite)/([^\s/]+?)(?=\b)", # noqa: E501 @@ -72,10 +72,10 @@ class MessageEventHandler(object): user=message.author.id, ).save() fields = [ - Field( - "Reason", - "Sent an invite link", - False, + EmbedField( + name="Reason", + value="Sent an invite link", + inline=False, ) ] embed = build_embed( @@ -113,7 +113,7 @@ class MessageEventHandler(object): reason="Mass Mention", user=message.author.id, ).save() - fields = [Field("Reason", "Mass Mention", False)] + fields = [EmbedField(name="Reason", value="Mass Mention", inline=False)] embed = build_embed( title="Warning", description=f"{message.author.mention} has been warned", @@ -178,10 +178,10 @@ class MessageEventHandler(object): user=message.author.id, ).save() fields = [ - Field( - "Reason", - "Pinged a blocked role/user with a blocked role", - False, + EmbedField( + name="Reason", + value="Pinged a blocked role/user with a blocked role", + inline=False, ) ] embed = build_embed( @@ -198,6 +198,7 @@ class MessageEventHandler(object): ) await message.channel.send(embed=embed) + @listen() async def on_message(self, message: Message) -> None: """Handle on_message event. Calls other event handlers.""" if not isinstance(message.channel, DMChannel) and not message.author.bot: @@ -207,6 +208,7 @@ class MessageEventHandler(object): await self.autopurge(message) await self.checks(message) + @listen() async def on_message_edit(self, before: Message, after: Message) -> None: """Handle on_message_edit event. Calls other event handlers.""" if not isinstance(after.channel, DMChannel) and not after.author.bot: