Ответы пользователя по тегу discord.py
  • Почему бот не отправляет сообщение в определенный канал?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Функция add_experience нигде не вызывается.
    Соответственно опыт не начисляется, соответственно уровни не выдаются.

    Ставьте принты или дебажте, смотрите какие функции у вас вообще вызываются.

    Так же соблюдайте правила ресурса, публикуйте код в спойлере и присылайте код, который относится к вопросу, а не гигантскую портянку со всем подряд.
    Ответ написан
    Комментировать
  • Как сделать применение кнопок и выпадающего списка к одному сообщению на disnake.py?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Так же как по отдельности.

    Помимо декоратора @button, никто не запрещает их передавать в View как компоненты
    components=[
                disnake.ui.Button(label="Yes", style=disnake.ButtonStyle.success, custom_id="yes"),
                disnake.ui.Button(label="No", style=disnake.ButtonStyle.danger, custom_id="no"),
            ],


    Открывайте примеры и документацию.

    Что до ошибки по строчке view = DropdownView(), EditStatus() видно, что вы пытаетесь передать кортеж в inter.send() вместо disnake.ui.View, о чем вам явно указано в ошибке.

    На будущее прикладывайте полные логи, а изображения и портянку кода убирайте в спойлер.
    Ответ написан
    Комментировать
  • Как сделать удаление "начинает ветку"?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    При создании ветки (они зовутся Thread's) вызывается событие on_thread_create. В нем прописываете свою логику.

    Ценность подобной логики мне не понятна, ведь удаление сообщения не удаляет тред, поэтому рекомендую еще посмотреть методы объекта Thread
    Ответ написан
  • Не могу подключиться к голосовому каналу discord.py. В чём проблема?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Проблема в том, что это невалидный код, который вероятнее всего писал chatGPT.
    Исправлять такой код помогают тут
    Ответ написан
    Комментировать
  • Почему у меня ошибка discord.ui?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    In components.0.components.0.emoji.name: Invalid emoji

    Как сказано в сообщении потому что нет такого эмодзи.
    Стандартные эмодзи передаются юникод-символом (можно взять например тут), кастомные строкой в формате <name:id>
    Ответ написан
    1 комментарий
  • Как сделать так чтобы мой бот работал только на моём сервере?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Достаточно просто не публиковать ссылку-приглашение.
    Но если нужно именно решение кодом проверяйте сервер в on_message
    Ответ написан
    Комментировать
  • Почему не работает лимит?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Потому что нет никакого лимита.
    Поставь принт с каким-нибудь текстом первой строчкой каждой функции и убедись что вызывается всегда только одна из трёх функций. Почему так оставлю тебе на подумать.

    В официальной документации есть примеры работы с кнопками, ссылку на документацию я давал в прошлом твоём вопросе. Учись по документации, а не каким-то устаревшим гайдам из которых ты это взял.
    Ответ написан
    Комментировать
  • Как сделать запрос текста disnake?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Буквально весь смысл ботов, брать какой-то запрос пользователя, класть его в переменные и что-нибудь с ним делать. В примере ниже number запрашивается у пользователя
    @bot.slash_command(description=Умножить число на 42")
    async def multiply(inter, number: int):
        await inter.response.send_message(number * 42)
    Ответ написан
  • Как исправить ошибку TypeError: DataBase.get_max_cash() missing 1 required positional argument: 'cash'?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Научиться пользоваться переводчиком.
    Вот объявление Вашей функции:
    async def get_max_cash(self, ctx, cash, *, all_data: bool=False):


    Вот как вы пытаетесь ее вызвать:
    data = await self.db.get_max_cash(cash)

    Если глядя на последнюю строчку и текст ошибки не приходит никаких идей, попробуйте начать с учебника для начинающих.
    Ответ написан
    Комментировать
  • Как лучше сделать одобрение/отклонение заявок через pycord (discord.py)?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Потому что Bot.wait_for это гигантский костыль. С тех пор как появились взаимодействия его не следует использовать в принципе. В вашем случае у вас все открытые заявки ждут события raw_reaction_add, а check не проверяет на каком сообщении реакция поставлена.
    Путей исправления 3:

    1 (оптимальный). Разобраться как работают события. В идеале создавать сообщение с 2 кнопками, которые хранят данные от кого они были созданы.

    2 (простой). Не использовать события. Создать отдельную команду для подтверждения, куда передается пользователь и статус.

    3 (кривой). Оставить все как есть. В сообщении наверняка есть строка от кого оно. Парсить текст сообщения, добавить в check проверку по конкретному пользователю.
    Ответ написан
    Комментировать
  • Как исправить ошибку с командой work?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Сделать дебаг или принтами посмотреть тип и значение всех переменных в процессе выполнения функции.
    За вас это никто не сделает, весь код состоит из ваших функций, код которых вы не предоставили.

    Отсутствие и ответа и ошибки говорит только о том, что вы заглушаете ошибки.
    Ответ написан
    Комментировать
  • Как добавить в бота функцию мониторинга стримов и записей групп?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Изучаете API твича, API ютуба, API ВК и API стима находите нужные вам эндпоинты и используете их. Если для желаемых операций недостаточно имеющихся апи используете Selenium и пишите автоматизации для нужных действий.
    Ответ написан
  • Как сделать так что бы при задержке команды выдавалось моё сообщение, а не ошибка?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Кулдан вызывает исключение CommandOnCooldown. Исключения вызывают событие on_command_error. Там проверяете с какой ошибкой туда попали и реализуете любую логику.
    Ответ написан
  • Как сделать задержку между командами в discord боте?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    после 1 часа задержки бот перезагружается или встает и надо его перезагружать

    Это не нормальное поведение. Ищите проблему в своем коде, если он зависает, то не из-за кулдауна. Люди и суточные кулдауны используют и ничего не зависает. Если все протрассировали и железно уверены что из-за него, подготавливайте воспроизводимый пример, шлите Issues с описанием бага.

    Еще не знаю как сделать кулдаун через базу данных

    Так же, как и любые другие параметры. Добавляете к вашему User поле и храните в нем timestamp последнего вызова команды. Пишите функцию f, которая проверяет что текущее время - время последнего вызова > чем нужное вам значение, используете @commands.check(f), чтобы не засорять код команды.
    Ответ написан
    Комментировать
  • Как добавить параметры disable и timeout?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Куда бы ни вставлял, выдает ошибку
    Попробуйте читать текст ошибки вместо вставки куда-нибудь. У класса View есть атрибут timeout, который по умолчанию равен 180 секундам. Задается при создании.
    Атрибута или метода disable у вьюх нет.
    Ответ написан
  • Как ввести мультисерверную экономику в бота?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Если немного сесть и подумать если нужно чтобы валюта была отдельная для каждого сервера, значит сервер должен где-то в модели данных фигурировать. А у вас его нет.
    6439241be37d6227319386.png
    Ответ написан
    Комментировать
  • Ошибка в консоли что делать?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    This repository has been archived by the owner on Mar 8, 2022. It is now read-only.

    Перестать пользоваться устаревшей библиотекой
    Ответ написан
    Комментировать
  • Как сделать считывание сообщения в ЛС?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Чтобы сделать заказ, напиши на Фриланс, укажи как ты готов вознаградить того, кто сделает твое задание, color=0x1f8b4c.
    Ответ написан
    Комментировать
  • Как использовать метод get_channel в модальном окне?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Как использовать метод get_channel в модальном окне?

    Так же как не в модальном окне. Модальное окно тут вообще не при чем. Вы пытаетесь получить bot у инстанса disnake.ui.Modal, а не у клиента. В ошибке это прямым текстом написано.
    Ответ написан
    Комментировать
  • Что за " Введите корректный числовой код"?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Во-первых проверка по длине работает для строк, а не для чисел.
    Во-вторых для вашего кейса есть тип discord.Member при котором можно вводить через упоминание (@) или по id и библиотека будет сразу возвращать пользователя
    Ответ написан
    Комментировать