Javascript discord.js包含提及的嵌入配置文件图片命令
我正在使用Visual Studio代码应用程序在discord.js中创建一个机器人。我正在尝试为个人资料图片创建一个命令,这样当您键入-pfp时,它将显示您的个人资料图片,当您键入-pfp@user时,它将显示您提到的个人资料图片。(-是前缀)。虽然bot只发送消息,但没有嵌入图片的部分。当我提到其他人时,它会做同样的事情,但提到我而不是用户 这就是我所拥有的:Javascript discord.js包含提及的嵌入配置文件图片命令,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我正在使用Visual Studio代码应用程序在discord.js中创建一个机器人。我正在尝试为个人资料图片创建一个命令,这样当您键入-pfp时,它将显示您的个人资料图片,当您键入-pfp@user时,它将显示您提到的个人资料图片。(-是前缀)。虽然bot只发送消息,但没有嵌入图片的部分。当我提到其他人时,它会做同样的事情,但提到我而不是用户 这就是我所拥有的: if (!message.content.startsWith(prefix) || message.author.bot
if (!message.content.startsWith(prefix) || message.author.bot) return;
if (message.content.startsWith(prefix + 'pfp')) {
message.channel.send('Here is <@'+ message.author.id+ ">'s pfp :)")
const avatarEmbed = new Discord.MessageEmbed()
.setColor('#446580')
.setAuthor('user.username')
.setImage(message.author.displayAvatarURL());
} else if (message.content.startsWith(prefix+ 'pfp'+ message.mentions.users)) {
message.channel.send('Here is <@'+ message.user.id+ ">'s pfp :)")
const avatarEmbed = new Discord.MessageEmbed()
.setColor('#446580')
.setAuthor('user.username')
.setImage(message.user.displayAvatarURL());
}
});
if(!message.content.startsWith(prefix)| | message.author.bot)返回;
if(message.content.startsWith(前缀+'pfp')){
message.channel.send('s pfp:'))
const avatarEmbed=new Discord.MessageEmbed()
.setColor(“#446580”)
.setAuthor('user.username')
.setImage(message.user.displayAvatarURL());
}
});
这里有两个部分
首先,bot只发送消息而不发送嵌入,因为您只发送消息。您需要一行单独的代码来发送嵌入
message.channel.send(avatarEmbed);
其次,bot只会因为这个message.content.startsWith(prefix+'pfp')
而标记您。您在作者和其他人之间的划分方式意味着它将始终匹配第一种情况,这意味着消息始终以prefix+pfp
开头,无论您是否在之后标记某人
现在你有一些方法来解决这个问题,但我会这样做
首先定义一个新变量,让我们调用pfpMember
,然后将其分配给标记的第一个人或消息作者
var pfpMember = message.mentions.members.first() || message.member;
现在我们有了一个固定的成员,即被标记的人或作者,我们可以将displayAvatarURL
函数分配给该成员
.setImage(pfpMember.user.displayAvatarURL());
所以你的整个命令应该看起来像这样
if (message.content.startsWith(prefix + 'pfp')) {
var pfpMember = message.mentions.members.first() || message.member;
// we can just put the member object into the string here, that will tag the person
message.channel.send(`Here is ${pfpMember}'s pfp :)`);
const avatarEmbed = new Discord.MessageEmbed()
.setColor('#446580')
.setAuthor(pfpMemer.user.username)
.setImage(pfpMember.user.displayAvatarURL());
message.channel.send(avatarEmbed);
}
非常感谢!(我刚刚意识到.setAuthor('user.username')现在应该是.setAuthor(pfpMember.user.username))。但是,是的,谢谢!