У меня есть код, который может дать кому-то роль:
Это должно делать 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’
Advertisement
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