2017-12-30 7 views
0

私の不調和なサーバーでは、検証方法として、ボットにすべてのユーザーがメッセージに反応して、検証された役割が与えられ、古い役割が削除されるようにします。私が持っている現在のコードは、ロールを付与または削除しませんが、エラーは発生しません。emotesを使用して役割を果たすDiscord.js

client.on("messageReactionAdd", function(users) { 
users.addRole(users.guild.roles.find("name", setup.verify)); 
users.removeRole(users.guild.roles.find("name", setup.default)); 
}); 
+0

'setup.verify'と' setup.default'の値は何ですか? –

+0

デフォルトおよび認定Retro、これらはどちらもコマンドを使用して動作します – Moonlight

答えて

0

この作品は次のようなものですか? 私はそれをテストしていないか分からない。これは、反応したメッセージが "role1"という単語で構成されている場合に役割を追加し、別のメッセージに反応する場合は役割を削除します。私はこれがあなたのために起こっているかどうかは分かりませんが、理論的にはこれはうまくいくはずです。

client.on("MessageReactionAdd", function(users) { 
if (message.content === "role1") { 
    users.addRole(users.guild.roles.find("name", setup.verify)) 
} else if (!message.content === "role1") { 
    user.removeRole(users.guild.role.find("name", setup.default)) 
} 
}); 
0

現在のコードに問題があります。 messageReactionAddイベントはUserオブジェクトを返します。このオブジェクトには、.guildsというアクセスしようとするプロパティが含まれていません:users.guilds.r-

これの代わりにUserオブジェクトのidmessage.guild.members.get("id here")に接続する必要があります。次に、返されたMemberオブジェクトを現在のコードで使用します。それはうまくいくはずです!

参考文献:

Guild MemberMessage Reaction EventUser Object

関連する問題