问题描述
如果用户注册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.