【问题标题】:Add On to Discord.JS Userinfo post添加到 Discord.JS 用户信息帖子
【发布时间】:2019-08-03 17:58:16
【问题描述】:

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

  • 说明用户加入公会的时间和日期
  • 在 userinfo.tag 函数中标记用户
  • 列出用户的昵称

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

我确实使用了其他人的代码,并且我安装了 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

How to show roles of user discord.js / userinfo command *特别是这一行!

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

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

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    使用

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

    “布尔值”也有问题,那些不应该是=== "false",因为它们是布尔值,而不是字符串。做=== false=== true

    【讨论】:

      【解决方案2】:

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

      【讨论】:

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