2017-04-17 9 views
1

私はDiscordボットをプログラミングしています。私がしたいことの1つは、特定の条件が与えられたメンバーに役割を割り当てることです。ドキュメント、特にhereを調べた後、私はbot.addMemberToRoleが使用するのに良いコマンドであると考えました。Discord.js client.addMemberToRole not working

はTypeError:bot.addMemberToRoleは、ドキュメントは明確に、これが機能していることを言うように、私は、当然のことながら混乱していた機能

ではありません、私はそれを実行したときにしかし、私は、このエラーメッセージが表示されました。私はbot.addMemberToRole(メンバー、ロール); addMemberToRole(メンバー、ロール);といくつかの他の繰り返しをやってみました。これは私の最も最近の試みである:私もちょうどこのことを行っている

const Discord = require('discord.js'); 
const bot = new Discord.Client(); 

bot.addMemberToRole(member, role, function(err){ 
    if(err){ 
     console.log(err); 
    } 
}); 

bot.addMemberToRole(member, role); 

どちらも、上記と同じ例外TypeErrorを与えました。

なぜ動作しないのかわかりません。私はドキュメントを正確に辿り、私が渡したメンバとロールの変数は適切な型で、他のDiscord.jsコマンドは私のボットでうまく動作します。どんな助けもありがとう。

答えて

1

旧バージョンのドキュメントを使用しているため、機能がもう存在しません。彼らは本当にそれらを取り除くべきです。あなたはGuildMember.addRole(Role or String)を探しています。

メンバーをロールに追加するには、GuildMemberとロールオブジェクト(またはロールの名前)が必要です。あなたがUserオブジェクトとGuildオブジェクトを持っていると仮定すると(あなたのボットには参加しているギルド/サーバのリストがあり、ほとんどのイベントには関連するギルドがあります)、Guild.fetchMember(User)を使用してGuildMemberを取得できます。ここから、文字列またはオブジェクトベースのaddRoleのいずれかのバージョンを使用してGuildMemberにロールを追加できます。

ここでは、メッセージがGuildMemberに関連付けられているため、非常に簡単なメッセージをユーザーから受信した場合の操作方法の例を示します。

const Discord = require('discord.js'); 
const bot = new Discord.Client(); 

bot.on('message', (message) => { 
    const guildMember = message.member; 
    guildMember.addRole('bot-added-role'); 
}); 
+1

ありがとうございました! –