【问题标题】:How to make a discord bot that changes members nicknames based on what they type? Discord.py如何制作一个不和谐的机器人,根据他们输入的内容更改成员的昵称?不和谐.py
【发布时间】:2022-11-22 00:11:24
【问题描述】:

所以,我已经被困了大约一个星期,试图制作一个简单的机器人来执行以下操作:当一个人加入我的服务器时,他们会自动获得一个角色,让他们只能看到一个频道。在那个频道上,我的机器人会发送一条消息,询问他们在我玩的游戏中的名字是什么。该人会回答,机器人会存储该信息。然后,bot 会询问同一个人的游戏 ID,然后 bot 会自动将此人的昵称更改为“NickName | 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 很陌生,所以我不习惯。

【问题讨论】:

  • discord.py 对初学者来说并不是很友好,在尝试制作机器人之前,您可能应该更熟悉 Python。

标签: discord.py


【解决方案1】:

您不必向此人询问他们的身份证件。您可以使用member参数来自动获取用户的ID。您可以查看文档并看到 member 类具有 id 属性。因此,要查找加入服务器的用户的 ID,请使用 member.id。您可以通过将 member.id 分配给类似的变量来将其实现到您的代码中

var = member.id

我希望这有帮助

【讨论】:

    猜你喜欢
    • 2021-03-10
    • 1970-01-01
    • 2021-08-01
    • 2021-05-14
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多