RtHAitP30D
RtHAitP30D

Reputation: 326

How do I mention a role with Discord.js?

I am making a bot and I am trying to Ping a certain role. Here is the relevant code:

let msga = msg.author;
msg.channel.send("@NES Found one!! " + msga);

@NES is the role I am trying to ping/mention.

Upvotes: 12

Views: 52895

Answers (4)

yummypasta
yummypasta

Reputation: 1478

The currently accepted answer is incorrect. You ping a user with <@id>, not a role.

As stated in this Github issue, for roles, you have to use <@&id> and the role has to be pingable.

So, the correct code for the question would be something like:

msg.channel.send("<@&" + roleId + "> Found one!! " + msga);

Or, using fancy formatted strings:

msg.channel.send(`<@&${roleId}> Found one!! ${msga}`);

Upvotes: 45

Yusa
Yusa

Reputation: 21

try this: msg.channel.send(`<@&${'roleId'}> Found one!! ${msga}`);

Upvotes: 2

Thomas Reichmann
Thomas Reichmann

Reputation: 467

Just add an opening and closing angle bracket and use the role id to make the mention.

msg.channel.send("<@id> Found one!! " + msga);

This answer was valid for older versions of discord.js (I believe v11 and under) but is now invalid for v12+ use yummypasta's solution for the newer versions.

Upvotes: 5

soey_sause
soey_sause

Reputation: 33

It is:

 message.channel.send(`<@& id >`); 

Upvotes: 2

Related Questions