【问题标题】:Discord.js days since account creationDiscord.js 帐户创建后的天数
【发布时间】:2020-03-06 04:49:22
【问题描述】:

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

【问题讨论】:

  • 我已经尝试过了,但我得到了错误ReferenceError: moment is not defined
  • 你需要用npm i moment安装moment
  • @Androz2091 你绝对不需要安装像moment 这样的库来做这么简单的事情。

标签: javascript discord.js


【解决方案1】:

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

guildMemberAdd事件触发时,检查加入成员的.createdAt属性。然后您可以使用.addRole() 为他们分配角色。

// 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 查找角色的好方法。

【讨论】:

  • 我认为如果你只是输入message.channel.send(‘account was created ${Date.now() - member.user.createdAt() / 1000 / 60 / 60 / 24} days ago’)
猜你喜欢
  • 1970-01-01
  • 2020-12-19
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 2018-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多