node.js - 如何找到您在服务器中的加入位置

标签 node.js discord.js

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

最佳答案

您可以使用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 i = 0; i < arr.length; i++) { // Loop though every element
      if (arr[i].id == ID) return i; // When you find the user, return it's position
    }
}

如果对您来说更好的话,您也可以让它返回数组。您还可以直接对成员集合本身进行排序,但请记住,您每次都必须对其进行排序(客户端可以更新它):

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

关于node.js - 如何找到您在服务器中的加入位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54331654/

相关文章:

node.js - 如何通过类别名称查找类别中的 channel

node.js - Discord.js:手动触发事件

node.js - 为什么 client.on ("messageCreate"的 TextChannel 中缺少 nsfw 属性?

node.js - Webpack - 找不到模块 : Error: Can't resolve 'node_modules\chokidar\lib'

javascript - "errmsg": "E11000 duplicate key error collection: reduxpress.users index: address.email_1 dup key: { : null }"

javascript - Discord.js 搜索特定 channel 名称以将消息发送到(日志)

node.js - 尝试安装 Windows 构建工具时出错

javascript - 使用discord.js检测图像并响应

mysql - 如何在node.js中的mysql包中设置IF条件

javascript - 如何在 ES6 模板字符串中使用颜色?