Bot Discord .js "Cannot read property"
Bonjour à tous !
Voila j'ai crée/modifié un bot Discord pour affiché directement les stats dans le chat. Tous fonctionnes parfaitement, mais du jour au lendemain lorsque l'on tape -ftn pc lenom je bot crash en m'affichant l'error suivante :
RAS : Clé Discord OK, Clé API Fortnite traker OK
Code:
1 2 3
| TypeError: Cannot read property 'displayValue' of undefined
api-controller.js:81
at Request.request [as _callback] (c:\Users\MmePoWa\Desktop\MelloowBot Fortnite\api-controller.js:81:50) |
la DisplayValue est undefined... alors que je n'avais absolument pas ce soucis avant.
Voici le code complet :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
| const request = require('request')
module.exports = {
stats: function(msg, args){
let platform = args[0]
if(platform) platform = platform.toLowerCase()
const username = args.slice(1,args.length).join('%20')
if(platform !== 'psn' && platform !== 'pc' && platform !== 'xbl' || platform === undefined){
msg.reply(`
**La platforme de jeu n'est pas correcte.**
__**Tape la commande comme ceci:**__
*-ftn pc lenom*
*-ftn xbl lenom*
*-ftn psn lenom*
`)
return null;
}
else if(username === undefined){
msg.reply(`
**Le nom du joueur n'est pas correcte.**
__**Tape la commande comme ceci:**__
*-ftn platform lenom*
*-ftn pc lenom*
`)
return null;
}
const options = {
'uri': `https://api.fortnitetracker.com/v1/profile/${platform}/${username}`,
'headers': {
'TRN-Api-Key': process.env.FORNITE_TRACKER_KEY,
'Content-Type': 'application/json'
}
}
request(options, (err, res, body) => {
if(err){
console.error(err)
msg.reply(`Un problème est survenu lors de l'obtention des statistiques pour ${username.replace('%20', ' ')} on ${platform}.`)
return null
}
else if(res.statusCode === 200){
data = JSON.parse(body)
let soloWins = 0
let soloTime = '0h 0m'
let soloKd = 0
let soloKills = 0
let soloMatches = 0
let solowinRatio = 0
let solokpm = 0
let duoWins = 0
let duoTime = '0h 0m'
let duoKd = 0
let duoKills = 0
let duoMatches = 0
let duowinRatio = 0
let duokpm = 0
let squadWins = 0
let squadTime = '0h 0m'
let squadKd = 0
let squadKills = 0
let squadMatches = 0
let squadwinRatio = 0
let squadkpm = 0
if(data.error){
msg.reply(`${data.error}`)
return null
}
// Solo
if(data.stats.p2){
soloWins = data.stats.p2.top1.displayValue
soloTime = data.stats.p2.minutesPlayed.displayValue
soloKd = data.stats.p2.kd.valueDec
soloKills = data.stats.p2.kills.valueInt
soloMatches = data.stats.p2.matches.valueInt
solowinRatio = data.stats.p2.winRatio.valueDec
solokpm = data.stats.p2.kpm.valueDec
}
// Duos
if(data.stats.p10){
duoWins = data.stats.p10.top1.displayValue
duoTime = data.stats.p10.minutesPlayed.displayValue
duoKd = data.stats.p10.kd.valueDec
duoKills = data.stats.p10.kills.valueInt
duoMatches = data.stats.p10.matches.valueInt
duowinRatio = data.stats.p10.winRatio.valueDec
duokpm = data.stats.p10.kpm.valueDec
}
// Squad Wins
if(data.stats.p9){
squadWins = data.stats.p9.top1.displayValue
squadTime = data.stats.p9.minutesPlayed.displayValue
squadKd = data.stats.p9.kd.valueDec
squadKills = data.stats.p9.kills.valueInt
squadMatches = data.stats.p9.matches.valueInt
squadwinRatio = data.stats.p9.winRatio.valueDec
squadkpm = data.stats.p9.kpm.valueDec
}
const user = username.replace(/b/ig, '??').replace('%20', ' ')
msg.channel.send(`
*Les Stats de* __**${user}**__ *sur* __**${platform}:**__
__**Game | n° Wins | Temps de jeu | KD Ratio**__
__**Solo**__ | ${soloWins} wins | ${soloTime} | ${soloKd}**%** | ${soloKills} Kills
__**Duo**__ | ${duoWins} wins | ${duoTime} | ${duoKd}**%** | ${duoKills} Kills
__**Squad**__ | ${squadWins} wins| ${squadTime} | ${squadKd}**%** | ${squadKills} Kills
__**Game | n° Match | Win Ratio | Kill/Min**__
__**Solo**__ | ${soloMatches} parties | ${solowinRatio}**%** wins | ${solokpm} kill/min
__**Duo**__ | ${duoMatches} parties | ${duowinRatio}**%** wins | ${duokpm} kill/min
__**Squad**__ | ${squadMatches} parties | ${squadwinRatio}**%** wins | ${squadkpm} kill/min
*Fortnite Tracker Stats*
`)
}
else {
msg.reply(`Quelque chose s'est mal passé. Pardon :b:ud.`)
return null
}
})
}
} |
Merci d'avance pour toutes aides !
A bientôt :D