Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In a JavaScript Discord Bot, how come message.react() is "not a function"

I'm running a discord bot on my server. I want to make the bot message.react() to the message I just got. When I run this it works fine until I send a message.

I get this error:

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

Here's my code:

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("🍎");
});

I'm running discord.js version 12.2.0 Can you help?

like image 298
Revel Carlberg West Avatar asked Apr 10 '26 21:04

Revel Carlberg West


1 Answers

You are using discord.io, not discord.js.

If you want to add a reaction, you need to replace your message event listener with this:

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

References:

  • client.on('message', function(user, userID, channelID, message, event) { });
  • client.addReaction({ })
  • event.d.id
like image 52
Daemon Beast Avatar answered Apr 12 '26 10:04

Daemon Beast



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!