我几天来一直在尝试解决这个问题,但无法解决。问题是我的用户信息中的“增强公会”部分显示为日期,即使对于那些没有增强服务器的人也是如此。请帮忙。
const Discord = require('discord.js');
const moment = require('moment');
const { color } = require("../../config.json");
const { verifiedBotDev } = require("../../emojis.json");
const { bugHunter } = require("../../emojis.json");
const { bugHunterPlus } = require("../../emojis.json");
const { discordPartner } = require("../../emojis.json");
const { discordStaff } = require("../../emojis.json");
const { hypeSquad } = require("../../emojis.json");
const { hypeSquadBravery } = require("../../emojis.json");
const { hypeSquadBril } = require("../../emojis.json");
const { hypeSquadBal } = require("../../emojis.json");
const { verifiedBot } = require("../../emojis.json");
const { earlySupporter } = require("../../emojis.json");
const { discordnitro } = require("../../emojis.json");
const flags = {
DISCORD_EMPLOYEE: `${discordStaff}`,
DISCORD_PARTNER: `${discordPartner}`,
BUGHUNTER_LEVEL_1: `${bugHunter}`,
BUGHUNTER_LEVEL_2: `${bugHunterPlus}`,
HYPESQUAD_EVENTS: `${hypeSquad}`,
HOUSE_BRAVERY: `${hypeSquadBravery}`,
HOUSE_BRILLIANCE: `${hypeSquadBril}`,
HOUSE_BALANCE: `${hypeSquadBal}`,
EARLY_SUPPORTER: `${earlySupporter}`,
VERIFIED_BOT: `${verifiedBot}`,
VERIFIED_DEVELOPER: `${verifiedBotDev}`,
Discord_Nitro : `${discordnitro}`
};
module.exports = {
name: "uitest",
aliases: ["uit", "uinfo", "info"],
run: async (client, message, args) => {
let mentionedMember = await message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(r => r.user.username.toLowerCase() === args.join(' ').toLocaleLowerCase()) || message.guild.members.cache.find(r => r.displayName.toLowerCase() === args.join(' ').toLocaleLowerCase()) || args[0] || message.member;
const user = await client.users.fetch(client.users.resolveID(mentionedMember)).catch(() => null);
if (!user) user = message.author;
const userFlags = user.flags.toArray();
let nickname = user.nickname
if (nickname) {
nickname = `∙ ${user.nickname}`;
} else {
nickname = ''
}
let flags2 = user.flags2
if (flags) {
flags2 = `∙ ${userFlags.length ? userFlags.map(flag => flags[flag]).join(' ') : ' '}`;
} else {
flags2 = ''
}
let bot;
if (user.bot === true) {
bot = "Discord Bot";
} else {
bot = "N/A";
}
const userPos = message.guild.members.cache
.sort((a, b) => a.joinedTimestamp - b.joinedTimestamp)
.array();
const position = new Promise((fui) => {
for (let i = 1; i < userPos.length + 1; i++) {
if (userPos[i - 1].id === user.id) fui(i);
}
});
const activities = [];
let customStatus;
for (const activity of user.presence.activities.values()) {
switch (activity.type) {
case 'LISTENING':
if (user.bot) activities.push(`Listening to **${activity.name}**`);
else activities.push(`Listening to [**${activity.details}**](https://open.spotify.com//) by **${activity.state}**`);
break;
case 'CUSTOM_STATUS':
customStatus = activity.state;
break;
}
}
const embed = new Discord.MessageEmbed()
.setColor(mentionedMember.displayHexColor || color)
.setThumbnail(user.displayAvatarURL({ format: "png", dynamic: true, size: 2048 }))
.setAuthor(message.author.username, message.author.avatarURL({
dynamic: true
}))
.setTitle(`${user.tag} ${nickname} ${flags2}`)
.setDescription(`${activities.join('\n')}\n\`\`${user.id}\`\` ∙ Join position:`)
.setFooter(`${bot}`)
.setTimestamp()
.addFields(
{
name: "**Joined Discord On**",
value: `${moment(user.createdAt).format("dddd, MMMM Do YYYY, h:mm A")}`,
inline: true
},
{
name: "**Joined Guild On**",
value: `${user.joinedAt === 0
? `N/A`
: `${moment.utc(message.member.joinedAt).format("dddd, MMMM Do YYYY, h:mm A")}`
}`,
inline: true
},
{
name: '**Boosted Guild On**',
value: `${user.premiumSinceTimestamp === 0
? `N/A`
: `${moment(user.premiumSince).format("dddd, MMMM Do YYYY, h:mm A")}`
}`,
inline: true,
},
{
name: `**Role List [${mentionedMember.roles.size || ""}]**`,
value: `${mentionedMember.roles.cache
.filter(r => r.id !== message.guild.id).map(roles => `<@&${roles.id}>`)
.join(", ") || "N/A"}`,
inline: true
})
message.channel.send(embed)
}
}
premiumSinceTimestamp
与
null
不同,则null
返回 0
。
当您检查是否
user.premiumSinceTimestamp === 0
时,它总是返回false
,因为它要么是时间戳,要么是null
。你只需要检查 premiumSinceTimestamp
的值是否为真,如下所示:
{
name: '**Boosted Guild On**',
value: user.premiumSinceTimestamp
? moment(user.premiumSince).format('dddd, MMMM Do YYYY, h:mm A')
: 'N/A',
inline: true,
};
您当前执行了以下操作:
{
name: '**Boosted Guild On**',
value: `${user.premiumSinceTimestamp === 0 ? `N/A` : `${moment(user.premiumSince).format("dddd, MMMM Do YYYY, h:mm A")}`
}`,
inline: true,
},
语法是:
<condition> ? <if condition is true> : <if condition is false>
您以相反的方式使用了该功能,您只需更改
N/A
和 ${moment(user.....
的顺序