【发布时间】:2021-09-21 04:54:36
【问题描述】:
我正在尝试通过提及来发出取消禁令命令。如果有一种方法可以通过提及获取用户 ID 而无需他们在我正在执行命令的实际行会中,那就太好了。
尝试执行时,我收到一条错误消息,告诉我它无法读取未定义的属性“id”。但是当我在用户在公会时这样做时,它可以很好地阅读它。
我的代码:
const Discord = require("discord.js");
module.exports = {
name: "unban",
aliases: [],
usage: "{prefix}unban <user>",
category: "moderation",
desc: "Unban a banned user.",
run: async (client, message, args) => {
let unbanned1 = message.mentions.users.first().id || args[0];
let unbanned = await client.users.fetch(unbanned1);
let ban = await message.guild.fetchBans();
// MESSAGES
if (!args[0]) {
return message.channel.send('❌ - Please specify a user to unban.')
}
if (!unbanned) {
return message.channel.send(`❌ - User not found.`)
}
if (!ban.get(unbanned.id)) {
return message.channel.send("❌ - This user hasn't been banned.")
}
// No author permissions
if (!message.member.hasPermission("BAN_MEMBERS")) {
return channel.send("❌ You do not have permissions to ban members.")
}
// No bot permissions
if (!message.guild.me.hasPermission("BAN_MEMBERS")) {
return channel.send("❌ I do not have permissions to ban members. Please contact a staff member")
}
var user = ban.get(unbanned1);
message.guild.members.unban(unbanned1);
const embed = new Discord.MessageEmbed()
.setColor("GREEN")
.setAuthor(user.user.username, user.user.displayAvatarURL({ dynamic: true }))
.setDescription(`${user.user.tag} got unbanned:`)
.setTitle("User Unbanned Successfully")
.addField(`By:`, `${message.author.tag}`, true)
.setThumbnail(user.user.displayAvatarURL({ dynamic: false }))
.setFooter(message.member.displayName, message.author.avatarURL({ dynamic: true }))
.setTimestamp()
message.channel.send(embed);
},
};
提前谢谢你。
【问题讨论】:
标签: javascript discord discord.js