2017-05-17 4 views
1

は私が不和に自動化されたメッセージを送信しようとしているが、私は次のエラーを取得しておくこんにちは1分間隔でメッセージを送信する:Discord.js

bot.sendMessage is not a function 

私は「理由としてわかりませんよこのエラーが発生すると、以下は私のコードです。

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

私はちょうど気付いた - あなたは 'discord.io'ドキュメントを見ていましたか? –

答えて

0

docsに見られるようにDiscord.Client()sendMessage()というメソッドを持っていないので、あなたのコードは、エラーが返されます。

メッセージを送信する場合は、次のようにしてください。

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); 
    } 
}); 

私はhere見つけることができますdiscord.jsのドキュメントをよく理解をお勧めします。

0

レナートはbotClientクラスで、sendMessage機能を持っていないので、あなたがbot.sendMessageを使用することはできません、正しいです。それが氷山の一角です。あなたが探しているものはsend(または旧バージョンsendMessage)です。

これらの機能は、botが、それらはTextChannelクラスで使用されているものであるClientクラス(から直接使用することはできません。それでは、どのようにこのTextChannelを得るのですか?あなたはからMessageクラスそれを取得します。であなたのサンプルコードは、あなたが実際にあなたのbot.on('message'...リスナーからMessageオブジェクトを取得されていませんが、あなたはするべき

bot.on('...へのコールバック関数は次のようなものになります!

// 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); 
    } 
}); 

また、message.channel.send("123")を使用した後に.catch(console.error);を追加したことに気づくでしょう。なぜならDiscordはPromise - 返す関数がエラーを処理することを期待しているからです。

こちらがお役に立てば幸いです。

関連する問題