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"