【问题标题】:How to make a list of a "@role"如何制作“@role”列表
【发布时间】:2020-12-22 14:10:05
【问题描述】:

我想发出一个命令,如果有人键入“?role @testrole”,机器人将发送一个嵌入,其中包含具有上述角色的用户列表。

一个示例响应是:

List of @testrole
 - @Adam
 - @Drago
 - @Santiago

这是我的代码:

if (message.content.toLowerCase() == 'teamone') {
 let team1 = message.guild.member(
  message.member.roles.cache.has('750579457953234994')
 );
 message.channel.send({
  embed: {
   title: 'Team 1 composition!',
   description: `${team1}`,
  },
 });
}

我试过但它不起作用,它只发送null。有什么想法吗?

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    试试这个:

    if (message.content.toLowerCase() == 'teamone') {
     let team1 = message.guild.roles.cache
      .get('750579457953234994') // get the role in question
      .members.map((member) => `<@${member.id}>`) // map the results in mention format (<@${user.id}>)
      .join('\n'); // join by a line break
     message.channel.send({
      embed: {
       title: 'Team 1 composition!',
       description: `${team1}`,
      },
     });
    }
    

    每个Role 都有一个members 属性,它是具有给定角色的所有(缓存)成员的集合。

    然后您可以使用Collection.prototype.map 函数将每个成员格式化为提及。这是我服务器的一个示例:

    (我以模组角色为例,这是我的模组团队)

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
    • 是的,我不小心提前发了,我现在正在编辑解释
    • 非常感谢@Lioness100 你总是帮助我
    • 好的,抱歉我不能投票我没有足够的声望?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 2017-01-17
    • 1970-01-01
    • 2013-10-29
    相关资源
    最近更新 更多