簡體   English   中英

我的 discord.py bot 有什么方法可以檢查用戶是否具有使用命令的特定權限?

[英]Is there any way for my discord.py bot to check check for whether a user has a certain permission to use a command?

例如,我的機器人有服務器設置,目前,任何可以發送消息的用戶都可以編輯設置。 如果沒有Manage Server權限的用戶嘗試編輯權限,我很樂意向Dank Memer Bot 發送的用戶發送類似的消息。 我四處搜索,似乎您只能看到自己的機器人具有哪些權限,但我不確定。 有沒有辦法讓我做到這一點? 謝謝。

顯然我只是做了

# check if someone has certain permissions
def hasPerms(member, perms):
  for role in reversed(member.roles):
    if not perms.is_subset(role.permissions):
        return False
  return True

它有效。

對於命令,

from discord.ext import commands

@commands.has_permissions(manage_server=True)

您可以將manage_server更改為您想要的任何權限。 用於此的Discord API

然后你可以做的是制作一個錯誤處理程序。 所以如果用戶沒有權限執行這個命令,它會發送一條消息。

@command.error
async def command_error(ctx, error):
    if isinstance(error, MissingPermissions):
        await ctx.send('You do not have permission to do this command!')

必須command更改為您希望Manage Server使用的任何命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM