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

    fenrir1121
    @fenrir1121
    Начни с документации
    Прочитать в bot.guilds
    Ответ написан
    Комментировать
  • Синхронизация команд Discord Bot | Pycord?

    fenrir1121
    @fenrir1121
    Начни с документации
    reload это перезагрузка уже загруженного.
    Стартовая загрузка выполняется через load_extension. Кроме того судя по self на скриншоте есть ощущение, что вы делаете это где-то не там.
    cogs_list = [ ... ]
    for cog in cogs_list:
        bot.load_extension(f'bot.{cog}')


    Инструкция по работе с когами у pycorda есть в документации.
    Ответ написан
  • Как отслеживать сколько человек провел времени в голосовом канале дискорд?

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

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

    У вас на второй строчке код вероятно падает с ошибкой voice_state = self.get_voice_state(guild_id). Я на 99% уверен, что в вашем классе нет такого метода. Чтобы ответить точно нужен весь код, но чаще всего в когах объект бота лежит в self.bot.
    Разберитесь почему вы не видите ошибки, потому что в консоль, где запущен бот должно все нужное приходить, если только вы их не глушите где-то выше.

    Ну и сразу по последующему коду замечу, что вы не можете вызывать дважды response, потому что ответ можно выдавать только один раз.
    Кроме того писать сообщение в духе "я сделаль" до того как реально что-то сделали дурной тон. Как минимум потому что по причине выше вы могли бы выдать сообщение и упасть с ошибкой на самом деле ничего не сделав.
    Ответ написан
    Комментировать
  • Сколько живет Refresh token при реализации OAuth2 авторизации через Discord?

    fenrir1121
    @fenrir1121
    Начни с документации
    А зачем это писать в документации? Там стандартный формат ответа. Смотрите значение в поле expires_in
    Ответ написан
    Комментировать
  • Передали права на сервер в дискорде через ратник, что делать?

    fenrir1121
    @fenrir1121
    Начни с документации
    поддержка дискорда может восстановить права на сервер, если будет доказан факт кражи аккаунта?
    Этот вопрос нужно задавать службе поддержки, что они могут, а что нет зависит от обращающегося лица.

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

    и что лучше делать в этой ситуации
    Писать в поддержку. Морально готовится создавать новый сервер и повышать компьютерную грамотность чтобы больше не попадать в подобную ситуацию.
    Ответ написан
    6 комментариев
  • Бот дискорда падает в Rate limited, что делать?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Давайте по порядку. В документации дискорда очень четко прописаны лимиты для вебсокета и чуть менее четко для HTTP. Цитировать оттуда не буду, думаю там все понятно.

    В общем виде ошибка 429 говорит, что в один из двух лимитов вы не укладываетесь. Чтобы не происходила ошибка можно перед выполнением действий проверять блокировку через AutoShardedClient.is_ws_ratelimited, но это не лечение проблемы, а только обработка.
    Для лечения нужно перехватывать ошибку в глобальном обработчике и по стеку вызовов смотреть на каком действии она происходит. Если приложите стектрейс к запросу, можно будет по нему сказать конкретнее. Только убедитесь чтобы логи не обрезались как у вас выше. Может быть и так было бы понятно, но эндпоинт https://discord.com/api/v10/channels/1215300998588... весь не видно. Учитывайте что она может и в разных когах происходить об этом ниже.

    В целом дискорд не любит, когда боты делают что-либо без явных действий пользователя. Причем чем больше бот, тем строже, поскольку для них это больше нагрузки. К примеру в коде, который вы приложили есть обновление статуса каждые 10 секунд. Будем объективны, пользователям плевать что у бота в статусе, но эти запросы так же идут в общий рейт лимит. Я бы советовал поставить или большое значение (5-10 минут) или вообще избавиться от этой карусели.
    Аналогично пройдите по остальному коду, который не приложен и посмотрите есть ли периодические запросы без явных команд: например обновления каких-нибудь сообщений по таймерам. Если есть увеличивайте таймеры в 2 раза (повторять до исправления) или подумайте как предоставлять функционал без этого.
    Ответ написан
    2 комментария
  • Как исправить ошибку "AttributeError: 'set' object has no attribute 'items'" в дискорд-боте?

    fenrir1121
    @fenrir1121
    Начни с документации
    Почитайте этот пример, запустите его и посмотрите на результат
    s = {'123'}
    d = {'token': '123'}
    print(type(s))
    print(type(d))


    Вы явно хотите использовать словарь, но создали вместо этого множество о чем вам написано в ошибке.
    Ответ написан
    Комментировать
  • Скрипт отправки сообщений в канал Дискорда?

    fenrir1121
    @fenrir1121
    Начни с документации
    Юзерботы запрещены TOS дискорда.
    Ничего не мешает делать ту же логику обычным ботом.
    Ответ написан
  • Как сделать форму для получение роли, после проверки-одобрения модерации (как на видео)?

    fenrir1121
    @fenrir1121
    Начни с документации
    Написать бота, где будет реализована нужная вам форма и логика. Буквально последний вопрос в разделе discord.py, посвящён той же задаче.

    Либо же найти бота, который уже умеет делать то что вы хотите, но такое бывает редко.
    Ответ написан
  • Можно ли изменить длинну поля сообщения embeds в вебхуке?

    fenrir1121
    @fenrir1121
    Начни с документации
    Нельзя. Поэтому кто хотят этим заморачиваться делают длинную картинку с горизонтальной линией, узором или чем-то тематичным.

    Далее будет субъективщина, но я не видел ни одного сервера, где было бы приличное подобное оформление. Для теста лучше всего использовать обычные текстовые сообщения, они лучше всего читаются и не едут в зависимости от ширины экрана.
    Ответ написан
  • Как записать в переменную упоминание пользователя(в Python)?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Упоминание пользователя это обычная строка вида <@user_id>. Любая работа с ней аналогична работе со строками.
    В документации описаны все форматы подробных строк.
    Ответ написан
    Комментировать
  • Как добавить роль во все каналы разом?

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

    fenrir1121
    @fenrir1121
    Начни с документации
    Список ролей пользователя лежит в Member.roles
    Где-то в БД храните id двух нужных ролей, читаете их оттуда, далее на том же пользователе применяете Member.add_roles и Member.remove_roles
    Ответ написан
  • Можете дать пример как сделать персональные роли на DISNAKE?

    fenrir1121
    @fenrir1121
    Начни с документации
    1. Изучаете атрибуты и методы объектов Member, Channels и Role. Смотрите как получать роли пользователя или наоборот пользователей роли, что у них можно изменять, что вообще доступно.

    2. Декомпозируете хотелки в пошаговый алгоритм: Сделать X, затем Y, затем Z.

    3. Находите в пункте 1 методы, которые реализуют действия в пункте 2

    4. Если вашего действия нет в доступных методах вы недостаточно конкретно сформулировали задачу (вернитесь в пункт 2) или не получили нужный объект (вернитесь в пункт 1)
    Ответ написан
    Комментировать
  • Как сделать, чтобы бот перенаправлял сообщения из дискорд канала в телеграм?

    fenrir1121
    @fenrir1121
    Начни с документации
    Доступ нужен и к телеграмму и к дискорду дальше делаете обычный pub/sub.
    В дискорде заводите бота, слушаете ивент новых сообщений в нужном канале, пересылаете их в любой брокер (банально в redis).
    В телеге заводите бота, достаете все сообщения из очереди и отправляете.
    Ответ написан
  • Как сделать слэш команду с выбором человека и выбором 1 из 3 пунктов? И желательно чтобы бот это всë выводил в ответ + кто отправил команду. Можно?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Я здесь вижу 4 отдельных вопроса и вижу 0 попыток самостоятельно это реализовать.

    Да все это сделать можно, открываете документацию и изучаете.
    Даже 3 строчки что вы приложили дают понять, что вы ее не открывали, поскольку слеш-команды принимают не Контекст, а Взаимодействие. Это разные объекты с разными атрибутами и методами.
    @client.tree.command()
    async def send(interaction: discord.Interaction, text_to_send: str):
        await interaction.response.send_message(text_to_send)

    В частности у него есть атрибут response, который как раз отвечает за ответ, а не самостоятельное сообщение.

    Кто вызвал команду лежит в user.

    Для выбора человека и выбора из пунктов нужно ознакомиться со страницей discord-converters, там даны все типы, которые можно передать в параметры команды. Нужно только проставить типы, все остальное библиотека делает сама.
    Ответ написан
  • Как сделать выдачу ответов Google Forms в строку?

    fenrir1121
    @fenrir1121
    Начни с документации
    discordPayload.embeds[0].fields.push({ name: i.getItem().getTitle(), value: v })
    Вставить все в одно поле, Name и Value не могут быть в одной строке
    Ответ написан
  • Как удалить переписку из личных сообщений всех пользователей сервера Discord?

    fenrir1121
    @fenrir1121
    Начни с документации
    Никак
    Ответ написан
    Комментировать
  • Можно ли вместо bot_token использовать user_token в библиотеке disnake?

    fenrir1121
    @fenrir1121
    Начни с документации
    Нельзя.
    Права пользователей и права ботов отличаются, для них разные API. В старых версия discord.py был такой функционал (где-то в районе 1.5), но он был выпилен примерно 3-4 года назад с тех пор как он нарушает TOS. Поскольку диснейк основан на discord.py 1.7.4 там этого функционала не было изначально.

    Библиотеки для создания таких ботов есть, но поскольку за это быстро банят их развивает буквально полтора землекопа и они максимальны сырые (форки очень старой версии discord.py с попытками доработки). По правилу 5.5 публиковать о них информацию и как-то помогать в этом направлении вам тут не будут.
    Ответ написан
    Комментировать