如何跟踪用户被提及的次数?

时间:2018-11-13 10:48:21

标签: discord discord.js

在我的机器人程序中,我有一个消息计数器,用于存储用户在服务器中发送消息的次数。
我试图计算用户在服务器中被提及的次数。有谁知道我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以使用message.mentions.members(或message.mentions.users)查看消息中的提及。您可以存储每个用户的提及数:每次提及他们时,您的计数就会增加。

var mention_count = {};

client.on('message', message => {
  for (let id of message.mentions.users.keyArray()) {
    if (!mention_count[id]) mention_count[id] = 1;
    else mention_count[id]++;
  }
});

请注意,mention_count每次重启时都会重置,因此请记住将其存储在文件或数据库中,以免丢失。

编辑:在下面您可以看到您的代码适用于提及:每次有提及要计数时,它都会存储在得分的level值中。

client.on('message', message => {
  if (!message.guild) return;
  for (let id of message.mentions.users.keyArray()) if (id != message.author.id) {
    let score = client.getScore.get(id, message.guild.id);
    if (!score) score = {
      id: `${message.guild.id}-${id}`,
      user: id,
      guild: message.guild.id,
      points: 0,
      level: 0
    };
    score.level++;
    client.setScore.run(score);
  }
});