Проверка, разрешено ли боту отправлять и читать сообщения в канале discord.py

#python #python-3.x #discord #discord.py #discord.py-rewrite

#python #python-3.x #Discord #discord.py

Вопрос:

Как я могу проверить, разрешено ли моему боту отправлять и читать сообщения в определенном канале? Мой код прямо сейчас:

 channel = client.get_channel('''channel id''')
print(channel.permissions_for(client.user))
  

Но результирующая ошибка находится в abc.py часть discord, и в ней говорится:

 print(channel.permissions_for(client.user))
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/channel.py", line 146, in permissions_for
    base = super().permissions_for(member)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/abc.py", line 486, in permissions_for
    roles = member._roles
AttributeError: 'ClientUser' object has no attribute '_roles'
  

Несмотря на то, что у бота есть роль «боты». Любой ввод будет высоко оценен. Спасибо!

Ответ №1:

Я рекомендую вам полностью и четко прочитать документацию [has_permission] и [permission_property] .
Он ответит на ваши запросы!

Комментарии:

1. Спасибо за ресурсы! Дело в том, что я пытаюсь создать прямую команду для моего бота, в которой пользователи могут указать боту направлять свои будущие сообщения на определенный канал. Поэтому мне пришлось бы проверять разрешения ботов для определенного канала в команде, и единственными проверками, которые я смог найти, были декораторы команд, которые не указывают конкретный канал. Существуют ли какие-либо функции, которые возвращают разрешения ботов в текстовом канале? Спасибо!