discord.js - 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);
有什么我做错了吗?
解决方案
好的,我想出了我自己的问题。我所做的是而不是使用
${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 或提及禁止时显示。
推荐阅读
- unix - 如何从日期的第一个 grep grep 输出?
- amazon-web-services - 我创建了一个 aws 私有 api 网关,但不知道在哪里可以找到公共 dns 名称
- javascript - 函数中的项目未推送到数组
- actionscript-3 - 如何将 ActionScript 2 SWF 文件转换为 ActionScript 3 SWF 文件
- bluetooth - 如何设置 Bluez 5 在配对期间询问密码
- python - 将 Python 3.6.5 列表转换为表格
- batch-file - 将文本文件中的特定行读取到批处理文件中的集合“lineinfo=text on line 1 or 2”
- php - 如何从Windows将图像保存到Linux上的文件夹中
- c - 数组末尾显示随机字符
- visual-studio - 如何为 Visual Studio 创建一个可以直接与 TFS 交互的扩展?