2017-09-29 3 views
0

私のボットは私的なメッセージから役割を得ることができません!プライベートメッセージからロールを集める方法はありますか?

メッセージングメンバーのIDの特定のギルドを検索し、そのメンバーが役割を果たしているかどうかを知っている人はいますか?

const Discord = require("Discord.js"); 
const client = new Discord.Client(); 

botKey = "---"; 
adminRole = "---"; 

bot.login(botKey); 
bot.on("ready",() => { 
    console.log("Bot: Ready!"); 
}); 
client.on('message', message => { 
    if(message.member.roles.has(adminRole)){ 
    console.log(your role is Admin!); 
    } 
}); 

答えて

1

はこれを行うには、あなたがギルドIDが必要になります。ここでは

はPMに動作しないコードの例です。あなたは、ユーザーにギルドIDを言及させたり、どこかに保管させることができます。そうしないと、ユーザーにギルドの名前を言わせることができます。

その後、あなたのボットが接続しているギルドのリストをClient.Guildsで取得し、Collection<Snowflake, Guilds>を返します。ループするか、find()メソッドを使用することができます。
ギルドの名前に基づいて検索する場合は、コレクション内の各ギルドの名前と比較する追加のステップがあることに注意してください。
(あなたがそれをループしている場合は、あなたのボットは、ギルドの多くに接続されている場合、タスクは長くなります。また、あなたがClient.Guildsプロパティhereを確認することができます。)

あなたがギルドを持っていたら、単にGuildMemberをフェッチあなたが望む人物の特性。ちょうどGuild.member(message.author)を実行すれば、今度はあなたにメッセージを伝えた人の同様の特性を持つGuildMemberが返されます。今回はギルド関連のプロパティもあります。

そこから、GuildMember.rolesですべての人のギルドの役割にアクセスしたり、特定の許可を持っているかどうかだけを確認したい場合は、GuildMember.hasPermission()方法が存在します。
(文書番号GuildMemberhereです)

+0

ありがとうございました。私はまだ自分自身を勉強しており、この答えはプロセスを理解するのに役立ちます。ボットは1台のサーバでしか動作しませんが、どこから起動するのか分からず、discord.js.orgが非常に有用であるとは思えません。あるいは、その情報を読む方法がわかりません。あなたが興味を持っているなら、これを設定するプロセスを理解するのを助けてくれますか?私はこれを行う方法を学びたいです – TheBloodSeeker005

+0

@ TheBloodSeeker005私は(私のメールアドレスの私のプロフィールの周りにチェックして、私に何かをメールすることができます)助けてうれしいです。ところで、不和には例があります.JSの文書には、コードコメントが付いています。あなたがそれらの例を理解していない場合、私は非常に最初にjavascriptについてもっと学ぶべきであることを強く示唆します。 (主に非同期で) – WQYeo

+0

さて、あなたにメールします。たぶん私は例を見つけることができませんでした – TheBloodSeeker005

関連する問題