Проверка на роль discord py

У меня есть код, который может дать кому-то роль:

Это должно делать await client.say() если пользователь имеет правильный ранг. Если они этого не делают, то возникает сообщение об ошибке.

python python-3.x discord discord.py

2 ответа

Вы можете использовать проверку commands.has_role чтобы определить, имеет ли лицо, вызывающее команду, определенную роль:

Когда кто-то без роли пытается вызвать ее, возникает ошибка commands.CheckFailure . Затем вы можете обработать эту ошибку, если хотите, чтобы бот что-то сказал:

0 Tristo [2019-01-23 15:09:00]

Вы можете использовать discord.Member.roles, чтобы сделать что-то вроде

Источник: qarchive.ru

How to check if member has role discord.py

I want to make a “warn” command and I want to check if member has role. My code:

БОТ для Discord [ 9 ] | Авто выдача роли


async def пред(ctx, member: discord.Member = None, *, reason=None): р.Персонал=discord.utils.find(lambda r: r.id == ‘701381413215141948’, ctx.message.server.roles) if р.Персонал not in member.roles: print(«You don’t have role») return else: print(‘Success’)
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: Att ributeError: ‘Message’ object has no attribute ‘server’

Answer

The issue as InsertChessyLine it should be ctx.guild.roles instead of ctx.message.server.roles

async def пред(ctx, member: discord.Member = None, *, reason=None): р.Персонал=discord.utils.find(lambda r: r.id == ‘701381413215141948’, ctx.guild.roles) if р.Персонал not in member.roles: print(«You don’t have role») return else: print(‘Success’)

Источник: python.tutorialink.com

Проверьте, есть ли у пользователя роль Discord Python

Здравствуйте, я хочу создать бота Discord, который сначала проверяет, есть ли у участника разрешение на выполнение команды. Пример: с помощью! Create вы можете создавать случайные ключи, но только роль Owner может использовать! Create, как я могу это сделать?

Еще по теме:  Почему в дискорде работает микро а в КС:ГО нет

user13605431 07 июн ’20 в 23:52 2020-06-07 23:52
2020-06-07 23:52

2 ответа

Если вы используете discord.py, вы можете проверить их ссылку, в которой указано, что хук on_message() содержит объект Message, имеющий author атрибут.

Что author является членом и может сравниваться с атрибутом members из ролей объекта.

Я не эксперт в этой библиотеке, но быстрое чтение документации показало, что это простая задача

user2447385 08 июн ’20 в 00:02 2020-06-08 00:02
2020-06-08 00:02

discord.ext.commands.has_role(элемент)

Добавляется check(), который проверяет, имеет ли член, вызывающий команду, роль, указанную через указанное имя или идентификатор. Если указана строка, необходимо указать точное имя роли, включая заглавные буквы и написание.

Если указано целое число, необходимо указать точный идентификатор снежинки для роли.

РАЗНОЦВЕТНАЯ РОЛЬ НА ПИТОНЕ/PYTHON/DISCORD.PY

Если сообщение вызывается в контексте личного сообщения, проверка вернет False.

Эта проверка вызывает одно из двух особых исключений: MissingRole, если у пользователя отсутствует роль, или NoPrivateMessage, если она используется в личном сообщении. Оба наследуются от CheckFailure.

Изменено в версии 1.1: Поднять MissingRole или NoPrivateMessage вместо универсального элемента CheckFailure Parameters (Union[int, str]) — имя или идентификатор роли, которую нужно проверить.

Источник: stackru.com

Рейтинг
( Пока оценок нет )
Загрузка ...