Skip to content Skip to sidebar Skip to footer

Discord.js Bot Responds When Mentioned

I'm trying to make my discord.js bot send a message when it is pinged. I was unsure how to do this so I referred to this code: client.on('message', message => { if (message.

Solution 1:

Message has a property called mentions, which contains all the channels, members, roles, and users mentioned in the message. You can use the method .has(data, [options]) of MessageMentions to see if your bot was mentioned.


client.on("messageCreate", (message) => {
    if (message.author.bot) returnfalse;

    if (message.content.includes("@here") || message.content.includes("@everyone") || message.type == "REPLY") returnfalse;

    if (message.mentions.has(client.user.id)) {
        message.channel.send("Hello there!");
    }
});

The message event has been renamed to messageCreate in Discord.JS v13. Using message will still work, but you'll receive a deprecation warning until you switch over.

Solution 2:

discord.js just got updated you can use

client.on('message', message => {
    if (message.mentions.has(client.user)) {
        message.channel.send('your message');
    }
});

Solution 3:

One of the best ways to check if only your bot is mentioned in the entire message is, regex. You can use this regular expression to check if only the client is mentioned:

/^<@!?${<client>.user.id}>( |)$/

You can check message by using the match method of String. In our case, String is message.content:

if (message.content.match(/^<@!?${client.user.id}>( |)$/)) {
  return message.channel.send("Thanks for mentioning me! my prefix is ...");
};

Post a Comment for "Discord.js Bot Responds When Mentioned"