te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - Discord.js sending a message in 1 minute intervals - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Discord.js sending a message in 1 minute intervals - Stack Overflow

programmeradmin3浏览0评论

Hello I'm trying to send out an automated message to discord but I keep getting the following error:

bot.sendMessage is not a function

I'm unsure as to why I'm getting this error, below is my 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); 
    }
});

Hello I'm trying to send out an automated message to discord but I keep getting the following error:

bot.sendMessage is not a function

I'm unsure as to why I'm getting this error, below is my 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); 
    }
});
Share Improve this question edited May 17, 2017 at 17:34 Lennart 1,5605 gold badges20 silver badges38 bronze badges asked May 17, 2017 at 16:39 fragile fragile 611 gold badge3 silver badges7 bronze badges 0
Add a ment  | 

2 Answers 2

Reset to default 6

Lennart is correct, you can't use bot.sendMessage because bot is a Client class, and doesn't have the sendMessage function. That's the tip of the iceberg. What you're looking for is send (or the old version, sendMessage).

These functions can't be used directly from the Client Class (which is what bot is, they are used on a TextChannel class. So how do you get this TextChannel? You get it from the Message class. In your sample code, you aren't actually getting a Message object from your bot.on('message'... listener, but you should!

The callback function to bot.on('... should look something like this:

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

You'll also notice I added .catch(console.error); after using message.channel.send("123") because Discord expects their Promise-returning functions to handle errors.

I hope this helps!

Your code is returning the error, because Discord.Client() doesn't have a method called sendMessage() as can be seen in the docs.

If you would like to send a message, you should do it in the following way;

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

I remend familiarising yourself with the documentation for discord.js which can be found here.

发布评论

评论列表(0)

  1. 暂无评论