Discord Py - 如何使用文本命令向公会的所有成员添加多个角色
Posted
技术标签:
【中文标题】Discord Py - 如何使用文本命令向公会的所有成员添加多个角色【英文标题】:Discord Py - How to add multiple roles to all members on guild with text command 【发布时间】:2021-02-01 22:13:27 【问题描述】:如何为所有用户添加多个角色?我编码的内容没有产生错误,但它不起作用。我正在尝试遍历 discord 公会的所有成员,然后将指定的角色添加到每个成员。
member = message.author
cat1 = discord.utils.get(member.guild.roles, id=767162794125557760)
cat2 = discord.utils.get(member.guild.roles, id=767159884314574888)
cat3 = discord.utils.get(member.guild.roles, id=767160508637642793)
cat4 = discord.utils.get(member.guild.roles, id=767159426565013504)
cat5 = discord.utils.get(member.guild.roles, id=767159149040500807)
if message.content.startswith('!addroles'):
if message.author.id == 80760379319259136:
for person in message.guild.members:
await person.add_roles(cat1, cat2, cat3, cat4, cat5)
print("done.")
【问题讨论】:
【参考方案1】:代码对我来说非常好:
@client.command()
async def addroles(message):
member = message.author
cat1 = discord.utils.get(member.guild.roles, id=767658943442583573)
cat2 = discord.utils.get(member.guild.roles, id=767658997607170069)
for person in message.guild.members:
await person.remove_roles(cat1, cat2)
print(person)
print("done.")
尝试在 for 循环中打印出每个人。也许您的 if 陈述被证明是错误的,例如提供了错误的作者 ID,因此不会执行 for 循环。
也尝试使用命令而不是检查消息内容:
client = commands.Bot(command_prefix="!")
@client.command()
async def addroles(message):
pass
【讨论】:
以上是关于Discord Py - 如何使用文本命令向公会的所有成员添加多个角色的主要内容,如果未能解决你的问题,请参考以下文章
我想创建一个黑名单命令来阻止来自特定公会 discord.py 的邀请