# administration.py by freaky (freaky@freakyonline.de) # --- # # This extension is for administrating the bot. # As I'm now using using jishaku tools for # administrating the bot, this extension is # kinda obsolete. import discord from discord import app_commands from discord.ext import commands @app_commands.default_permissions() class AdminExt(commands.GroupCog, name="admin"): def __init__(self, bot: commands.Bot) -> None: self.bot = bot super().__init__() # this is now required in this context. @app_commands.command(name="stop", description="Stops (shuts down) the bot") @commands.is_owner() async def admin_stop(self, interaction: discord.Interaction) -> None: """ /admin stop """ await interaction.response.send_message("The bot will now shutdown. Good bye! :)") await self.bot.close() @app_commands.command(name="say", description="Makes the bot repeat what you type") @app_commands.describe(text="Text to send to the channel/query.") @commands.is_owner() async def admin_say(self, interaction: discord.Interaction, text: str) -> None: """ /admin say """ await interaction.response.send_message(text) @app_commands.command(name="guilds", description="List guilds the bot is in") @commands.is_owner() async def admin_guilds(self, interaction: discord.Interaction) -> None: """/admin guilds""" guilds = [guild async for guild in self.bot.fetch_guilds(limit=150)] for guild in guilds: guild = ''.join(str(guild)) await interaction.response.send_message(guild, ephemeral=True) async def setup(bot: commands.Bot) -> None: await bot.add_cog(AdminExt(bot))