Задать вопрос
  • Синхронизация команд Discord Bot | Pycord?

    @llimonix Автор вопроса
    Я разобрался в вопросе, оказывается bot.tree.sync() работает и на коги
    Но теперь мне бы разобраться как изменять ui.View. Чтобы все что я внес в View можно было перезапустить так же как и коги
    Написано
  • Синхронизация команд Discord Bot | Pycord?

    @llimonix Автор вопроса
    from discord import Interaction, TextChannel, app_commands, InteractionResponse
    from discord.ext import commands
    
    from bot.utils.database import db
    
    
    class SetInfoCommand(commands.Cog):
        def __init__(self, bot: commands.AutoShardedBot) -> None:
            self.bot = bot
    
        @app_commands.command(description="Канал, в который бот будет отправлять информацию о новых обновлениях")
        @app_commands.describe(info="Канал для обновлений")
        @app_commands.rename(info="канал")
        @app_commands.guild_only()
        async def setinfo(self, interaction: Interaction, info: TextChannel):
            response: InteractionResponse = interaction.response  # type: ignore
    
            member = interaction.guild.get_member(interaction.user.id)
            if member is None or not member.guild_permissions.manage_guild:
                return await response.send_message(
                    content="У вас нет прав для выполнения этой команды. Необходимо иметь право 'Управление сервером'",
                    ephemeral=True
                )
    
            guild_id = interaction.guild_id  # ID сервера
            info_id = info.id  # ID текстового канала
    
            if not await db.server_exists(guild_id):
                await db.insert_info(guild_id, info_id)
            else:
                await db.update_info(guild_id, info_id)
    
            await response.send_message(
                content=f"Установлен канал для уведомлений о обновлениях: {info.mention}",
                ephemeral=True
            )
    
    
    async def setup(bot):
        await bot.add_cog(SetInfoCommand(bot))


    вот у меня одна из команд в когах. Ранее я использовал дерево команд и командйо await bot.tree.sync() синхронизировал изменения в гильдия. Но как это сделать если все команды лежат в когах. Их выгрузка и загрузка обновляют то что выполняется в командах, но не сами описания команд или новые атрибуты команд или в целом новую команду, который нет пока что в гильдиях. Каждый раз удалять бота и добавлять снова, чтобы команды появились не лучший вариант
    Написано
  • Синхронизация команд Discord Bot | Pycord?

    @llimonix Автор вопроса
    вот сама функция главное, при запуске бота
    66350b7536bdb460340260.png
    Написано
  • Синхронизация команд Discord Bot | Pycord?

    @llimonix Автор вопроса
    релоад у меня происходит в другом коге с префикс командами, которые работают только на меня

    Но суть в том, что даже когда я загружаю заново бота и он занова подгружает коги, то команды приложения не обновляются. Не меняется описание, не добавляются новые команды. Даже если пройдет день, ничего не поменяется.

    Я про эти команды
    66350b02ddff4280382199.png
    Написано
  • Бот дискорда падает в Rate limited, что делать?

    @llimonix Автор вопроса
    Но я так и не понял. Почему даже при запуске бота с 3к серверами ему не хватает 5 шардов. Ведь при запуске он ничего не делает. Абсолютно. Но сразу же вешаются лимиты и пишет, что надо ждать пару минут.
    Написано