Проверьте, есть ли у пользователя администратор — Discord.py

#python #discord.py

#python #discord.py

Вопрос:

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

Например, когда пользователь впервые пригласил бота на сервер, участники не должны иметь возможности использовать так называемую команду «разрешения». Однако участники с ролью модератора должны иметь к нему доступ и выполнять остальную часть команды.

Кто-нибудь сможет помочь с этим в моей команде?

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

1. Не могли бы вы подробнее объяснить. Трудно точно понять, что вы имеете в виду

2. Например, вы пригласили любого бота. Если вы являетесь участником, вы не можете использовать команду «разрешения» для изменения разрешений команды. Но администраторы сервера могут это использовать. Как популярные боты могут получить роль администратора сервера?

3. Вы хотите создать команду, которая не может быть использована участниками, у которых нет определенного разрешения?

4. Да, я этого хочу.

5. Используете ли вы discord.ext.commands.Bot ?

Ответ №1:

Все еще неясно, что вы хотите зарезервировать, кому вы хотите, чтобы команда была доступна, однако has_permissions декоратор позволяет вам устанавливать, какие разрешения пользователь может использовать для доступа к команде. Это можно установить в параметрах

Например, если вы просто хотите, чтобы только участник с правами администратора имел доступ к вашей команде, вы можете добавить @commands.has_permissions(administrator = True) после команды декоратор. Вот пример,

 @bot.command()
@commands.has_permissions(administrator = True)
async def permission(ctx):
    await ctx.send('You have administrator access...')
 

Более подробную информацию можно найти в документации Discord:
https://discordpy.readthedocs.io/en/latest/ext/commands/api.html

Редактировать:

Однако использование if инструкции внутри команды может быть выполнено с:

 if ctx.author.guild_permissions.administrator:
...