Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1605 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  Discord bot programmation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Discord bot programmation

n°2312713
melloow
Posté le 19-03-2018 à 20:04:13  profilanswer
 

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. TypeError: Cannot read property 'displayValue' of undefined
  2. api-controller.js:81
  3.     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. module.exports = {
  2.  
  3.   stats: function(msg, args){
  4.     let platform = args[0]
  5.    if(platform) platform = platform.toLowerCase()
  6.     const username = args.slice(1,args.length).join('%20')
  7.     if(platform !== 'psn' && platform !== 'pc' && platform !== 'xbl' || platform === undefined){
  8.       msg.reply(`
  9.       **La platforme de jeu n'est pas correcte.**
  10.       __**Tape la commande comme ceci:**__
  11.       *-ftn pc lenom*
  12.       *-ftn xbl lenom*
  13.       *-ftn psn lenom*
  14.       `)
  15.       return null;
  16.     }
  17.     else if(username === undefined){
  18.       msg.reply(`
  19.       **Le nom du joueur n'est pas correcte.**
  20.       __**Tape la commande comme ceci:**__
  21.       *-ftn platform lenom*
  22.       *-ftn pc lenom*
  23.       `)
  24.       return null;
  25.     }
  26.     const options = {
  27.       'uri': `https://api.fortnitetracker.com/v1/profile/${platform}/${username}`,
  28.       'headers': {
  29.         'TRN-Api-Key': process.env.FORNITE_TRACKER_KEY,
  30.         'Content-Type': 'application/json'
  31.       }
  32.     }
  33.     request(options, (err, res, body) => {
  34.       if(err){
  35.         console.error(err)
  36.         msg.reply(`Un problème est survenu lors de l'obtention des statistiques pour ${username.replace('%20', ' ')} on ${platform}.`)
  37.         return null
  38.       }
  39.       else if(res.statusCode === 200){
  40.         data = JSON.parse(body)
  41.         let soloWins = 0
  42.         let soloTime = '0h 0m'
  43.         let soloKd = 0
  44.         let soloKills = 0
  45.         let soloMatches = 0
  46.         let solowinRatio = 0
  47.         let solokpm = 0
  48.         let duoWins = 0
  49.         let duoTime = '0h 0m'
  50.         let duoKd = 0
  51.         let duoKills = 0
  52.         let duoMatches = 0
  53.         let duowinRatio = 0
  54.         let duokpm = 0
  55.         let squadWins = 0
  56.         let squadTime = '0h 0m'
  57.         let squadKd = 0
  58.         let squadKills = 0
  59.         let squadMatches = 0
  60.         let squadwinRatio = 0
  61.         let squadkpm = 0
  62.        
  63.        
  64.         if(data.error){
  65.           msg.reply(`${data.error}`)
  66.           return null
  67.         }
  68.         // Solo
  69.         if(data.stats.p2){
  70.           soloWins = data.stats.p2.top1.displayValue
  71.           soloTime = data.stats.p2.minutesPlayed.displayValue
  72.           soloKd = data.stats.p2.kd.valueDec
  73.           soloKills = data.stats.p2.kills.valueInt
  74.           soloMatches = data.stats.p2.matches.valueInt
  75.           solowinRatio = data.stats.p2.winRatio.valueDec
  76.           solokpm = data.stats.p2.kpm.valueDec
  77.         }
  78.         // Duos
  79.         if(data.stats.p10){
  80.           duoWins = data.stats.p10.top1.displayValue
  81.           duoTime = data.stats.p10.minutesPlayed.displayValue
  82.           duoKd = data.stats.p10.kd.valueDec
  83.           duoKills = data.stats.p10.kills.valueInt
  84.           duoMatches = data.stats.p10.matches.valueInt
  85.           duowinRatio = data.stats.p10.winRatio.valueDec
  86.           duokpm = data.stats.p10.kpm.valueDec
  87.         }
  88.        
  89.         // Squad Wins
  90.         if(data.stats.p9){
  91.           squadWins = data.stats.p9.top1.displayValue
  92.           squadTime = data.stats.p9.minutesPlayed.displayValue
  93.           squadKd = data.stats.p9.kd.valueDec
  94.           squadKills = data.stats.p9.kills.valueInt
  95.           squadMatches = data.stats.p9.matches.valueInt
  96.           squadwinRatio = data.stats.p9.winRatio.valueDec
  97.           squadkpm = data.stats.p9.kpm.valueDec
  98.         }
  99.      
  100.      
  101.         const user = username.replace(/b/ig, '??').replace('%20', ' ')
  102.         msg.channel.send(`
  103.         *Les Stats de* __**${user}**__ *sur* __**${platform}:**__
  104.         __**Game | n° Wins | Temps de jeu | KD Ratio**__
  105.         __**Solo**__  | ${soloWins} wins | ${soloTime}  | ${soloKd}**%**  | ${soloKills} Kills
  106.         __**Duo**__   | ${duoWins} wins  | ${duoTime}   | ${duoKd}**%**   | ${duoKills} Kills
  107.         __**Squad**__ | ${squadWins} wins| ${squadTime} | ${squadKd}**%** | ${squadKills} Kills
  108.         __**Game | n° Match | Win Ratio | Kill/Min**__
  109.         __**Solo**__  | ${soloMatches} parties  | ${solowinRatio}**%** wins  | ${solokpm} kill/min
  110.         __**Duo**__   | ${duoMatches} parties   | ${duowinRatio}**%** wins  | ${duokpm} kill/min
  111.         __**Squad**__ | ${squadMatches} parties | ${squadwinRatio}**%** wins | ${squadkpm} kill/min
  112.      
  113.         *Fortnite Tracker Stats*
  114.         `)
  115.       }
  116.       else {
  117.         msg.reply(`Quelque chose s'est mal passé. Pardon :b:ud.`)
  118.         return null
  119.       }
  120.     })
  121.   }
  122. }


 
