Ответы пользователя по тегу Discord
  • Как управляя своим аккаунтом дискорда отправлять сообщения другу на python?

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

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

    Судя по несуществующим методам код вы взяли у chatgpt. Вам его с удовольствием помогут испрвить на фрилансе
    Ответ написан
    Комментировать
  • Как получить айди картинки которую можно загрузить в бота в Rich Presence Art Assets?

    fenrir1121
    @fenrir1121
    Начни с документации
    Эти изображения предназначены для разработчиков игр и привязываются к активностям.
    Id'шников у них нет и напрямую к ним обращаться невозможно.

    game-sdk/activities
    Ответ написан
    Комментировать
  • Как удалить КОНКРЕТНОЕ сообщение в дискорде?

    fenrir1121
    @fenrir1121
    Начни с документации
    Сообщение на которое вы отвечаете лежит в атрибуте Message.reference.
    Для него необходимо вызвать Message.delete.
    Ответ написан
    8 комментариев
  • Активация выполнение команды на нескольких серверах возможно ли Discord JS?

    fenrir1121
    @fenrir1121
    Начни с документации
    Вы не можете забанить человека, если его нет на данный момент на сервере.
    Но можете хранить id всех забаненых и банить их если они когда-либо туда зайдут по событию входа на сервер.

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

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Не стоит привязываться к ошибкам библиотеки. Создаете кастомную ошибку и вызываете в месте возникновения.
    Сейчас вы привязываете к стандартным ошибкам текст, который в реальности не отражает проблему: скажем отсутствие разрешений это MissingPermissions или BotMissingPermissions. BadArgument это ошибка разбора аргументов.

    Ну и не нужно дергать вызов ошибок в событии предназначенном для их обработки.
    async def on_command_error(error, ctx):
        if isinstance(error, commands.BadArgument):
            await ctx.send("Запрос команды с ошибочным аргументом")
        elif isinstance(error, commands.CommandNotFound):
            await Client.send_message(ctx.message.channel, "Команда не найдена")
        ... # вставлять новые проверки сюда
        else:
            await Client.send_message(ctx.message.channel, "Неизвестная ошибка")
    Ответ написан
    Комментировать
  • Как вызвать одну функцию из другой в discord боте?

    fenrir1121
    @fenrir1121
    Начни с документации
    Как вызвать одну функцию из другой в discord боте?
    Так же как не в дискорд боте.

    Есть две команды
    В приложенном коде только одна команда search, а ask просто функция.

    # Создаем контекст для выполнения команды /search с вопросом пользователя
    ctx = await bot.get_context(channel.message)
    ctx.message.content = f"/search {question}"

    Зачем вы пытаетесь отправить сообщение и самому на него отреагировать?
    Почему вы пытаетесь использовать слеш в команде с префиксом?

    По ощущениям код на 80% написан кодогенератором и пишется без понимания что он вообще делает.
    Ответ написан
  • Почему RuntimeError именно на сервере?

    fenrir1121
    @fenrir1121
    Начни с документации
    Ошибка прямым тестом говорит, что корутина вызвана без await.
    Открываем документацию и проверяем очевидное - Bot.add_cog это корутина.

    почему оно локально работает, а в docker - нет
    Тут можно только угадывать, вы ведь не приложили ни структуру проекта ни Dockerfile. Вероятно потому что вы неверно запускаете и локально и в докере, ведь этот код и не должен работать.
    Ответ написан
  • Почему if isinstance(interaction.component, disnake.ui.Button) возвращает False?

    fenrir1121
    @fenrir1121
    Начни с документации
    Потому что disnake.ui.Button и disnake.Button не одно и то же.

    disnake.ui.Button используется для создания кнопок, а в component лежит или disnake.Button или disnake.BaseSelectMenu
    Ответ написан
    Комментировать
  • Как выучить disnake?

    fenrir1121
    @fenrir1121
    Начни с документации
    disnake это библиотека, а не язык чтобы его учить. Берете и пользуетесь.

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

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

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Многие используют from discord_slash import SlashCommand
    Смелое заявление о библиотеке, которая не обновлялась с 2021 года. У нее уже даже архивный репозиторий удалили и ссылка ведет на interactions.py.

    Как создать слеш команды на discord.py?
    Открыть examples библиотеки, например basic.py, вставить свой токен и запустить. Все примеры снабжены исчерпывающими комментариями.
    Ответ написан
    Комментировать
  • Я неправильно добавляю кнопки в сообщение. Как правильно?

    fenrir1121
    @fenrir1121
    Начни с документации
    Посмотрите этот пример. Каждый ряд это отдельный список
    Ответ написан
    Комментировать
  • Как сделать анти флуд по комманде пример: !antispam on / off?

    fenrir1121
    @fenrir1121
    Начни с документации
    Загир Меджидов надеюсь это chatGPT. Если нет внимательно поищите SPAM_TIME в вашем коде.

    Coding No на вопрос
    не знаю как ...
    отвечает гугл. Если вы используете тег Python потрудитесь представить вашу попытку решения.
    В дискорде существует slow-mode, который можно выставить на любое время и дать ролям иммунитет к нему.
    Все кто без иммунитета смогут писать 1 сообщение в X секунд. Если передать 0 - отключается.
    Выставляется одной строчкой кода
    async def setdelay(ctx, seconds: int):
        await ctx.channel.edit(slowmode_delay=seconds)
    Ответ написан
  • Как отключить кнопки?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Чтобы кнопка изменилась необходимо отредактировать сообщение с ними.
    Для этого есть метод Interaction.edit_original_message, куда нужно передать view с обновленными кнопками

    В документации дан пример, где выполняется схожая логика и все снабжено комментариями
    @disnake.ui.button(label="Disable the view", style=disnake.ButtonStyle.grey)
    async def disable_button(self, button: disnake.ui.Button, inter: disnake.MessageInteraction):
        # We disable every single component in this view
        for child in self.children:
            if isinstance(child, disnake.ui.Button):
                child.disabled = True
        # make sure to update the message with the new buttons
        await inter.response.edit_message(view=self)
    Ответ написан
  • Как сделать два модальных окна?

    fenrir1121
    @fenrir1121
    Начни с документации
    Так же как одно, только два.

    В колбеке первого вызываете второе.
    Ответ написан
    Комментировать
  • Как я могу выдать роль по кнопке через ЛС?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Сейчас вы используете interaction.send для отправки. Переводя на русский смысл данной команды "отправь в канал взаимодействия"

    Если вы хотите отправить пользователю, первым шагом вы идете в документацию и находите объект User, вторым шагом смотрите доступные ему методы и находите знакомый метод send. Переводите описание метода и понимаете, что он вам подходит. Объект пользователя у вас уже в коде есть. В случае возникновения новых проблем повторить шаг 1.

    Это было по теме вопроса, но раз вы изучаете недавно вам еще домашнее задание подумать и ответить "а почему так никто не делает"
    Ответ написан
    Комментировать
  • Ошибка с error?

    fenrir1121
    @fenrir1121
    Начни с документации
    Декоратор error, регистрирует корутину как локальный обработчик ошибок.
    Аргументы локального обработчика должны соответствовать глобальному обработчику.
    on_command_error(ctx, error)
    Обратите внимание на порядок.

    Кроме того у вас во всех обработчиках один и тот же текст, отличается только команда.
    Напишите один глобальный обработчик в текст ошибок которого будет подставляться команда из ctx.
    И переходите на слеши.
    Ответ написан
    Комментировать
  • Как добавлять и удалять роли пользователю через Select Menu в Pycord?

    fenrir1121
    @fenrir1121
    Начни с документации
    Не использовал pycord, но пример в их документации полностью отличается.
    Никакой декоратор ui.select не используется, а логика помещается в метод callback, который является зарезервированным под вызовы объекта.
    Ответ написан
  • Как правильно написать slash-команду в disnake вместе с Option?

    fenrir1121
    @fenrir1121
    Начни с документации
    Переводим ошибку, получаем примерно "имя опции должно быть строкой, а получен тип".
    Ищем где в этой строке единственный параметр, который мог быть распознан как тип.
    Option(int, description='Количество', required=True, min_value=1, max_value=100)

    Похоже первый параметр Option это имя, а вы попытались передать тип. Идем в исходники и подтверждаем эту гипотезу.

    Исправляем
    Option(name='count', description='Количество', type=int, required=True, min_value=1, max_value=100)
    Ответ написан
    Комментировать