我正在尝试制作一个 discord.js avatar 命令,但提到的部分无法正常工作
I am trying to make a discord.js avatar command, and the mentioning portion doesn't work correctly
我的 discord 机器人中有一个头像命令。当用户使用 h.avatar
时,它会输出他们的头像,效果很好。每当他们尝试使用 h.avatar @user
时,什么也没有发生。
这是我的代码:
} if (message.content.startsWith(config.prefix + "avatar")) {
if (!message.mentions.users.size) {
const avatarAuthor = new Discord.RichEmbed()
.setColor(0x333333)
.setAuthor(message.author.username)
.setImage(message.author.avatarURL)
message.channel.send(avatarAuthor);
let mention = message.mentions.members.first();
const avatarMention = new Discord.RichEmbed()
.setColor(0x333333)
.setAuthor(mention.user.username)
.setImage(mention.user.avatarURL)
message.channel.send(avatarMention);
你有一个支票 if (!message.mentions.users.size) {
,只有当你没有提到某人时才会发出命令 运行。您需要在代码中使用 else {
或执行以下操作:
if (message.content.startsWith(config.prefix + 'avatar')) {
const user = message.mentions.users.first() || message.author;
const avatarEmbed = new Discord.RichEmbed()
.setColor(0x333333)
.setAuthor(user.username)
.setImage(user.avatarURL);
message.channel.send(avatarEmbed);
}
const user = message.mentions.users.first() || message.author;
尝试获取提到的用户,但如果找不到任何人,它将使用作者使用过的用户。
也可以这样使用:
if (!message.mentions.users.size) {
message.channel.send('Nobody was mentioned');
return;
}
// continue command here, after guard clause
if (message.content.startsWith(prefix + 'avatar')) {
let user = message.mentions.users.first();
if(!user) user = message.author;
let color = message.member.displayHexColor;
if (color == '#000000') color = message.member.hoistRole.hexColor;
const embed = new Discord.RichEmbed()
.setImage(user.avatarURL)
.setColor(color)
message.channel.send({embed});
}
if(message.content.startsWith(prefix+'av')){
if(message.mentions.users.size){
let member=message.mentions.users.first()
if(member){
const emb=new Discord.MessageEmbed().setImage(member.displayAvatarURL()).setTitle(member.username)
message.channel.send(emb)
}
else{
message.channel.send("Sorry none found with that name")
}
}else{
const emb=new Discord.MessageEmbed().setImage(message.author.displayAvatarURL()).setTitle(message.author.username)
message.channel.send(emb)
}
}
没有什么比 avatarUrl
更好的了,除非你已经定义了它。
使用此代码获取用户的 url:
message.channel.send("https://cdn.discordapp.com/avatars/"+message.author.id+"/"+message.author.avatar+".jpeg");
只需将message.author
替换为提到的用户
这些是有效答案的更新版本
if (message.content.startsWith(config.prefix + 'avatar')) {
const user = msg.mentions.users.first() || msg.author;
const avatarEmbed = new MessageEmbed()
.setColor(0x333333)
.setAuthor(`${user.username}'s Avatar`)
.setImage(
`https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.png?size=256`
);
msg.lineReply(avatarEmbed);
}
这使用了 discord 的头像 url 和 msg.lineReply(avatarEmbed);是一个发送嵌入作为对消息的回复的函数
我的
if (msg.content.startsWith(prefix + 'avatar')) {
const user = msg.mentions.users.first() || msg.author;
const avatarEmbed = new MessageEmbed()
.setColor('')
.setAuthor(`${user.username}'s Avatar`)
.setImage(
`https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.png?size=256`
);
msg.reply(avatarEmbed);
}
})
我的 discord 机器人中有一个头像命令。当用户使用 h.avatar
时,它会输出他们的头像,效果很好。每当他们尝试使用 h.avatar @user
时,什么也没有发生。
这是我的代码:
} if (message.content.startsWith(config.prefix + "avatar")) {
if (!message.mentions.users.size) {
const avatarAuthor = new Discord.RichEmbed()
.setColor(0x333333)
.setAuthor(message.author.username)
.setImage(message.author.avatarURL)
message.channel.send(avatarAuthor);
let mention = message.mentions.members.first();
const avatarMention = new Discord.RichEmbed()
.setColor(0x333333)
.setAuthor(mention.user.username)
.setImage(mention.user.avatarURL)
message.channel.send(avatarMention);
你有一个支票 if (!message.mentions.users.size) {
,只有当你没有提到某人时才会发出命令 运行。您需要在代码中使用 else {
或执行以下操作:
if (message.content.startsWith(config.prefix + 'avatar')) {
const user = message.mentions.users.first() || message.author;
const avatarEmbed = new Discord.RichEmbed()
.setColor(0x333333)
.setAuthor(user.username)
.setImage(user.avatarURL);
message.channel.send(avatarEmbed);
}
const user = message.mentions.users.first() || message.author;
尝试获取提到的用户,但如果找不到任何人,它将使用作者使用过的用户。
也可以这样使用:
if (!message.mentions.users.size) {
message.channel.send('Nobody was mentioned');
return;
}
// continue command here, after guard clause
if (message.content.startsWith(prefix + 'avatar')) {
let user = message.mentions.users.first();
if(!user) user = message.author;
let color = message.member.displayHexColor;
if (color == '#000000') color = message.member.hoistRole.hexColor;
const embed = new Discord.RichEmbed()
.setImage(user.avatarURL)
.setColor(color)
message.channel.send({embed});
}
if(message.content.startsWith(prefix+'av')){
if(message.mentions.users.size){
let member=message.mentions.users.first()
if(member){
const emb=new Discord.MessageEmbed().setImage(member.displayAvatarURL()).setTitle(member.username)
message.channel.send(emb)
}
else{
message.channel.send("Sorry none found with that name")
}
}else{
const emb=new Discord.MessageEmbed().setImage(message.author.displayAvatarURL()).setTitle(message.author.username)
message.channel.send(emb)
}
}
没有什么比 avatarUrl
更好的了,除非你已经定义了它。
使用此代码获取用户的 url:
message.channel.send("https://cdn.discordapp.com/avatars/"+message.author.id+"/"+message.author.avatar+".jpeg");
只需将message.author
替换为提到的用户
这些是有效答案的更新版本
if (message.content.startsWith(config.prefix + 'avatar')) {
const user = msg.mentions.users.first() || msg.author;
const avatarEmbed = new MessageEmbed()
.setColor(0x333333)
.setAuthor(`${user.username}'s Avatar`)
.setImage(
`https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.png?size=256`
);
msg.lineReply(avatarEmbed);
}
这使用了 discord 的头像 url 和 msg.lineReply(avatarEmbed);是一个发送嵌入作为对消息的回复的函数
我的
if (msg.content.startsWith(prefix + 'avatar')) {
const user = msg.mentions.users.first() || msg.author;
const avatarEmbed = new MessageEmbed()
.setColor('')
.setAuthor(`${user.username}'s Avatar`)
.setImage(
`https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.png?size=256`
);
msg.reply(avatarEmbed);
}
})