簡體   English   中英

獲取具有特定角色 discord bot 的所有成員的列表

[英]get list of all members with specific role discord bot

我希望機器人向所有成員發送名為 weed 的角色,但它只發送機器人名稱

我的代碼:

@commands.command(pass_context=True)
    @commands.has_permissions(manage_messages=True)
    async def mom(self,ctx, *args):
        server = ctx.message.guild
        role_name = (' '.join(args))
        role_id = server.roles[0]
        for role in server.roles:
            if role_name == role.name:
                role_id = role
                break
        else:
            await ctx.send("Role doesn't exist")
            return
        for member in server.members:
            if role_id in member.roles:
                await ctx.send(f"{member.display_name} - {member.id}")

您可以簡單地使用role.members

@commands.command()            # ↓ This will make sure that the argument passed is a discord.Role object
async def mom(self, ctx, role: discord.Role):
    members = role.members
    for member in members:
        await ctx.send(f'{member.display_name} - {member.id}')

參考:

我相信有一個叫做role.members東西,它返回所有具有“角色”角色的成員。 以下是代碼示例:

@commands.command(pass_context=True)
@commands.has_permissions(manage_messages=True)
async def mom(self,ctx, *args):
    server = ctx.message.guild
    role_name = (' '.join(args))
    role_id = server.roles[0]
    for role in server.roles:
        if role_name == role.name:
            role_id = role
            break
        else:
            await ctx.send("Role doesn't exist")
            return
    for member in role.members:
        await ctx.send(f"{member.display_name} - {member.id}")

嘗試用此命令替換您的命令。

暫無
暫無

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

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