javascript - 平衡他人
问题描述
我基本上是在尝试创建一个平衡命令(使用 quick.db)来检查自己和其他人,假设 -bal (我的余额弹出)但是当我用 -bal @(user) ping 某人时也显示了我目前的余额,这是一张图片:
我也尝试了很多方法,但似乎对我不起作用:/
这是代码:
let bal =
db.fetch(`money_${message.guild.id}_${message.author.id}`) ||
db.fetch(`money_${message.guild.id}_${message.mentions.users.first()}`);
if (bal === null) bal = 0;
let user = message.mentions.users.first().username || message.author.username;
const embed = new Discord.MessageEmbed()
.setTitle('[ ' + user + "'s balance ]")
.setDescription(bal);
message.channel.send(embed);
解决方案
bal
声明变量时需要检查值的顺序。您基本上是在说,如果有 a message.author
thenbal
的价值将是他们的平衡。由于总是有消息作者,因此您永远不会检查提到的用户。因此,您需要更改顺序。
或者,您也可以像我在下面所做的那样简化它。您可以创建一个新user
变量,如果有提及的用户,则分配其值,如果没有,则分配作者。稍后,由于提到的用户和作者都有一个id
and username
,您可以简单地使用user.id
and user.username
。
您还可以通过在 . 之后if (bal === null) bal = 0
简单地使用逻辑 OR ( ||
)来简化该部分db.fetch
。
let user = message.mentions.users.first() || message.author;
let balance = db.fetch(`money_${message.guild.id}_${user.id}`) || 0;
const embed = new Discord.MessageEmbed()
.setTitle('[ ' + user.username + "'s balance ]")
.setDescription(balance);
message.channel.send(embed);
推荐阅读
- python - 设置一列的值,等于不为零的列
- excel - 使用 VBA 从网页复制特定文本
- mysql - 无法连接两个表(一对多):错误表不包含主键或候选键
- ajax - 如何使用带有primefaces和Ajax的JSF从单击菜单列表中打开特定的tabView
- postgresql - 列引用不明确但它实际上是一个函数参数
- java - Java 解析 XML 并映射到对象
- css - CSS:是否可以从流中删除 Grid 元素的子元素?
- oauth-2.0 - oauth2 google 的刷新令牌中的 IO 异常
- google-drive-api - Google Colab:我可以缓存 Google Drive 身份验证吗?
- spring-boot - 如何添加自定义属性spring数据弹性搜索请求