Added guilds command BEWARE: All administration.py commands are runnable by ALL Guild Admins so don't put the bot in any additional guilds. I first have to fix this by only making it possible on a specific guild.
46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
# 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
|
|
|
|
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.default_permissions()
|
|
@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.default_permissions()
|
|
@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 <text> """
|
|
await interaction.response.send_message(text)
|
|
|
|
@app_commands.default_permissions()
|
|
@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))
|