@Cog.listener()
async def on_member_update(self, before, after):
n = before.nick
if n:
if n.lower().count("★") <= 0:
await after.edit(nick="NICKNAME")
如果用户尝试在没有星号的情况下更改昵称,则上面的代码会将用户昵称更改为“NICKNAME”。但我想让机器人自动更新他们的用户名,并将其更改为星形符号昵称,而无需用户自己手动完成,如果他们还没有在用户名中使用它的话。
答案 0 :(得分:0)
在他们加入服务器后查看要分配的事件 on_member_join。对于现有成员,您可以定期迭代 guild.members 并在必要时调整所有成员。
答案 1 :(得分:0)
您可以使用 on_member_join
事件并在有人加入公会时更改昵称
async def on_member_join(member):
await member.edit(nick="NICKNAME")
注意:当有人加入公会时,这会起作用,但它不会改变已经在公会中的用户的昵称,您可以为此创建一个简单的命令< /em>
async def whatever(ctx):
for member in ctx.guild.members:
if not "★" in member.nick: # Or whatever character
await member.edit(nick="NICKNAME")