【问题标题】:discord.js rank command for @user@user 的 discord.js 排名命令
【发布时间】:2020-09-26 02:18:19
【问题描述】:

我的 rank 命令运行良好,我一直在尝试将功能添加到 !rank @user。如您所见,我在那里有代码来获取提到的用户,所以它会显示提到的用户名和个人资料图片,但我的观点(因为它们是从 message.author 请求的)我只是不确定我应该如何从提到的用户的数据库。任何帮助或建议都会很棒,谢谢!

(我的数据库是 SQLite)

const member = message.mentions.members.first() || message.member || message.guild.members.cache.get(args[0])
    score = bot.getScore.get(message.author.id, message.guild.id);
    if (!score) {
      score = {
          id: `${message.guild.id}-${message.author.id}`,
          user: message.author.id,
          guild: message.guild.id,
          points: 0,
          level: 1,
      };
  }
    let curxp = score.points;
    let curlvl = score.level;
    let nxtLvlXp = curlvl * 300;
    let difference = nxtLvlXp - curxp;
    const embed = new Discord.RichEmbed()
      .setTitle("XP / LEVEL")
      .setDescription(member.user.tag)
      .setThumbnail(member.user.displayAvatarURL)
      .setColor(cyan)
      .addField('**' + "Level" + '**', curlvl, true)
      .addField('**' + "XP" + '**', curxp, true)
      .setFooter(`${difference} XP til next level up`, bot.user.displayAvatarURL);

    return message.channel.send({ embed });

【问题讨论】:

    标签: sqlite discord discord.js


    【解决方案1】:

    你几乎已经拥有它了

    为什么不使用message.author.id 作为第一个参数,为什么不直接使用提供最终成员的成员变量?

    您还应该在 message.member 之前添加 message.guild.members.cache.get(args[0]),因为除非在 DM 频道中,否则 message.member 将始终存在。

    const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member;
    score = bot.getScore.get(member.id, message.guild.id);
    

    【讨论】:

      猜你喜欢
      • 2020-11-22
      • 2021-11-04
      • 2021-03-12
      • 2021-08-15
      • 2021-03-31
      • 2020-12-04
      • 2021-06-01
      • 2021-03-29
      • 2022-01-27
      相关资源
      最近更新 更多