Discord.js l'envoi d'un message à intervalles de 1 minute
Bonjour, je suis en train d'envoyer un message automatique à la discorde, mais je reçois l'erreur suivante:
bot.sendMessage is not a function
Je ne suis pas sûr que la raison pour laquelle j'obtiens cette erreur, voici mon code;
var Discord = require('discord.js');
var bot = new Discord.Client()
bot.on('ready', function() {
console.log(bot.user.username);
});
bot.on('message', function() {
if (message.content === "$loop") {
var interval = setInterval (function () {
bot.sendMessage(message.channel, "123")
}, 1 * 1000);
}
});
Vous devez vous connecter pour publier un commentaire.
Lennart est correct, vous ne pouvez pas utiliser
bot.sendMessage
parce quebot
est unClient
classe, et n'a pas lasendMessage
fonction. C'est la partie émergée de l'iceberg. Ce que vous cherchez estenvoyer
(ou l'ancienne version,sendMessage
).Ces fonctions ne peuvent pas être utilisées directement à partir de la
Client
Classe (qui est ce quebot
est, ils sont utilisés sur unTextChannel
classe. Alors, comment obtenez-vous ceTextChannel
? Vous obtenez de laMessage
classe. Dans votre exemple de code, vous n'êtes pas réellement obtenir unMessage
objet à partir de votrebot.on('message'...
l'auditeur, mais vous devez!La fonction de callback à
bot.on('...
devrait ressembler à quelque chose comme ceci:Vous remarquerez également que j'ai ajouté
.catch(console.error);
après l'utilisation demessage.channel.send("123")
parce que la Discorde s'attend à leurPromise
-de retour des fonctions pour gérer les erreurs.J'espère que cela aide!
Votre code est de retour à l'erreur car
Discord.Client()
ne dispose pas d'une méthode appeléesendMessage()
comme on peut le voir dans le docs.Si vous souhaitez envoyer un message, vous devez le faire de la manière suivante;
Je recommande de vous familiarisant avec la documentation de discord.js qui peut être trouvé ici.