亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我想使用 Discord 角色作為命令的要求

我想使用 Discord 角色作為命令的要求

侃侃爾雅 2023-10-18 21:44:09
我正在用 Python 編寫一個 Discord 機器人,我想創建一個需要角色的命令。有沒有辦法在 if 語句中使用角色作為要求?
查看完整描述

4 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

你只需要做


@client.command()

@commands.has_role(role='Role name')

    async def command(ctx): 

是的,或者如果它不起作用,你需要添加@commands.has_role(role='Role name')上面的內容@client.command() ,如果你沒有得到它,你可以閱讀文檔


或者你也可以這樣做角色@commands.has_permission(kind of permission=True/False)意味著需要角色和權限意味著他們也需要權限但你需要有不和諧的角色權限否則它會發送它不知道哪種權限


查看完整回答
反對 回復 2023-10-18
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

您可以使用


@client.command()

@commands.has_permissions(**permission needed**=True)

這將只允許具有特定權限的人執行該命令(錯誤消息選項)。或者,如果您只想要具有某個角色的人員,您可以使用 if message.author.role.id == **role id**: 或 if ctx.message.author.role.id == **role id**:。這是一個示例代碼:


@client.event

async def on_message(message):


    link = ["https://"]

    for word in link:

        if message.content.count(word) > 0:

            if message.author.role.id == 706694479847096381:

                return

            else:

                print(f'{message.author}({message.author.id}) Sent an link')

                await message.delete()

           

此代碼允許機器人在發送鏈接時忽略具有該角色的人員。


查看完整回答
反對 回復 2023-10-18
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

我在最近創建的機器人中正是這樣做的,我將命令設置為 JSON 配置,其中包含語法、描述和允許的角色等數據。該機器人使用 DiscordJS,但我確信您可以對 Python 機器人使用相同的原理:

if (cmd.allowedRoles.includes('everyone') || message.member.roles.cache.some(role => cmd.allowedRoles.includes(role.name.toLowerCase())))



查看完整回答
反對 回復 2023-10-18
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

您可以使用 argparse 并創建一個名為 role 的必需參數。



查看完整回答
反對 回復 2023-10-18
  • 4 回答
  • 0 關注
  • 224 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號