40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
from os import getpid, makedirs, system
|
|
from shutil import rmtree
|
|
from discord import ApplicationContext, slash_command, Cog, Guild
|
|
from discord.ext import commands
|
|
from functions import appendLog, getMsg, loadJson, makeEmbed, saveJson, strToColor
|
|
|
|
#=========================================================================================================================
|
|
class CogUtility(commands.Cog):
|
|
|
|
def __init__(self, client):
|
|
self.client = client
|
|
|
|
@Cog.listener()
|
|
async def on_guild_join(self, guild: Guild):
|
|
|
|
makedirs(f"guilds/{str(guild.id)}", exist_ok=True)
|
|
makedirs(f"guilds/{str(guild.id)}/channels", exist_ok=True)
|
|
saveJson({}, f"guilds/{str(guild.id)}/config.json")
|
|
|
|
appendLog(f"Joined guild '{guild}' with id {str(guild.id)}")
|
|
|
|
@Cog.listener()
|
|
async def on_guild_remove(self, guild: Guild):
|
|
|
|
try:
|
|
rmtree(f"guilds/{str(guild.id)}")
|
|
except:
|
|
pass
|
|
|
|
appendLog(f"Left guild '{guild}' with id {str(guild.id)}")
|
|
|
|
@slash_command(name="shutdown", description="Restart the bot")
|
|
async def shutdown(self, ctx: ApplicationContext):
|
|
config = loadJson("config.json")
|
|
if ctx.author.id == config["owner"]:
|
|
await ctx.respond(embed=makeEmbed(description=getMsg("shutdown", ctx.guild).format(ctx.author), color=strToColor(config["color_default"])))
|
|
system(f"kill -9 {str(getpid())}")
|
|
else:
|
|
await ctx.respond(embed=makeEmbed(title=getMsg("admin_title", ctx.guild), description=getMsg("admin_description", ctx.guild), color=strToColor(config["color_error"])))
|
|
#========================================================================================================================= |