首页 > 解决方案 > discord.js 没有在提及时获得用户标签

问题描述

我有一个禁止命令,您可以在其中提及用户或使用他们的 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

解决方案


好的,我想出了我自己的问题。我所做的是而不是使用

${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 或提及禁止时显示。


推荐阅读