Python 使用命令-discord.py将角色分配给多个用户
我正在制作一个discord bot,我希望bot在特定的通道中运行命令。例如,Python 使用命令-discord.py将角色分配给多个用户,python,python-3.x,discord,discord.py,discord.py-rewrite,Python,Python 3.x,Discord,Discord.py,Discord.py Rewrite,我正在制作一个discord bot,我希望bot在特定的通道中运行命令。例如,y角色被赋予许多人。如何进行此操作?条件: 我希望bot在特定通道中运行命令 您需要一个条件来检查命令是否在正确的通道中 “y”角色被赋予x个人 您需要遍历成员列表 另一个标准是bot的最高角色高于它试图分配的任何角色 代码: 所以说了这么多,让我们编写一个命令来完成它,假设它不在单独的cog中: import asyncio from discord.ext import commands def
y
角色被赋予许多人。如何进行此操作?条件:
我希望bot在特定通道中运行命令
- 您需要一个条件来检查命令是否在正确的通道中
- 您需要遍历成员列表
代码: 所以说了这么多,让我们编写一个命令来完成它,假设它不在单独的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用户名
它将角色作为第一个参数(可以是名称、提及或ID)。将尝试将以下参数转换为成员
也可以随意添加您希望添加的任何错误处理。例如,可能未找到角色,或未提供任何成员,等等
参考资料:
- -这将检查每个参数,尝试将其转换为成员,直到无法再转换
- -是一个协同程序,因此需要等待
- -也是一个合作项目
- -将您的机器人分为不同的模块,以便于组织和更好地控制功能