Discord.js 帐户创建后的天数

2022-01-10 00:00:00 javascript discord.js

如果用户注册discord不到10天,有什么方法可以在用户加入服务器时赋予他们特定的角色.

Is there any way to give a user a certain role when they join the server, if they have been registered to discord for less than 10 days.

推荐答案

使用 User 的 .createdAt 属性来确定他们的帐户年龄

Use the .createdAt property of User to determine their account age

guildMemberAdd 事件触发时,检查加入成员的 .createdAt 属性.然后你可以使用 .addRole() 给他们一个角色.

When the guildMemberAdd event triggers, check the joining member's .createdAt property. You can then use .addRole() to give them a role.

// assuming you already have the `role` object or id
client.on("guildMemberAdd", member => {
  if (Date.now() - member.user.createdAt < 1000*60*60*24*10) {
    member.addRole(role);
  }
});

更详细的解释:

  • guildMemberAdd 将在每次有人加入服务器时触发,这将传递 member 对象.
  • 我们使用该成员的 user 对象来确定帐户是何时通过 .createdAt 创建的.
  • 时间戳以毫秒为单位存储,因此 10 天相当于 1000*60*60*24*10 毫秒.
  • 比较这两个时间戳,如果他们的帐户年龄较低,那么你就给他们一个角色.
  • 我们假设您已经拥有 role 对象.否则,Guild.roles.get() 是通过 ID 查找角色的好方法.
  • guildMemberAdd will fire every time someone joins a server, this will pass on the member object.
  • We use the user object from that member to determine when the account was created via .createdAt.
  • Timestamps are stored in milliseconds, so 10 days is equivalent to 1000*60*60*24*10 milliseconds.
  • Compare these two timestamps, and if their account age is lower, then you give them a role.
  • We're assuming you already have the role object. Otherwise Guild.roles.get() is a good way to find a role by its ID.

相关文章