您如何在服务器中找到您的加入位置

时间:2019-01-23 16:28:30

标签: node.js discord.js

寻找一种按位置查找何时加入服务器的方法。
例如:如果我是服务器的所有者,因为我先加入,所以我将是1;然后,如果我是在所有者之后加入的,我将是2;如果我在20个人加入之后的加入,我将是21,依此类推。 /> 有谁知道在Node.Js中解决这个问题的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用GuildMember.joinedAt属性:它将返回您加入服务器的日期。
以下功能可以为您提供帮助:

function getJoinRank(ID, guild) { // Call it with the ID of the user and the guild
  if (!guild.member(ID)) return; // It will return undefined if the ID is not valid

  let arr = guild.members.array(); // Create an array with every member
  arr.sort((a, b) => a.joinedAt - b.joinedAt); // Sort them by join date

  for (let index = 0; i < arr.length; i++) { // Loop though every element
    if (arr[index].id == ID) return index; // When you find the user, return it's position
  }
}

如果更适合您,还可以使其返回数组。您还可以直接对成员集合本身进行排序,但是请记住,您每次都必须对其进行排序(客户端可以对其进行更新):

guild.members.sort((a, b) => a.joinedAt - b.joinedAt);

答案 1 :(得分:0)

我不认为有什么API可以让您做到这一点,最好的办法是运行一个机器人来跟踪谁加入/离开并自行创建该结构。