Javascript 积分总是添加到第一人称
这是我正在处理的命令。Javascript 积分总是添加到第一人称,javascript,discord.js,Javascript,Discord.js,这是我正在处理的命令。 我的问题是当我把它用于 第一次,提到的用户得到一个点,它应该是怎样的。对于 示例:+loben@Tom123,汤姆得1分 如果我再次使用该命令并提及其他用户(例如, 卢克)卢克不明白重点,但汤姆明白。所以汤姆得了2分 没有 我不知道为什么…假设有3个用户: 大口塔 汤姆123 卢克 Daikota使用命令+loben@Tom123 会发生什么? 在这一行中,message.author.id是Daikota的id。为了简单起见,假设key的计算结果为“Daikota”。然
我的问题是当我把它用于 第一次,提到的用户得到一个点,它应该是怎样的。对于 示例:
+loben@Tom123
,汤姆得1分
如果我再次使用该命令并提及其他用户(例如,
卢克)卢克不明白重点,但汤姆明白。所以汤姆得了2分
没有
我不知道为什么…假设有3个用户:
+loben@Tom123
会发生什么?
在这一行中,message.author.id
是Daikota的id。为了简单起见,假设key
的计算结果为“Daikota”
。然后:
const key = `${message.guild.id}-${message.author.id}`;
根据,enmap。确保(key,defaultvalue)
确保该密钥存在于enmap中。如果它不存在,enmap。确保创建它并将其值设置为传递给方法的默认值。在我们的示例中,它是这样的:
client.points.ensure(key, {
user: message.mentions.users.first().id,
guild: message.guild.id,
points: 0,
level: 1,
lastSeen: new Date()
});
client.points.inc(key, "points");
{
"Daikota": {
user: "Tom123",
points: 0,
// etc
}
}
{
"Daikota": {
user: "Tom123",
points: 1,
// etc
}
}
然后使用client.points.inc(key,“points”)
确保它获得“Daikota”
的点数
,并将其增加1。执行此操作后,我们的地图如下所示:
client.points.ensure(key, {
user: message.mentions.users.first().id,
guild: message.guild.id,
points: 0,
level: 1,
lastSeen: new Date()
});
client.points.inc(key, "points");
{
"Daikota": {
user: "Tom123",
points: 0,
// etc
}
}
{
"Daikota": {
user: "Tom123",
points: 1,
// etc
}
}
下一步
Daikota使用命令+loben@Luke
同样,message.author.id
是Daikotaenmap。确保
将使用我们的“Daikota”
键,并查看它已经在我们的enmap中,因此它不会创建新的。然后在client.points.inc(key,“points”)代码>行,我们的电子地图可能如下所示:
client.points.ensure(key, {
user: message.mentions.users.first().id,
guild: message.guild.id,
points: 0,
level: 1,
lastSeen: new Date()
});
client.points.inc(key, "points");
{
"Daikota": {
user: "Tom123",
points: 0,
// etc
}
}
{
"Daikota": {
user: "Tom123",
points: 1,
// etc
}
}
这似乎就是你所描述的
解决方案
在您的情况下,使用提到的用户id而不是消息的作者id作为Enmap的键。否则如果(userUsed.has(message.author.id))返回,则在之后似乎不需要阻止代码>线路谢谢,现在我知道了^^