如何制作按公会位置随机删除角色的代码

时间:2019-05-10 18:46:55

标签: discord.js commando

我正在开发一个机器人,每隔一定的时间间隔,就像机器人每小时都会随机选择一个用户并从其中删除一个角色一样,它将使用侧面的定位来做到这一点。问题是我在Discord.JS中找不到真正的功能,该功能在侧面具有公会成员的位置。

我试图找到其他可以做到这一点的机器人并试图模仿它们,但是我什么也没找到。 我仔细检查了文档,但没有找到任何东西。

      var thatguild = message.guild.id.find(`576463944298790929`);
      thatguild.fetchMembers();

    setInterval(function() {
      let sizes = thatguild[Math.floor(Math.random() * thatguild.members.size())];
      if(thatguild.member.id == `329023088517971969` || `538628353079508992`)
      return(thatguild.member.removeRole('576464298088333323'))
    }, 1000) 

我希望有一个机器人,在该机器人中,它会根据职位随机选择一个用户,并从该成员中删除一个角色。 我真正得到的是代码,无法知道它是否有效。

1 个答案:

答案 0 :(得分:0)

说明:

如果我们想完成自己想要的事情,那就让我们来了解一下我们要做的事情。

  1. 获取所需的公会。
    • Client.guilds提供了客户正在处理的行会集合(主版本为mysql> select @@sql_mode; +--------------------------------------------+ | @@sql_mode | +--------------------------------------------+ | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | +--------------------------------------------+ 1 row in set (0.00 sec) )。
    • 要通过键查找值,请使用Map.get()
    • 要通过其他属性或表达式的测试来查找值,请使用Collection.find()
    • 要简单地使用在GuildStore事件中发送邮件的公会,请使用message.guild
  2. 获得所需的角色。
    • Guild.roles提供了客户正在处理的公会(主机中的message)中的角色集合。
    • 请参阅前面列出的选项,以从集合中获取值。
  3. 选择一个随机成员。
    • Guild.members提供了行会成员的集合(主版本为GuildMemberRoleStore)。
    • 在选择成员之前,可能的选择应仅限于具有角色的成员,因此请使用Collection.filter()
    • 要从集合中选择随机值,请使用Collection.random()
  4. 从成员中删除角色。
  5. 设置间隔。
    • 要设置时间间隔,请使用setInterval()
    • 万一出现问题,请将其分配给变量,以便以后清除。

代码:

GuildMemberStore

Discord.js文档:

stable
master