【问题标题】:discord.js not getting a users tag on mentiondiscord.js 没有在提及时获得用户标签
【发布时间】:2021-02-19 08:51:22
【问题描述】:

我有一个禁止命令,您可以在其中提及用户或使用他们的 ID。

当在嵌入中提到用户时,它会出现 undefined 已被禁止!我希望它提出在提及用户或通过他们的 id 禁止他们时被禁止的 user#0001。

当前代码:

const switchc = bot.emojis.cache.find((emoji) => emoji.name === "switchcancel");
const switche = bot.emojis.cache.find((emoji) => emoji.name === "switch");

if (!message.member.hasPermission(["BAN_MEMBERS", "ADMINISTRATOR"]))
    return message.channel.send(
        `${switchc} **You do not have the permissions to complete this command!**`
    );

let banMember =
    message.mentions.members.first() ||
    (await bot.users.fetch(args[0]).catch((err) => console.log(err)));
if (!banMember)
    return await message.channel.send(
        `${switchc} **Please supply a user to be banned!**`
    );

let reason = args.slice(1).join(" ");
if (!reason) reason = "No reason was provided!";

if (!message.guild.me.hasPermission(["BAN_MEMBERS", "ADMINISTRATOR"]))
    return message.channel.send(
        `${switchc} **I do not have permission to complete this command!**`
    );

message.guild.members
    .ban(banMember, { days: 1, reason: reason })
    .catch((err) => console.log(err));
const bEmbed = new MessageEmbed()
    .setColor("RANDOM")
    .setDescription(`**${banMember.tag}** has been banned!`);

message.channel.send(bEmbed);

是不是我做错了什么?

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    由于您不需要成员对象,因此最简单的解决方法是:

    let banMember = message.mentions.users.first() || await bot.users.fetch(args[0]).catch(err => console.log(err))
    

    在提及 getter 中使用用户而不是成员。

    【讨论】:

      【解决方案2】:

      好的,我找到了自己的问题。我所做的不是使用

      ${banMember.tag}
      

      我改为定义标签

      let tag = banMember.tag || banMember.user.tag
      

      新代码如下

      const switchc = bot.emojis.cache.find(emoji => emoji.name === "switchcancel");
            const switche = bot.emojis.cache.find(emoji => emoji.name === "switch");
            
      if(!message.member.hasPermission(["BAN_MEMBERS", "ADMINISTRATOR"])) return message.channel.send(`${switchc} **You do not have the permissions to complete this command!**`)
      
      
      let banMember = message.mentions.members.first() || await bot.users.fetch(args[0]).catch(err => console.log(err))
      if(!banMember) return await message.channel.send(`${switchc} **Please supply a user to be banned!**`)
      
      let tag = banMember.tag || banMember.user.tag
      let reason = args.slice(1).join(" ")
      if(!reason) reason = "No reason was provided!"
      
      if (!message.guild.me.hasPermission(["BAN_MEMBERS", "ADMINISTRATOR"])) return message.channel.send(`${switchc} **I do not have permission to complete this command!**`)
      
        message.guild.members.ban(banMember, { days: 1 , reason: reason}).catch(err => console.log(err))
      const bEmbed = new MessageEmbed()
      .setColor("RANDOM")
      .setDescription(`**${tag}** has been banned!`)
      
          message.channel.send(bEmbed)
      
      
      }
      }
      

      这将允许在按 ID 或提及禁止时显示用户标签。

      【讨论】:

        猜你喜欢
        • 2020-04-02
        • 2021-12-03
        • 2022-01-01
        • 2019-10-19
        • 1970-01-01
        • 1970-01-01
        • 2021-03-28
        • 2021-01-09
        • 2020-09-08
        相关资源
        最近更新 更多