from discord import ApplicationContext, DiscordException, slash_command, Color from discord.ext.commands import Cog, cooldown, BucketType, has_permissions, guild_only, Context from Christmas.UI.Embed import Default_Embed, ChristmasEmbed from Christmas.Database import database from Christmas.Module import get_gpuserver_status, Get_Backend_latency class CUtil(Cog): def __init__(self, bot): self.bot = bot @guild_only() @has_permissions(administrator=True) @cooldown(1, 10, BucketType.user) @slash_command(name="서버가입", description="서버에 가입합니다.") async def _join(self, ctx: Context): try: if await database.get_guild(ctx.guild.id): return await ctx.respond(embed=Default_Embed.already_register(), ephemeral=True) await database.register_guild(ctx.guild.id) await ctx.respond(embed=Default_Embed.register_sucess()) except Exception as e: await ctx.respond(embed=Default_Embed.register_failed()) @guild_only() @cooldown(1, 10, BucketType.user) @slash_command(name="봇정보", description="봇의 정보를 확인합니다.") async def _info(self, ctx: Context): if not await database.get_guild(ctx.guild.id): return await ctx.respond(embed=ChristmasEmbed(title="❌ 에러!", description="서버가 가입되어있지 않아요! 서버를 가입해주세요!", color=Color.red()),ephemeral=True) data = await get_gpuserver_status(url=None) data2 = await Get_Backend_latency() await ctx.respond(embed=Default_Embed.BotInfo(data, bot=self.bot, APIlatency=data2)) def setup(bot): bot.add_cog(CUtil(bot))