Merci d'avance pour toutes aides !
 
A bientôt

 
 

mood
Publicité
Posté le 19-03-2018 à 20:04:13  profilanswer
 

n°2312716
MaybeEijOr​Not
but someone at least
Posté le 19-03-2018 à 20:34:28  profilanswer
 

Bonjour,
 
Parce que, la source, elle, a changé, je suppose. [:spamafote]


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2312718
melloow
Posté le 19-03-2018 à 21:08:24  profilanswer
 

Possible, auriez vous un idée ?  
 
Merci de ta réponse

n°2312719
MaybeEijOr​Not
but someone at least
Posté le 19-03-2018 à 21:18:30  profilanswer
 

Ben suffit de regarder ce que le fichier JSON pond, visiblement l'une de propriétés n'existe plus...
Ce n'est pas la propriété displayValue qui renvoie "undefined" mais une propriété qui est "undefined", propriété sur laquelle vous tentez de lire la propriété displayValue. Bon ok je sens que ce n'est pas clair mais ça ne change pas grand chose.
 
L'une des propriétés n'existe plus ou a changé de nom dans le fichier JSON, il suffit de la repérer.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2312720
melloow
Posté le 19-03-2018 à 21:22:44  profilanswer
 

Merci de ta réponse MaybeEijorNot, si elle est clair je suis du même avis que toi !, comment regarde tu le fichier JSON pour le coup ?

n°2312727
rufo
Pas me confondre avec Lycos!
Posté le 19-03-2018 à 22:52:35  profilanswer
 

Euh, je dirais... en l'affichant via ton navigateur, par ex ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2312818
melloow
Posté le 20-03-2018 à 20:33:02  profilanswer
 

Problème trouver !, les valeurs n'étaient plus correcte éffectivement, en lancent la ligne "console.log" j'ai pu mettre la mains sur les nouvelles, merci de votre aide  
 
A bientôt


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  Discord bot programmation

 

Sujets relatifs
Appli web sans programmationprobleme en programmation c "chaine de caracteres dans une fonction
Programmation Amazon AWS IoTProgrammation PHP basique
question de programmation python GPIO et raspbianTrouver un partenaire de programmation
Aide Programmation python[Divers] Programmation pour traitements de manomètre sur Auto
Programmation en 68HC11Programmation automate LOGO siemens v8
Plus de sujets relatifs à : Discord bot programmation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR