前提・実現したいこと
Discord.jsで出目ごとに確率の違うおみくじを引いてくれるbotを作ろうとしています。
https://note.com/exteoi/n/n87bd4fa02c95#pPash
こちらのサイトを参考にしておみくじ機能自体は作ることに成功したのですが、
おみくじの結果を通常のメッセージではなく
!omikujiと発言したユーザーへのリプライで返してくれるようにするにはどうすればいいでしょうか?
当方初心者につき、実際に改変したコードを記入して頂けるととても助かります。
お手数おかけしますがよろしくお願いします。
該当のソースコード
JavaScript
1client.on('message', async message =>{ 2 if (message.content === "!omikuji"){ 3 let arr = ["大吉", "吉", "中吉", "小吉", "末吉", "凶", "大凶"]; 4 let weight = [15, 25, 20, 20, 15, 10, 5]; 5 lotteryByWeight(message.channel.id, arr, weight); 6 } 7}); 8 9function lotteryByWeight(channelId, arr, weight){ 10 let totalWeight = 0; 11 for (var i = 0; i < weight.length; i++){ 12 totalWeight += weight[i]; 13 } 14 let random = Math.floor( Math.random() * totalWeight); 15 for (var i = 0; i < weight.length; i++){ 16 if (random < weight[i]){ 17 sendMsg(channelId, arr[i]); 18 return; 19 }else{ 20 random -= weight[i]; 21 } 22 } 23 console.log("lottery error"); 24} 25 26function sendReply(message, text){ 27 message.reply(text) 28 .then(console.log("リプライ送信: " + text)) 29 .catch(console.error); 30} 31 32function sendMsg(channelId, text, option={}){ 33 client.channels.get(channelId).send(text, option) 34 .then(console.log("メッセージ送信: " + text + JSON.stringify(option))) 35 .catch(console.error); 36}
試したこと
sendMsgをsendReplyに差し替えるなどしてみましたが動作しませんでした。
補足情報(FW/ツールのバージョンなど)
Node.js
Discord.js v12.5.3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/27 08:28