【问题标题】:Assign a role to multiple users with a command - discord.py使用命令为多个用户分配角色 - discord.py
【发布时间】:2021-04-08 08:48:48
【问题描述】:

我正在制作一个不和谐机器人,我希望该机器人在特定频道中运行命令。例如,y 角色分配给了许多人。我该怎么做?

【问题讨论】:

    标签: python python-3.x discord discord.py discord.py-rewrite


    【解决方案1】:

    条件:

    我希望机器人在特定频道中运行命令

    • 您需要一个条件来检查命令是否在正确的通道中。

    “y”角色分配给 x 人

    • 您需要遍历成员列表。

    对此的另一个标准是机器人的最高角色高于它尝试分配的任何角色。


    代码:

    说了这么多,让我们编写一个命令来执行它,假设这不会在其单独的 cog 中:

    import asyncio
    
    from discord.ext import commands
    
    
    def is_correct_channel(ctx):
        return ctx.channel.id == 112233445566778899
    
    
    @commands.check(is_correct_channel)
    @bot.command()
    async def giverole(ctx, role: discord.Role, members: commands.Greedy[discord.Member]):
        for m in members:
            await m.add_roles(role)
            await asyncio.sleep(1)  # You don't want to get ratelimited!
        await ctx.send("Done!")
    

    语法:

    !giverole rolename @user#1234 998877665544332211 username 它将角色作为第一个参数(可以是名称、提及或 ID)。将尝试将以下参数转换为成员。

    您也可以随意添加您希望添加的任何错误处理。例如,可能没有找到角色,或者没有给定成员等。


    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-02
      • 2022-01-19
      • 2020-10-16
      • 1970-01-01
      • 2021-07-06
      • 2021-02-07
      • 2021-05-22
      • 2010-10-09
      相关资源
      最近更新 更多