Discord.js用户信息命令Boosted Guild On字段无增压仍显示日期问题
问题修复方案
核心错误原因
- 混淆了Discord.js的两个核心对象:
user是全局User对象,仅存储账号通用属性,没有服务器专属的增压时间、加入服务器时间属性- 服务器专属属性存放在
mentionedMember(GuildMember类型)中,需要从该对象获取对应字段
- 判断逻辑错误:未增压的用户
premiumSinceTimestamp值为null/undefined,不是0,原判断条件永远不生效,导致始终显示日期 - 「Joined Guild On」字段也存在逻辑错误:原代码硬编码了
message.member.joinedAt,只会显示命令触发者的加入时间,不是被查询用户的
修复代码
替换Embed配置中对应的三个字段即可:
{ name: "**Joined Discord On**", value: `${moment(user.createdAt).format("dddd, MMMM Do YYYY, h:mm A")}`, inline: true }, { name: "**Joined Guild On**", value: `${!mentionedMember.joinedAt ? `N/A` : `${moment.utc(mentionedMember.joinedAt).format("dddd, MMMM Do YYYY, h:mm A")}` }`, inline: true }, { name: '**Boosted Guild On**', value: `${!mentionedMember.premiumSinceTimestamp ? `N/A` : `${moment(mentionedMember.premiumSince).format("dddd, MMMM Do YYYY, h:mm A")}` }`, inline: true, },
内容的提问来源于stack exchange,提问作者Kash
相关产品推荐
相关产品推荐

