Skip to content
Snippets Groups Projects
root.py 1.13 KiB
Newer Older
  • Learn to ignore specific revisions
  • dnns01's avatar
    dnns01 committed
    import json
    from typing import Dict
    
    dnns01's avatar
    dnns01 committed
    import discord
    from discord import Interaction, Message
    from discord.ext import commands
    
    dnns01's avatar
    dnns01 committed
    class Root(commands.Bot):
    
    dnns01's avatar
    dnns01 committed
        def __init__(self, *args, config: Dict, **kwargs):
            super().__init__(*args, **kwargs)
            self.config = config
    
    dnns01's avatar
    dnns01 committed
        async def setup_hook(self) -> None:
            for extension, extension_config in self.config["extensions"].items():
                await self.load_extension(f"extensions.{extension}")
    
    dnns01's avatar
    dnns01 committed
            await self.tree.sync()
    
        @staticmethod
        def dt_format():
            return "%d.%m.%Y %H:%M"
    
    
    dnns01's avatar
    dnns01 committed
    def load_config():
        fp = open("config.json", mode="r")
        return json.load(fp)
    
    dnns01's avatar
    dnns01 committed
    config = load_config()
    bot = Root(command_prefix='!', help_command=None, activity=discord.Game(config["activity"]),
               intents=discord.Intents.all(), config=config)
    
    dnns01's avatar
    dnns01 committed
    @bot.tree.context_menu(name="📌 Nachricht anpinnen")
    async def pin_message(interaction: Interaction, message: Message):
        await interaction.response.defer(ephemeral=True, thinking=True)
        await message.pin()
        await interaction.edit_original_response(content="Nachricht erfolgreich angepinnt!")
    
    dnns01's avatar
    dnns01 committed
    bot.run(config["token"])