前提・実現したいこと
DiscordのBot開発をしています。
Botの発言にリアクションをするとリアクションしたユーザーにロールが追加される様にしたいです。
DiscordのBot開発は初心者なので、わかりやすく解説してただけるとありがたいです。
発生している問題・エラーメッセージ
リアクションをしたユーザーにロールを追加したいのですが、ユーザーがリアクションをするとBot自身にロールが追加されてしまっています。
要するに、リアクションしたユーザーAにロールを付与したいのに、なぜかBot自身にロールが付与されてしまっているといった現象が起きています。
該当のソースコード
Botがメッセージを投稿する箇所
Javascript
1client.on('ready', async () => { 2 console.log('ready...'); 3 const fastmessage = await client.channels.cache.find(ch => ch.name === '村役場').send('参加する方は、ここにリアクションしてください!');//メッセージ送信 4 const fastmessagereaction = await fastmessage.react('1️⃣');//リアクションをBot自身が追加 5});
Botがリアクションに反応する箇所
Javascript
1client.on('messageReactionAdd', async (reaction, user) => { 2 const message = reaction.message; 3 //ユーザーのリアクション(1️⃣)にのみ反応 4 if (reaction.emoji.name === '1️⃣' && !user.bot) { 5 const role = message.guild.roles.cache.find(role => role.name === '参加者'); 6 message.member.roles.add(role);//ロール追加 7 } 8});
試したこと
Bot自身がリアクションを追加するコードを削除したり、リアクションに反応する箇所のif文の「&& !user.bot」の部分を削除して試しましたが、同じ結果でした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。