Здравствуйте!
Windows 10, Python 3, Discord.py.
Пишу бота на Python с помощью библиотеке Discord.py.
При получении объекта пользователя, что бы получить возможность добавить ему роль (
Помогите пожалуйста. Как решить эту проблему? Может есть ещё варианты получения объекта пользователя?
Заранее спасибо!
Windows 10, Python 3, Discord.py.
Пишу бота на Python с помощью библиотеке Discord.py.
Код:
Ошибка:
Python:
import discord
import json
from discord import utils
class MyClient (discord.Client):
async def on_ready (self):
"""На подключение"""
print ("Бот подключился")
async def on_raw_reaction_add (self, payload):
"""На добавлении реакции на сообщение"""
roles = {"1️⃣": 802942461646209072, # ID ролей
"2️⃣": 802942499177627669,
"3️⃣": 802942602818617405
}
if payload.message_id == 805722455293427744: # Проверка на ID сообщения
channel = self.get_channel (payload.channel_id) # Получение объекта канала
message = await channel.fetch_message (payload.message_id)
member = utils.get (message.guild.members, id = payload.user_id) # Получение объекта пользователя (возвращает None)
print (member, payload.user_id)
emoji = str (payload.emoji)
role = utils.get (message.guild.roles, id = roles [emoji])
await member.add_roles (role)
intents = discord.Intents.default ()
intents.guilds = True
client = MyClient (intents = intents)
with open ("token.json") as file: # Токен бота
token = json.load (file)
client.run (token)
Python:
Ignoring exception in on_raw_reaction_add
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "main.py", line 41, in on_raw_reaction_add
await member.add_roles (role)
AttributeError: 'NoneType' object has no attribute 'add_roles'
При получении объекта пользователя, что бы получить возможность добавить ему роль (
member = utils.get (message.guild.members, id = payload.user_id)
) возвращает None
. Как я понял, utils.get ()
возвращает объект, в данном случае пользователя, у которого содержатся эти данные.Помогите пожалуйста. Как решить эту проблему? Может есть ещё варианты получения объекта пользователя?
Заранее спасибо!