您好我正在尝试向discord发送自动发送的消息,但我一直收到以下错误:
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 :(得分:4)
Lennart是正确的,您无法使用bot.sendMessage
因为bot
是Client
类,并且没有sendMessage
功能。这是冰山一角。您正在寻找的是send
(或旧版sendMessage
)。
这些功能无法直接在Client
类中使用(bot
是TextChannel
,它们用于TextChannel
类。那么你如何得到它Message
?您从Message
类 得到它。在您的示例代码中,您实际上并未从{{1}获得bot.on('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);
}
});
您还会注意到我在使用.catch(console.error);
后添加了message.channel.send("123")
,因为Discord期望他们的Promise
- 返回函数来处理错误。
我希望这有帮助!
答案 1 :(得分:1)
您的代码返回错误,因为Discord.Client()
没有名为sendMessage()
的方法,如docs所示。
如果您想发送信息,请按以下方式进行;
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);
}
});
我建议您熟悉discord.js的文档,可以找到here。