我的“Boosted Guild On”日期错误

问题描述 投票:0回答:2

我几天来一直在尝试解决这个问题,但无法解决。问题是我的用户信息中的“增强公会”部分显示为日期,即使对于那些没有增强服务器的人也是如此。请帮忙。

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)
  }
}
javascript discord discord.js
2个回答
1
投票
如果成员从未提升过公会并且

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,
  };

-1
投票

您当前执行了以下操作:

        {
          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.....

的顺序
© www.soinside.com 2019 - 2024. All rights reserved.