@user 的 discord.js 排名命令
Posted
技术标签:
【中文标题】@user 的 discord.js 排名命令【英文标题】:discord.js rank command for @user 【发布时间】: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 );
【问题讨论】:
【参考方案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);
【讨论】:
以上是关于@user 的 discord.js 排名命令的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js 机器人的 Mass Role Assigner 命令