Ответы пользователя по тегу discord.py
  • Как написать приватные комнаты на кнопках Discord py?

    Lapita12
    @Lapita12
    Тесты, тесты?
    Для создания приватных комнат на кнопках Discord.py, вам нужно использовать модуль discord.ui

    import discord
    from discord.ext import commands
    from discord.ui import View, button
    
    class PrivateRoomView(View):
        def __init__(self):
            super().__init__()
            self.add_item(button(label="Создать комнату", custom_id="create_room"))
            self.add_item(button(label="Присоединиться к комнате", custom_id="join_room"))
    
        @button(custom_id="create_room")
        async def create_room(self, button: discord.ui.Button, interaction: discord.Interaction):
            # Здесь вы можете добавить логику для создания комнаты
            await interaction.response.send_message("Комната создана!")
    
        @button(custom_id="join_room")
        async def join_room(self, button: discord.ui.Button, interaction: discord.Interaction):
            # Здесь вы можете добавить логику для присоединения к комнате
            await interaction.response.send_message("Вы присоединились к комнате!")


    Вы можете использовать этот класс PrivateRoomView в своем боте Discord.py, чтобы создать меню с кнопками для создания и присоединения к приватным комнатам.
    Чтобы добавить логику для редактирования названия комнаты, вы можете добавить еще одну кнопку в PrivateRoomView и обработчик для нее, который будет выполнять запрос на редактирование названия комнаты.
    Ответ написан
  • Почему не выводит ошибку sqlite3?

    Lapita12
    @Lapita12
    Тесты, тесты?
    Вы забыли создать объект базы данных для выполнения операций здесь:
    cur.execute('INSERT INTO system (userid, nick) VALUES(?, ?)', (member.id, member.name))


    Попробуйте добавить строку кода перед этой строкой, чтобы создать объект базы данных:
    base = sqlite3.connect('название_базы_данных.db')
    cur = base.cursor()


    Если список импорта не содержит sqlite3, добавьте его в начало файла:
    import sqlite3
    Также убедитесь, что вы верно указали токен бота и активировали команды. Если все еще не удается получить ошибку из базы данных, проверьте, правильно ли вы подключаетесь к базе данных, и есть ли записи в таблице «system». Возможно, вы должны сделать несколько модификаций в вашем коде, чтобы работать с ошибками правильно.
    Ответ написан
  • Что делать, если бот не реагирует на команды?

    Lapita12
    @Lapita12
    Тесты, тесты?
    Если ваш бот перестал реагировать на команды, возможно, что проблема связана с разрешениями, присвоенными боту на сервере Discord. Убедитесь, что ваш бот имеет правильные разрешения доступа, чтобы просматривать и отправлять сообщения в канал, в котором вы пытаетесь использовать команду.

    Также убедитесь, что вы правильно настроили Intents для вашего бота, чтобы ваш бот мог получать ивенты, которые ему нужны. В вашем коде пока что нет никакой настройки Intents. Проверьте, что вы настроили их правильно, и добавьте нужные Intents для вашего бота:
    intents = discord.Intents.default()
    intents.members = True  # добавляем этот Intent, если мы прописали команду clear с аргументом "amount"
    bot = commands.Bot(command_prefix=settings['prefix'], intents=intents)


    Также добавьте обработку ошибок, чтобы увидеть, возможно, ли бот выдавать какие-либо ошибки:
    @bot.event
    async def on_command_error(ctx, error):
        await ctx.send(f'Произошла ошибка: {error}')


    Если вы добавите этот код, то при возникновении ошибки во время выполнения команды бот сообщит вам о ней и вы сможете понять, какую ошибку выдает ваш бот.
    Ответ написан
    2 комментария
  • Как вывести имя пользователя после юза modal menu? pycord-discord.py?

    Lapita12
    @Lapita12
    Тесты, тесты?
    Чтобы получить имя пользователя, который использовал modal menu, вам нужно использовать атрибут user в объекте interaction. Вот так можно выводить имя пользователя:

    #Извлекаем имя пользователя
    username = interaction.user.name
    
    # Создаем embed и выводим данные пользователя
    embed = discord.Embed(title="Набор на эвентера")
    embed.add_field(name="Имя пользователя", value=username, inline=False)
    embed.add_field(name="Сколько вам лет", value=self.children[0].value, inline=False)
    embed.add_field(name="Почему мы должны взять именно вас?", value=self.children[1].value, inline=False)
    embed.add_field(name="Был ли у вас опыт в модерации?", value=self.children[2].value, inline=False)
    embed.add_field(name="Откуда вы?", value=self.children[3].value, inline=False)
    embed.add_field(name="Расскажите о себе", value=self.children[4].value, inline=False)
    embed.set_footer(text=f"Заявку оставил: {username}")


    Здесь мы используем метод name, чтобы получить имя пользователя из объекта user, и затем добавляем его в footer нашего Embed.
    Ответ написан
    Комментировать