From cbc030e6527ddafafc013338240b712bf634826c Mon Sep 17 00:00:00 2001 From: sgoudham Date: Sun, 16 Aug 2020 04:16:57 +0100 Subject: [PATCH] Moved owner only commands into owner.py --- cogs/owner.py | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 cogs/owner.py diff --git a/cogs/owner.py b/cogs/owner.py new file mode 100644 index 00000000..9e811143 --- /dev/null +++ b/cogs/owner.py @@ -0,0 +1,69 @@ +from discord import Embed, Member +from discord.ext.commands import Cog, command, is_owner + + +class Owner(Cog): + """Commands for Ensō server""" + + def __init__(self, bot): + self.bot = bot + + @command(name="dm", hidden=True) + @is_owner() + async def dm(self, ctx, member: Member, *, text): + """DM users""" + + # Send the message typed the mentioned user + await member.send(text) + # Delete the message sent instantly + await ctx.message.delete() + + @command(name="leave", hidden=True) + @is_owner() + async def leave(self, ctx): + """Leaves the guild""" + + await ctx.send("**Leaving the guild... Bye Bye uvu**") + await ctx.guild.leave() + + @command(name="restart", hidden=True) + @is_owner() + async def restart(self, ctx): + """Restart the Bot""" + + embed = Embed( + description="**Success Senpai! My Reboot Had No Problems** ", + colour=self.bot.admin_colour) + await ctx.send(embed=embed) + + self.bot.db.terminate() + await self.bot.db.wait_closed() + await self.bot.logout() + + @command(name="reloadusers", hidden=True) + @is_owner() + async def reload_db(self, ctx): + """Reloads the database by inserting/updating all the records""" + + # Setup pool + pool = self.bot.db + + # Setup up pool connection and cursor + async with pool.acquire() as conn: + async with conn.cursor() as cur: + # Define the insert statement that will insert the user's information + insert = """INSERT INTO members (guildID, discordID) VALUES """ + ", ".join( + map(lambda m: f"({ctx.guild.id}, {m.id})", + ctx.guild.members)) + """ ON DUPLICATE KEY UPDATE guildID = VALUES(guildID), discordID = VALUES(discordID)""" + + # Execute the insert statement + await cur.execute(insert) + await conn.commit() + print(cur.rowcount, f"Record(s) inserted successfully into Members from {ctx.guild.name}") + + # Sending confirmation message + await ctx.send(f"Database Reloaded Successfully for **{ctx.guild.name}**") + + +def setup(bot): + bot.add_cog(Owner(bot))