我正在尝试做一个系统,它从服务器上随机接收一个在线成员,它没有mods中的角色,它从颜色上随机地接受一个角色,并将它交给随机成员。但是我不断地发现这个错误:
RuntimeWarning:人们从未期待过coroutine 'Member.add_roles‘
Member.add_roles(随机用户,随机颜色) RuntimeWarning:启用tracemalloc以获得对象分配跟踪
@client.command(name="sortearcolor")
@commands.has_any_role("DUEÑOS", "CO-OWNER", "Admin", "ADMIN", "Dev Discord+", "MOD", "MOD+", "Trial MOD", "Dev Discord")
async def _sorteocolor(ctx):
online = []
colors = ["Negro (Personalizado)", "Rosa (Ultra)", "Rosa-1 (Personalizado)",
"Rosa-2 (Personalizado)", "Violeta (Ultra)", "Violeta (Personalizado)",
"Morado (Personalizado)", "Celeste(Perso.)", "Violeta Brillante (Personalizado)",
"Aqua (Personalizado)", "Amarillo-1 (Personalizado)", "Amarillo (Personalizado)",
"Celesroide (Personalizado)", "Celeste (Personalizado)",
"Azul-1 (Personalizado)", "Azul (Personalizado)", "Azul (Generico)",
"Morado (Personalizado)", "Rosa pastel"]
mods = ["Admin", "ADMIN", "Dev Discord+", "MOD", "MOD+", "Trial MOD", "Dev Discord"]
for member in client.get_all_members():
if str(member.status) == "online":
for roles in ctx.guild.roles:
if roles.name in mods:
pass
else:
online.append(str(member))
randomuser = random.choice(online)
randomcolors = random.choice(colors)
member.add_roles(randomuser, randomcolors)
await ctx.send(f"User: **{randomuser}**, Role: **{randomcolors}**")它发送消息用户:用户,角色:角色,但不是赋予用户角色,我猜这与我得到的错误消息有关。而且,它仍然选择在mods中扮演角色的成员,但不确定原因。
发布于 2020-06-16 18:59:52
在discord.py中,您必须在执行“操作”命令之前使用await。就像您在向通道发送消息时使用了await一样,您也必须使用await添加角色。试着做,await member.add_roles(randomuser, randomcolors)
https://stackoverflow.com/questions/62415565
复制相似问题