【问题标题】:discord.js v12 Userinfo command works when user isn't mentioned or when user id is givendiscord.js v12 Userinfo 命令在未提及用户或给出用户 ID 时有效
【发布时间】:2021-01-09 06:57:40
【问题描述】:

我做了一个 userinfo 命令,用于提及用户。代码如下:

client.on('message', async message => {
    if (message.content.startsWith('+ui')) {
        const args = message.content.slice(4).trim().split(/ +/g);
        const member = message.mentions.members.first();

        const embed = new MessageEmbed()
            .setTitle(`${member.displayName}'s Information`)
            .setThumbnail(member.user.displayAvatarURL({
                dynamic: true
            }))
            .addField('User', member, true)
            .addField('Discriminator', `\`#${member.user.discriminator}\``, true)
            .addField('ID', `\`${member.id}\``, true)
            .addField('Status', statuses[member.presence.status], true)
            .addField('Bot', `\`${member.user.bot}\``, true)
            .addField('Color Role', member.roles.color || '`None`', true)
            .addField('Highest Role', member.roles.highest, true)
            .addField('Joined server on', `\`${moment(member.joinedAt).format('MMM DD YYYY')}\``, true)
            .addField('Joined Discord on', `\`${moment(member.user.createdAt).format('MMM DD YYYY')}\``, true)
            .setFooter(message.member.displayName, message.author.displayAvatarURL({
                dynamic: true
            }))
            .setTimestamp()
            .setColor(member.displayHexColor);
        if (activities.length > 0) embed.setDescription(activities.join('\n'));
        if (customStatus) embed.spliceFields(0, 0, {
            name: 'Custom Status',
            value: customStatus
        });
        if (userFlags.length > 0) embed.addField('Badges', userFlags.map(flag => flags[flag]).join('\n'));
        message.channel.send(embed);
    }
});

但是,这仅在发送的消息为+ui @User 时有效。但是,如果我想要自己的用户信息,我需要在我提到自己的地方使用 +ui @mention

如何让机器人在没有提及时发送消息作者的输出,如果给出用户的 id 而不是提及,则如何让机器人发送用户信息。

对于问题引起的任何误解,我们深表歉意。提前致谢

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    message.mentions.members.first() 给你未定义时,你可以添加一个后备值。

    const member = message.mentions.members.first() || message.member
    

    【讨论】:

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