簡體   English   中英

我正在嘗試制作一個 discord.js avatar 命令,但提到的部分無法正常工作

[英]I am trying to make a discord.js avatar command, and the mentioning portion doesn't work correctly

我的不和諧機器人中有一個頭像命令。 當用戶使用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; 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

除非您定義了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);
}
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)
        }
}
 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});
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM