discord.js开发用户信息命令时用户加入Discord时间显示异常求助
问题原因&修复方案
- 错误1:属性名拼写错误,Discord.js 中成员加入服务器的时间属性为驼峰命名
joinedAt,你写的joinedat属于拼写错误,会导致moment接收到undefined参数,默认返回当前时间。 - 错误2:
message.author是Discord全局User对象,不包含单服务器相关的加入时间属性,joinedAt是服务器成员GuildMember对象的属性,需要从message.member上读取。
修复后的代码如下:
case 'minfo': const moment = require('moment') const membed = new Discord.MessageEmbed() .setColor('RANDOM') .setThumbnail(message.member.displayAvatarURL()) .setTimestamp() .addFields( {name: 'User Name:', value: `${message.author}`}, {name: 'User ID:', value: `${message.author.id}`}, {name: 'Joined at', value: `${moment(message.member.joinedAt).format('MMMM Do YYYY, h:mm:ss a')}`} ) message.channel.send({embeds: [membed]})
如果你需要显示用户注册Discord平台的时间,替换为
moment(message.author.createdAt)即可。
内容的提问来源于stack exchange,提问作者I need Help
相关产品推荐
相关产品推荐

