Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 积分总是添加到第一人称_Javascript_Discord.js - Fatal编程技术网

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个用户:

  • 大口塔
  • 汤姆123
  • 卢克
  • Daikota使用命令
    +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
    是Daikota
    enmap。确保
    将使用我们的
    “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))返回,则在
    之后似乎不需要阻止线路谢谢,现在我知道了^^