如何制作一个不和聊天机器人,根据他们输入的内容改变成员的昵称?Discord.py



所以,我已经花了一个星期的时间来尝试制作一个简单的bot,它可以做以下事情:当一个人加入我的服务器时,他们会自动获得一个角色,只允许他们看到一个频道。在那个频道,我的机器人会发送一条消息,询问他们在我玩的游戏中叫什么名字。这个人会回答,机器人会存储这个信息。然后,机器人会询问同一个人的游戏ID,然后机器人会将此人的昵称更改为"昵称| ID";自动地,然后给那个人一个角色,让他可以看到服务器。

intents = discord.Intents.all()
client = discord.Client(intents=intents)

@client.event
async def on_member_join(member):
channel = client.get_channel(1044016033461182545)
role = discord.utils.get(member.guild.roles, id=1044016102998540398)
await member.add_roles(role)
await channel.send(f"Bem Vindo ao {member.guild.name}, {member.mention}! Digite seu nome do Fusion: ")
@client.event
async def on_message(message):
nickname = message.content
channel = client.get_channel(1044016033461182545)
if message.author == client.user:
return
print(nickname)

client.run('BOTTOKEN')

因此,当成员加入时,他从角色变量中获得角色,然后他将被要求将他的名字放在聊天中,并且机器人将将该信息存储在昵称变量中。打印的使用是为了查看变量昵称是否得到用户输入的内容,并且它工作得很好。我的麻烦是让机器人问然后从人的ID和存储在另一个变量。我怎么才能做到呢?我对python很陌生,所以不习惯。

您不必询问该人的id。可以使用member参数自动获取用户ID。您可以查看文档,看到成员类有一个id属性。因此,要查找加入服务器的用户的ID,请使用member.id。您可以通过将member.id赋值给像

这样的变量来实现这一点。
var = member.id

希望对你有所帮助

最新更新