Avant d'entamer ce défi, assure toi d'avoir déjà fait ceux ci:
Ensuite, assure-toi que tu sois bien connecté à ton compte Repl.It, et que tu aies ton projet de la fois passée.
Si tu as déjà utilisé Discord, tu sais qu'on peut réagir aux messages des autres. On peut mettre toutes sortes d'emojis, seule notre imagination nous retient.
Pour réagir aux messages, le code est très similaire au code pour répondre à un message. En effet, pour répondre on faisait le suivant:
bot.on('message', function(msg) {
// ...
if ( /* ... */ ) {
msg.reply("Hello :)");
}
})
Pour réagir à un message il suffit d'utiliser msg.react()
. Mais il faut faire attention, il faut préciser avec quoi réagir. Et c'est là que cela devient un peu plus compliqué.
Tu vas devoir aller chercker l'emoji avec lequel tu veux réagir. Par exemple, je veux réagir avec l'emoji 🔗. Tu peux aller sur ce site pour copier ton emoji préferé.
Finalement il suffit de le mettre entre guillemets et de la coller en tant que paramètre. Voilà!
Essaie maintenant de réagir avec plusieurs emojis les uns après les autres! 🇧🇹
Imaginons que ton bot veuille répondre à un message mais après 10 minutes. On va donc devoir coder une sorte de "attendre". Heureusement cela existe plus ou moins en JavaScript.
En effet, pour faire quelque chose après 10 minutes, on peut faire ce style de code:
setTimeout(function() {
// ....
}, 1000);
Analysons ce code:
Tu peux donc le placer autour d'un de tes msg.reply()
pour faire répondre ton bot après un certain temps. Ton bot pourrait également envoyer un message maintenant et un message dans 10 minutes, pour te rappeller quelque chose!
Imaginons maintenant qu'on veuille que le bot envoie un message si aucun autre message a été envoyé dans les 10 minutes passées. On va alors créer le setTimeout()
comme avant, et on va l'effacer quand un nouveau message rentre.
Pour effacer un timeout, il faut le stocker dans une variable. Crée une variable en dehors de toutes tes fonctions, var timeout
. Puis lorsque tu utilises le setTimeout()
, change le en ceci:
timeout = setTimeout( /* ... */ );
Finalement, lorsqu'un nouveau message rentre, n'importe quel nouveau message (Donc avant les if
et les switch
), appelle la fonction clearTimeout(timeout)
.
Ton code ressemble donc à ceci:
var timeout;
bot.on('message', function(msg) {
clearTimeout(timeout);
if( /* ... */ ) {
timeout = setTimeout( /* ... */ );
}
})
Challenges: