diff --git a/.gitignore b/.gitignore index 2eea525..caeb12e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,6 @@ -.env \ No newline at end of file +.env +.idea/inspectionProfiles/ +.idea/kernel.iml +.idea/misc.xml +.idea/modules.xml +.idea/vcs.xml \ No newline at end of file diff --git a/bot/slash_commands.py b/bot/slash_commands.py index c32f6fa..ac60f6f 100644 --- a/bot/slash_commands.py +++ b/bot/slash_commands.py @@ -95,6 +95,16 @@ async def userinfo(self, interaction: Interaction, embed.set_thumbnail(url=user.avatar.url) await interaction.response.send_message(embed=embed) + @bot.slash_command(name="messagecount", description="Get a user's message count") + @commands.has_any_role(*STAFF_ROLES) + async def message_count(self, interaction): + user_id = str(interaction.user.id) + self.cursor.execute("SELECT MessageCount FROM UserMessages WHERE UserID=?", (user_id,)) + result = self.cursor.fetchone() + if result is None: + await interaction.response.send_message(f"{interaction.user.name}'s message count is 0.") + else: + await interaction.response.send_message(f"{interaction.user.name}'s message count is {result[0]}.") def setup(bot): """ diff --git a/bot/utilities.py b/bot/utilities.py new file mode 100644 index 0000000..0ce9a41 --- /dev/null +++ b/bot/utilities.py @@ -0,0 +1,23 @@ +import sqlite3 +from nextcord.ext import commands + +class MessageManagementCog(commands.Cog): + def __init__(self, bot): + self.bot = bot + self.conn = sqlite3.connect('user_messages.db') + self.cursor = self.conn.cursor() + self.cursor.execute('''CREATE TABLE IF NOT EXISTS UserMessages + (UserID TEXT PRIMARY KEY, MessageCount INTEGER)''') + + async def on_message(self, message): + user_id = str(message.author.id) + self.cursor.execute("SELECT MessageCount FROM UserMessages WHERE UserID=?", (user_id,)) + result = self.cursor.fetchone() + if result is None: + self.cursor.execute("INSERT INTO UserMessages VALUES (?, 1)", (user_id,)) + else: + self.cursor.execute("UPDATE UserMessages SET MessageCount = MessageCount + 1 WHERE UserID=?", (user_id,)) + self.conn.commit() + + def cog_unload(self): + self.conn.close() \ No newline at end of file diff --git a/main.py b/main.py index 0461bb7..197f375 100644 --- a/main.py +++ b/main.py @@ -19,5 +19,6 @@ def run(): # Load the slash commands and context menus bot.load_extension('bot.slash_commands') bot.load_extension('bot.context_menus') + bot.load_extension('bot.utilities') # Start the bot bot.run(DISCORD_TOKEN)