I have a problem with sending messages when a user is tagged or not, I’m working on the pp command (as in dankmemer) but after adding the code so that I can tag a person the bot crashes, what I mean is that after tagging a person it will send a message in the title it will say the user’s penis and if he is not tagged it will say the author, code below 🙂
if (message.content === `${prefix}4fpp`) {
var facts = ["<====8", "<=====8","<=====8","<=======8",]
var fact = Math.floor(Math.random() * facts.length);
const pp = new Discord.MessageEmbed()
.setTitle(`${message.author.username} , penis:`)
.setDescription(facts[fact])
.setColor(`${GREEN}`)
.setFooter(`Commmand executed by: ${message.author.tag}`, `${message.author.avatarURL()}`)
.setTimestamp()
message.channel.send(pp);
}
Advertisement
Answer
You can get a mentioned user by using message.mentions.users.first()(read more about it in the official documentation). You can use that to format the embed properly by doing something like:
const facts = ["<====8", "<=====8", "<=====8", "<=======8"];
const fact = Math.floor(Math.random() * facts.length);
//Gets the first mentioned user
const mention = message.mentions.users.first();
const pp = new Discord.MessageEmbed()
.setDescription(facts[fact])
.setColor(GREEN)
.setFooter(`Commmand executed by: ${message.author.tag}`, message.author.avatarURL())
.setTimestamp();
if (mention) { //Set the title to the mentioned user's username if applicable
pp.setTitle(`${mention.username} , penis:`);
} else { //Otherwise set it to the message author
pp.setTitle(`${message.author.username} , penis:`);
};
message.channel.send(pp);