在JavaScript Discord Bot中,message.react()为何不是“函数”?

时间:2020-07-12 12:05:52

标签: javascript node.js discord discord.io

我正在服务器上运行Discord机器人。我想使机器人message.react()成为我刚收到的消息。当我运行此程序时,在我发送消息之前,它工作正常。

我收到此错误:

/Users/*****/Projects/Discord/DiscordBot/bot.js:22
    .react("?")
     ^

TypeError: message.react is not a function
    at DiscordClient.bot.on (/Users/revel/Projects/Discord/DiscordBot/bot.js:22:6)
    at DiscordClient.emit (events.js:189:13)
    at DiscordClient.handleWSMessage (/Users/revel/Projects/Discord/DiscordBot/node_modules/discord.io/lib/index.js:1854:11)
    at WebSocket.emit (events.js:189:13)
    at Receiver.ontext (/Users/revel/Projects/Discord/DiscordBot/node_modules/ws/lib/WebSocket.js:841:10)
    at /Users/revel/Projects/Discord/DiscordBot/node_modules/ws/lib/Receiver.js:536:18
    at Receiver.applyExtensions (/Users/revel/Projects/Discord/DiscordBot/node_modules/ws/lib/Receiver.js:371:5)
    at /Users/revel/Projects/Discord/DiscordBot/node_modules/ws/lib/Receiver.js:508:14
    at Receiver.flush (/Users/revel/Projects/Discord/DiscordBot/node_modules/ws/lib/Receiver.js:347:3)
    at Receiver.finish (/Users/revel/Projects/Discord/DiscordBot/node_modules/ws/lib/Receiver.js:541:12)

这是我的代码:

var Discord = require("discord.io");
var logger = require("winston");
var auth = require("./auth.json");
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console(), {
  colorize: true,
});
logger.level = "debug";
// Initialize Discord Bot
var bot = new Discord.Client({
  token: auth.token,
  autorun: true,
});
bot.on("ready", function (evt) {
  logger.info("Connected");
  logger.info("Logged in as: ");
  logger.info(bot.username + " - (" + bot.id + ")");
});
bot.on("message", (message) => {
  message.react("?");
});

我正在运行discord.js12.2.0,您能帮忙吗?

2 个答案:

答案 0 :(得分:2)

您使用的是discord.io,而不是discord.js。

如果要添加反应,则需要用以下内容替换消息事件侦听器:

bot.on("message", (user, userID, channelID, message, event) => {
  bot.addReaction({
    channelID,
    messageID: event.d.id,
    reaction: "?"
  });
});

参考:

答案 1 :(得分:1)

快速浏览discord.io's docs
您应该使用正确的参数替换message事件的参数,如链接中所述:

client.on('message', function(user, userID, channelID, message, event) { });