添加到 Discord.JS 用户信息 post

Add On to Discord.JS Userinfo post

好的,这可能看起来像复制粘贴,但事实并非如此。我需要更多支持。我正在努力让我的机器人做更多的事情。我应该将它添加到第一个问题,但我认为它不会被查看。这是我要添加的内容。

我试过使用 .guildmember class 但它不起作用,我将 userMention 附加到 .guildmember class,如下所示: userMention.guildmember.joinedAtdisplayName。我修改代码时的大部分结果是来自机器人的 TypeErrorsReferenceErrors.

我确实用了别人的代码,我安装了 Moment,所以我可以 运行 用别人的代码,但它又报错了。

TypeError: Cannot read property 'filter' of undefined

我无法获取 Moment 代码。

var commando = require('discord.js-commando');
var discord = require('discord.js');

class aboutuser extends commando.Command 
{
    constructor(client) {
        super(client, {
            name: 'aboutuser',
            group: 'help',
            memberName: 'aboutuser',
            description: 'Lists information about a specific user.',
            aliases: ['au', 'aboutu', 'auser', 'user'],
        })
    }
async run(message, args){
    const userMention = message.mentions.users.first() || message.author;

    let userinfo = {};
    userinfo.bot = userMention.bot;
    userinfo.createdat = userMention.createdAt;
    userinfo.joinedat = userMention.message.guildmember.joinedat;
    userinfo.discrim = userMention.discriminator;
    userinfo.id = userMention.id;
    userinfo.tag = userMention.tag;
    userinfo.uname = userMention.username;
    userinfo.status = userMention.presence.status;
    userinfo.play = userMention.presence.game; 

    userinfo.avatar = userMention.avatarURL;

    const rolesOfTheMember = userMention.roles.filter(r => r.name !== '@everyone').map(role => role.name).join(', ')

    var myInfo = new discord.RichEmbed()
        .setAuthor(userinfo.uname, userinfo.avatar)
        .addField("Username",userinfo.uname, true)
        .addField("Client Tag",userinfo.tag, true)
        .addField("Created At",userinfo.createdat, true)
        .addField("Joined at:",userinfo.joinedat, true)
        .addField("Discriminator",userinfo.discrim, true)
        .addField("Client ID",userinfo.id, true)
        .addField("Bot?",userinfo.bot, true)
        .addField("Status",userinfo.status, true)
        .addField("Playing",userinfo.play, true)
        .addField("Roles",rolesOfTheMember, true)
        .setColor(0xf0e5da)
        .setFooter('s!aboutserver')
        .setTitle("About this user...")
        .setThumbnail(userinfo.avatar)


        message.channel.sendEmbed(myInfo);

}

}
module.exports = aboutuser;

预期: 一个列出代码中显示的所有内容以及项目符号的机器人。

实际: 仅显示类型和引用错误的机器人。就像

TypeError: Cannot read property 'guildmember' of undefined
TypeError: Cannot read property 'filter' of undefined
ReferenceError: guildmember is not defined
ReferenceError: user is not defined

我正在使用这些网站作为参考

https://discord.js.org/#/docs/main/stable/general/welcome

*特别是这一行!

.addField('Joined at:', `${moment.utc(user.joinedAt).format('dddd, MMMM Do YYYY, HH:mm:ss')}`, true)

https://www.youtube.com/watch?v=W2iI32FDYW8

尝试使用 userMention = message.mentions.members.first(); 我认为这是导致问题的原因

使用

var umen = message.mentions.members.first() || message.member;
var umen2 = message.mentions.users.first() || message.author;

"Booleans" 也有问题,它们不应该是 === "false",因为它们是布尔值,而不是字符串。执行 === false=== true