Bonjour, je dev actuellement sur un bot discord en JS, mes connaissances sont très limitée j'apprend tout sur le tas or arrive un moment ou je bloque donc je vien ici pour vous demander de l'aide :

Ce que je fais

Globalement je définie les différentes activité avec la bot (the world, with a cat) qui permetra d'afficher sur le bot
Après (j'ai trouver) un timer pour que toutes les 15sc il change entre "the world" et "with a cat"
Or il faut changer le type (let action) selon le "word" (world ou cat) pour définir si le bot regarde ou joue ( type 'watching'/'playing')
donc j'ai dit que si c'est "the world" il est censé changer le type suivi du word

j'ai utilisé du coup la commande JSON.parse() pour que si il y a un mot x il remplace derrière avec un type x

client.on("ready", () => {
  var word = ["the world", "with a cat"];
  let i = 0;
  client.user.setActivity(word[0]);
  i++;
  setInterval(() => {
    if (i >= word.length + 1) {
      i = 0;
    }
    if (word[i] === "the world") {
      let action = "{ type: 'WATCHING' }";
      client.user.setActivity(word[i], JSON.parse(action));
    } else if (word[i] === "with a cat") {
      let action = "{ type: 'PLAYING' }";
      client.user.setActivity(word[i], JSON.parse(action));
    } else {
      // something else
    }
    i++;
  }, 1000 * 15); // 30 = 30s || 1000 * 1 = 1s
  client.user.setStatus("dnd");
});

Ce que je veux

Globalement j'aimerais que quand il y a un certain mot dans la variable "word" alors il y a un certain mot dans le "let action" {type ...}

Ce que j'obtiens

Le problème c'est que le bot affiche bien "the world" et "with a cat" avec une bonne intervalle de 15sc mais aucun changement dans le type ca ne change pas et ca reste dans le type de base 'PLAYING' et dans la console j'ai ca :

{ type: 'PLAYING' }
  ^
SyntaxError: Unexpected token t in JSON at position 2
    at JSON.parse (<anonymous>)
at Timeout._onTimeout (/app/server.js:36:45)
    at listOnTimeout (internal/timers.js:531:17)
    at processTimers (internal/timers.js:475:7)

Merci d'avance pour vos réponses

2 réponses


Fenrir
Auteur

Merci INFINIMENT ! vraiment merci beaucoup

pour ta 2eme proposition je vais essayer je te tien au courrent

Fenrir
Auteur

Même avec ta 2eme solution ca marche aussi ! Merci beaucoup !