JavaScript - 「@role」のリストを作成する方法

okwaves2024-01-25  9

誰かが「?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 を送信するだけでした。何かアイデアはありますか?



------------------------

これを試してください:

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}`,
  },
 });
}

すべてのロールには、指定されたロールを持つすべての (キャッシュされた) メンバーのコレクションである members プロパティがあります。

その後、Collection.prototype.map 関数を使用して、各メンバーをメンションにフォーマットすることができます。私のサーバーの例を次に示します。

(私は使用しました例として MOD の役割を説明します。これが私の MOD チームです)

4

このコードは質問に答えることができますが、このコードが質問に答える理由および/または方法に関する追加のコンテキストを提供すると、その長期的な価値が高まります。

– ジェイキー

2020 年 9 月 3 日 10:50

1

はい、間違って送信してしまいました時期尚早です。現在説明を編集中です。

– ライオネス100

2020 年 9 月 3 日 10:50

本当にありがとう @Lioness100 いつも助けてくれました

– ダマラ ナドラ マティン

2020 年 9 月 3 日 10:57

わかりました、ごめんなさい、十分な評判がないので投票できません 😭

– ダマラ ナドラ マティン

2020 年 9 月 3 日、11:26

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。