为?members命令显示别名而不是用户名(discord.js)

时间:2020-02-12 03:07:20

标签: discord.js

这是我的代码

*************
Screen(HTS)
*************

Quote
=============

1101
------------------
.. raw:: html
    :file: _static/1101.html

1151
------------------
.. raw:: html
    :file: _static/1151.html

1152
------------------
.. raw:: html
    :file: _static/1152.html

1103
------------------
.. raw:: html
    :file: _static/1103.html

我试图让嵌入的人在服务器上显示他们的昵称,而不是他们不协调的用户名。我已经尝试了member.user.nickname,但是它不起作用。任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用displayName。如果成员在服务器上没有特殊昵称,则member.nickname将返回 undefined

最好先获得角色,然后再映射角色成员。

if (message.content.startsWith("?members")) {
        let roleName = message.content.split(" ").slice(1).join(" ");

        //getRole
        let targetRole = message.guild.roles.find(role => role.name.includes(roleName))
        if(!targetRole) return message.channel.send('No role fined')
        let membersWithRole = targetRole.members.map(member => member.displayName) // Embed has max length so you need slice this array to pages if membersWithRole.join("\n").length > 2048

        const embed = new Discord.RichEmbed({
            "title": `Members in ${roleName}`,
            "description": membersWithRole.join("\n"),
            "color": 0xFFFF

        });

        return message.channel.send(embed);
    }