Как выдать роль в дискорде discord py

Главная — Вопросы по программированию — Как я могу сделать так, чтобы только определенная роль могла использовать команду с discord.py ?

Как я могу сделать так, чтобы только определенная роль могла использовать команду с discord.py ?

  • Post author: admin
  • Запись опубликована: 1 ноября, 2022
  • Post category: Вопросы по программированию

#discord.py-rewrite

#discord.py-переписать

Вопрос:

Я пытаюсь создать команду, которая работает только с определенной ролью. Я не уверен на 100%, как это сделать, и я не могу найти решение где-либо еще. Мой код останавливается, потому что я еще не очень хорошо знаком с кодированием, но вот оно:

Отсюда я полностью потерян и понятия не имею, что делать.

Ответ №1:

Самый эффективный способ сделать так, чтобы команда могла использоваться только с определенной ролью, — это .has_role() декоратор. Вы можете поместить туда строку с именем роли (с учетом регистра) или идентификатором роли (рекомендуется), более подробную информацию можно найти в документации Вот пример:

КУРС ПО DISNAKE 6 ЧАСТЬ | СОЗДАНИЕ ДИСКОРД БОТА НА DISNAKE | ВЫДАЧА РОЛИ ПО НАЖАТИИ НА КНОПКУ

Если вы хотите сделать так, чтобы пользователь мог использовать эту команду только тогда, когда у него есть какая-либо роль, тогда .has_any_role() это был бы правильный путь, он также принимает строки или целые числа. Вы можете найти более подробную информацию об этом здесь. Вот краткий пример того, как это будет работать:

1. Спасибо за помощь! Еще одна вещь, как я могу создать сообщение об ошибке, если у них нет роли?

Ответ №2:

Обычно, когда кто-то пытается выполнить такую команду с .has_role помощью декоратора, discord.ext.командует.Возникает пропущенная роль, поэтому обработка ее будет выглядеть примерно так :

Еще по теме:  Как получить модератора дискорд

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

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

Как предоставить роль администратора, discord.py python

У меня это пока есть, но я не знаю, как добавить к нему разные способности.

Ignoring exception in on_message Traceback (most recent call last): File «C:Program FilesPython36libsite-packagesdiscordclient.py», line 307, in _run_event yield from getattr(self, event)(*args, **kwargs) File «C:/Users/Rasmus/Python/discordbot/botnoggi2.py», line 145, in on_message await client.add_roles(member, role) File «C:Program FilesPython36libsite-packagesdiscordclient.py», line 2915, in add_roles new_roles = utils._unique(role.id for role in itertools.chain(member.roles, roles)) AttributeError: module ‘discord.member’ has no attribute ‘roles’

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

КУРС ПО DISNAKE 2 Часть | СОЗДАНИЕ ДИСКОРД БОТА НА DISNAKE | РОЛИ

Discord.py, how to issue a role when using the command?

Before adding the ability to issue roles, make sure that:

  1. The bot has the right to «Manage roles» .
  2. The role of the bot in the list should be higher than the roles that it can issue.

Code:

async def on_message(self, message): if message.content == ‘pay’: # здесь ваш код, включительно до выдачи роли while True: if api.check(comment): # Проверяем статус await message.channel.send(«Платёж получен!») author = message.author # получаем автора сообщения guild = self.get_guild(id) # получаем объект сервера* role = guild.get_role(id) # получаем объект роли* # как получить id читайте ниже await author.add_roles(role) # выдаем автору роль await message.channel.send(f», роль выдана!»)

This is just in case you are testing the bot on the same server. If you plan to connect it to several servers, where you may not know the id, you will first need to programmatically get the server id, then a list all his roles and choose the right role already from them. Please read the documentation, there is absolutely everything you need to know:)

Еще по теме:  Как обойти бан на дискорд сервере

To get the channel id, you need to enable the «Developer mode» item in the discord settings, on the «Appearance» tab. After that, by right-clicking on any object, at the very bottom you will have the «Copy ID» button. This way you can get the IDs of users, channels, servers, etc

Источник: over.wiki

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