Как выполнить 2 пункт я знаю, но как реализовать 1 пункт понять не могу. И да, я чайник :/
Заранее спасибо за помощь.
P.S Да, я изучал документ по Discord.Py , но я не нашёл ничего нужного
Функция получает объект класса discord.Member. Открываем discord.Member
https://discordpy.readthedocs.io/en/stable/api.htm…
Смотрим аттрибуты, видим id
Комментировать
Ответы на вопрос 0
Похожие записи:
- Многопоточный обратный вызов C ++, может отменить регистрацию
- Весь Discord-бот
- Программы не могут получить доступ к файлам, которые имеют к ним отношение — WINDOWS 10 [closed]
- Бот Python Discord
- Как объединить массовые данные с помощью EF [closed]
Источник: thefaq.ru
Получение имени пользователя по его ID (discord python)
Этот код должен на команду !getuser [ID] отправить никнейм пользователя, чей айди указан. Но вместо этого появляется ошибка в консоли:
Discord.py Bot Tutorial — Showing User Warns (Episode #27.2) | MenuDocs
Ignoring exception in command getuser: Traceback (most recent call last): File «/data/data/com.termux/files/usr/lib/python3.9/site-packages/discord/ext/commands/core.py», line 85, in wrapped ret = await coro(*args, **kwargs) File «/storage/emulated/0/z_japan_bot/give2.py», line 103, in getuser user = bot.get_user(userid).name AttributeError: ‘NoneType’ object has no attribute ‘name’ The above exception was the direct cause of the following exception: Traceback (most recent call last): File «/data/data/com.termux/files/usr/lib/python3.9/site-packages/discord/ext/commands/bot.py», line 902, in invoke await ctx.command.invoke(ctx) File «/data/data/com.termux/files/usr/lib/python3.9/site-packages/discord/ext/commands/core.py», line 864, in invoke await injected(*ctx.args, **ctx.kwargs) File «/data/data/com.termux/files/usr/lib/python3.9/site-packages/discord/ext/commands/core.py», line 94, in wrapped raise CommandInvokeError(exc) from exc discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: ‘NoneType’ object has no attribute ‘name’
Помогите исправить пожалуйста.
Источник: husl.ru
Блог
Как получить всех участников с моего сервера discord py
- Post author: admin
- Запись опубликована: 18 января, 2022
- Post category: Вопросы по программированию
#python #python-3.x #python-2.7 #discord #discord.py
Вопрос:
Я хочу получить всех участников моего сервера, но когда я Погуглил его, я просто обнаружил, что этот фрагмент кода будет делать это:
for guild in client.guilds: for member in guild.members: print(member)
Ну, этот код должен отображать всех участников, проблема в том, что он отображает только моего пользователя бота. Но когда я ставлю это так:
DM Users via your Discord Bot in Python! — Part 12 (Tutorial)(2021)
он отображает информацию внутри этого объекта [ ] , и я не буду показывать ее точно, потому что внутри этого объекта есть информация о моей учетной записи и сервере discord, так как я могу изменить этот код, чтобы он показывал мне количество участников или имена участников?
Ответ №1:
Печать guild.member возвращает discord.Member объект, внутри которого содержится много информации. Вот способы, которые вы хотели бы выбрать:
Получение количества участников:
for guild in client.guilds: print(len(guild.members))
Получение имен участников:
for guild in client.guilds: for member in guild.members: print(member.name)
Также я бы предложил сократить время цикла, чтобы избежать ограничения скорости.
1. Здравствуйте, ваш код дает мне тот же результат, у меня на сервере 3 пользователя, я, мой бот и друг, но мой бот учитывает только себя, он не учитывает моего пользователя и моего друга и не отображает имя, результат для первого кода вашего ответа равен 1, и должно быть 3, потому что у меня на сервере 3 пользователя, включая бота, и второй код в вашем ответе, он отображает имя пользователя моего кода, а не отображает мое и моего друга, почему это происходит?
2. Похоже, вы не включили намерения для своего бота, прочитайте это руководство о том, как их включить: discordpy.readthedocs.io/en/latest/intents.html
3. Это не было включено, но я включил его, и даже если я пытаюсь отобразить имя пользователя, оно отображает только имя пользователя моего собственного бота, а не всех участников, как я могу это исправить?
4.
Вы также включили код и портал разработчиков? Вам нужно добавить client.intents = discord.Intents.all() при объявлении commands.Bot , а затем включить на портале разработчиков.
5. client = commands.Bot(intents = discord.Intents.all(), **kwargs)
Ответ №2:
как количество членов находится внутри объекта [ ] как я указывал в вопросе, я получил доступ к свойству этого объекта, а затем мне удалось получить все члены, это был код:
for guild in client.guilds: print(guild.member_count)
Ответ №3:
Ваш метод верен, а именно:
for guild in client.guilds: print(guild.member_count)
Но, как вы можете видеть здесь, в документах
Из-за ограничения разногласий для того, чтобы этот атрибут оставался актуальным и точным, он требует указания Intents.members.
Поэтому необходимо включить намерения участников в коде и включить привилегированные намерения на портале разработчика
intents = discord.Intents.default() intents.members = True #or intents = discord.Intents.all() client = commands.Bot(command_prefix=’!’, intents=intents)
Намерения участников используются для следующего: ссылка
Это соответствует следующим событиям:
- on_member_join()
- on_member_remove()
- on_member_update() (ник, роли)
- on_user_update()
- Клиент.get_all_members()
- Гильдия.кусок()
- Гильдия.fetch_members()
- Гильдия.get_member()
- Гильдия.члены
- Участник.роли
- Член.ник
- Участник.premium_since
- User.name
- Пользователь.аватар (User.avatar_url и User.avatar_url_as())
- Пользователь.дискриминатор
Источник: programbox.ru