Reputation: 430
I'm kinda new to bot developing, but I've made a command called &pat and I want it to work like this: You do &pat @user and I want it to respond like this: @user-executing-the-command, you have successfully patted @user-mentioned-in-the-command. I've come up with this code so far and it works all well apart from pinging the patted person. I does ping them, but it shows @invalid-user, and idk how to fix that. My code:
var pattedone = message.mentions.members.first();
if(!pattedone) return message.reply('please mention the one who should be patted');
message.reply(`you have successfully patted ${pattedone}`);
Do you know how to fix that @invalid-user thing? Thanks. Here is screenshot of the bot's response
Upvotes: 2
Views: 10714
Reputation: 60
Discord mentions work like this: <@user-id>
. Simply replace user-id
with the ID of the "victim". You can also mention roles using <&channel-id>
or text channels using <#channel-id>
.
Upvotes: 0
Reputation: 1584
According to the Discord.js Documentation
Discord uses a special syntax to embed mentions in a message. For user mentions it is the user's ID with <@ at the start and > at the end, like this: <@86890631690977280>
With this in mind. Simply change
message.reply(`you have successfully patted ${pattedone}`);
to this
message.reply(`you have successfully patted <@${pattedone.id}>`);
EDIT
You'll also need to update
var pattedone = message.mentions.members.first();
to
var pattedone = message.mentions.users.first();
Upvotes: 2
Reputation: 86
you can mention a user with the following "method":
let mention = `<@${userId}>`;
Upvotes: 0