2017-05-17 3 views
1

Hallo Ich versuche, eine automatische Nachricht zu senden, um Zwietracht, aber ich bekomme immer folgende Fehlermeldung:Discord.js eine Nachricht in Intervallen von 1 Minute Senden

bot.sendMessage is not a function 

Ich bin nicht sicher, warum ich Ich bekomme diesen Fehler, unten ist mein 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); 
    } 
}); 
+0

Ich habe gerade festgestellt - hast du 'discord.io' docs angesehen? –

Antwort

0

Ihr Code wird den Fehler zurückgegeben, da Discord.Client() kein Verfahren sendMessage() genannt hat wie in den docs zu sehen.

Wenn Sie eine Nachricht senden möchten, sollten Sie dies folgendermaßen tun;

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() { 
     message.channel.send("123") 
     }, 1 * 1000); 
    } 
}); 

empfehle ich, sich mit der Dokumentation für discord.js vertraut gemacht, die here gefunden werden kann.

0

Lennart ist richtig, Sie nicht bot.sendMessage verwenden können, weil bot eine Client Klasse ist, und nicht die sendMessage Funktion. Das ist die Spitze des Eisbergs. Was Sie suchen, ist send (oder die alte Version, sendMessage).

Diese Funktionen können nicht direkt von der Client Klasse verwendet werden (das ist, was bot ist, sie auf einer TextChannel Klasse verwendet werden. So, wie Sie diese TextChannel bekommen haben? Sie bekommen es von die Message Klasse. In Ihr Beispielcode, Sie sind eigentlich kein Message Objekt aus Ihrem bot.on('message'... Zuhörer bekommen, aber Sie sollten

Die Callback-Funktion bot.on('... etwas sollte wie folgt aussehen:

// add message as a parameter to your callback function 
bot.on('message', function(message) { 
    // Now, you can use the message variable inside 
    if (message.content === "$loop") { 
     var interval = setInterval (function() { 
      // use the message's channel (TextChannel) to send a new message 
      message.channel.send("123") 
      .catch(console.error); // add error handling here 
     }, 1 * 1000); 
    } 
}); 

Sie werden auch bemerken, dass ich .catch(console.error); nach der Verwendung von message.channel.send("123") hinzugefügt habe, weil Discord erwartet, dass ihre Promise-Returning-Funktionen Fehler behandeln.

Ich hoffe, das hilft!