2017-12-29 47 views
0

私はこのコードをうまく使っています。ユーザーが役割を持っているかどうかを確認するだけで、ID、ディスクリミネータ、私はちょうど役割を得ることができません。みんな助けてくれますか?Discordjsは、ユーザーがロールを持っているかどうかを確認します

client.on('ready',() => { 
    console.log(`logged in as ${client.user.username}`); 

    var Count; 
    for(Count in client.users.array()){ 
     var User = client.users.array()[Count]; 
     if(User.username == "someUsername"){ 
     //User.sendMessage("you"); 
     } 
     //User.checkRole("Admin"); 

    } 
} 

checkRole()機能は、私が作っものです。私はいくつかの助けが必要です。

// assuming role.id is an actual ID of a valid role: 
if(message.member.roles.has(role.id)) { 
    // user has that role 
} else { 
    //user doesn't have that role 
} 

https://anidiotsguide.gitbooks.io/discord-js-bot-guide/information/understanding-roles.html

+1

を何あなたは介してユーザの役割にアクセスすることはできません彼らの '? User'オブジェクトを取得します。これは 'guildMember'オブジェクトから取得します。ユーザーが3台のサーバーの場合はどうなりますか?3人とも同じ役割を果たすと思いますか? – Wright

+0

それはまさに私が尋ねていることです、答えのおかげで@ライト – turmuka

答えて

2

はギルドによって、あなたがそれに近づく必要があります役割にアクセスするには、ないユーザー:

client.on('ready',() => { 
    console.log(`logged in as ${client.user.username}`); 

    var Count; 
    for(Count in client.users.array()){ 
     var User = client.users.array()[Count]; 
     if(User.hasRole("Admin")){ 
      console.log(User.username); 
     } 
    } 
}) 
+0

こんにちは、答えをありがとう、よく知っていることを考えていない。ユーザーのメールを受け取る方法はありますか? – turmuka

0

あなたのような何かを行うことができます。 (@ライトで述べたように)

私はこれを地図を使ってすべてのギルドメンバーを保存し、各メンバーを通過させています(そうすることで、特定のロール名で出会うと、 (それはguildmemberオブジェクトがあるとして)guildobject

m = client.guilds.map(function (obj) { 
    return obj.members; 
}); 
for (var i = 0; i < m.length; i++) { 
    console.log("\n\nNew Guild: ");   
    console.log(m[i].map(function (obj) { 
     return obj.guild.name + " , " + obj.user.username + " : " + obj._roles; 
    }).join('\n')); 
} 

私はこれを取得する出力があるまで(私は、ユーザー名の検閲削除): Output

+0

事は、メッセージの変数は何ですか?私はメッセージにユーザーロールをつけたくないので、クライアントボットが準備ができたらすぐに取得したい@DiegoFrancisco – turmuka

+0

@turmukaより多くのコードを提供できますか? –

+0

私の新しいアップデートをチェックしてください。 'message'オブジェクトはありませんので、未定義です。私は 'client.on( 'message'、(message))'を使うことができますが、それは私がしたいことではありません。 'client.on( 'ready'、())' @DiegoFrancisco – turmuka

関連する問題