【问题标题】:How do you find your join position in a server你如何在服务器中找到你的加入位置
【发布时间】:2019-06-17 07:17:23
【问题描述】:

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

【问题讨论】:

    标签: node.js discord.js


    【解决方案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 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);
    

    【讨论】:

      【解决方案2】:

      我不相信有任何明智的 API 可以让你做到这一点,你最好的办法是运行一个机器人来跟踪谁加入/离开并自己建立这个结构。

      【讨论】:

      • Dyno 有一个功能,但我想自己做一个
      • 可能有一种方法可以在用户加入/离开时获取一些数据,创建一个映射的 int => int 表,第一个 int 是 Discord 用户 ID,第二个是位置加入,当人们加入服务器时填充,然后do 检查该 id 是否已存在于您的表中
      猜你喜欢
      • 2010-09-06
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 2012-12-09
      • 2020-10-30
      • 2019-12-04
      相关资源
      最近更新 更多