寻找一种按位置查找何时加入服务器的方法。
例如:如果我是服务器的所有者,因为我先加入,所以我将是1;然后,如果我是在所有者之后加入的,我将是2;如果我在20个人加入之后的加入,我将是21,依此类推。 />
有谁知道在Node.Js中解决这个问题的方法吗?
答案 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可以让您做到这一点,最好的办法是运行一个机器人来跟踪谁加入/离开并自行创建该结构。