前提・実現したいこと
JavaScriptでApex Legendsというゲームの戦績等を表示できるボットを作っています。
該当のソースコード
javascript
1for(num = 1; num < obj.data.segments.length; num++){ 2 if(obj.data.segments[num].stats.kills.value){//kills.valueが存在した場合 3 const kill = obj.data.segments[0].stats.kills.value; 4 const avatar = obj.data.platformInfo.avatarUrl; 5 const Level = obj.data.segments[0].stats.level.value; 6 const rankName = obj.data.segments[0].stats.rankScore.metadata.rankName; 7 const rankIcon = obj.data.segments[0].stats.rankScore.metadata.iconUrl; 8 const rankValue = obj.data.segments[0].stats.rankScore.value; 9 10 // const legend1 = obj.data.segments[1].metadata.name; 11 // const legend1kill = obj.data.segments[1].stats.kills.value; 12 13 const apexstats = new Discord.MessageEmbed() 14 .setColor("#752133") 15 .setTitle("Apex Legends Status: " + args1) 16 .setThumbnail(avatar) 17 .addField("**KILL**", kill, false) 18 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 19 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 20 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 21 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 22 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 23 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 24 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 25 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 26 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 27 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 28 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 29 .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) 30 .addField("**LEVEL**", Level, false) 31 .addField("**Rank**" + "(" + rankValue + "RP)", rankName, true) 32 .setImage(rankIcon); 33 34 if(num === obj.data.segments.length - 1){ 35 message.channel.send(apexstats) 36 } 37 38 }else if(!obj.data.segments[num].stats.kills.value){ //kills.valueが存在しなかった場合 39 const kill = obj.data.segments[0].stats.kills.value; 40 const avatar = obj.data.platformInfo.avatarUrl; 41 const Level = obj.data.segments[0].stats.level.value; 42 const rankName = obj.data.segments[0].stats.rankScore.metadata.rankName; 43 const rankIcon = obj.data.segments[0].stats.rankScore.metadata.iconUrl; 44 const rankValue = obj.data.segments[0].stats.rankScore.value; 45 46 // const legend1 = obj.data.segments[1].metadata.name; 47 // const legend1kill = "NO DATA"; 48 49 const apexstats = new Discord.MessageEmbed() 50 .setColor("#752133") 51 .setTitle("Apex Legends Status: " + args1) 52 .setThumbnail(avatar) 53 .addField("**KILL**", kill, false) 54 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 55 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 56 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 57 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 58 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 59 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 60 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 61 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 62 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 63 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 64 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 65 .addField(obj.data.segments[num].metadata.name, 0 + "キル", true) 66 .addField("**LEVEL**", Level, false) 67 .addField("**Rank**" + "(" + rankValue + "RP)", rankName, true) 68 .setImage(rankIcon); 69 70 if(num === obj.data.segments.length - 1){ 71 message.channel.send(apexstats) 72 } 73 74 } 75 }
発生している問題・エラーメッセージ
.addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true) .addField(obj.data.segments[num].metadata.name, obj.data.segments[num].stats.kills.value + "キル", true)
問題はこの部分です。このまま実行してしまうと、同じ名前、同じキル数ですべて反映されてしまいます。
なので、実行するたびに1234・・・と順次追加したいです。
補足情報(FW/ツールのバージョンなど)
Nodejsのバージョン : v12.18.3
使用しているエディター : Visual Studio Code
使用しているDiscord.jsのライブラリー : discord.js v12
Discord.js
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/19 15:44