#javascript #discord #discord.js
#javascript #Discord #discord.js
Вопрос:
часть команды kicking работает правильно, а затем корректно отправляет сообщение о том, что она ударила упомянутого человека. Однако я хочу, чтобы бот отправил сообщение о том, что вам нужно упомянуть пользователя, если пользователь не был упомянут. Я также хочу, чтобы бот отправил сообщение, если у игрока, пытающегося использовать бота, нет надлежащих разрешений, чтобы ударить кого-то, или если бот не может ударить человека, которого пользователь пытается использовать для удара ботом.
Это мой код для того, что я пытаюсь сделать.
Crashbot.on('message', message => {
if (message.member.hasPermission("KICK_MEMBERS")) {
if (message.content.startsWith(prefix 'kick')) {
const user = message.mentions.users.first();
if (user) {
const member = message.guild.member(user);
if (member) {
member.kick('optional reason that will display in the audit logs')
.then(() => {
// We let the message author know we were able to kick the person
message.reply(`Successfully kicked ${user.tag}`);
})
.catch(err => {
message.reply('I was unable to kick that user');
console.error(err);
});
} else {
message.reply("You need to mention a user to kick");
}
}
}
}
});
Комментарии:
1. Можете ли вы предоставить более конкретные подробности по проблеме? Что вы привязали?
Ответ №1:
Это тот, который я использую. Он проверяет, упоминали ли вы что-либо для начала, он выдает вам предупреждающее сообщение, если он не может найти пользователя, это не сработает, если у вас нет разрешения пинать людей, и если он не может пнуть человека, он скажет вам, что он не мог его пнуть. Кроме того, вы можете указать необязательную причину для запуска после.
Пример использования: !kick @Apolko24 Неправильное использование слов
const kUser = message.guild.member(message.mentions.users.first());
if (!args[0]) return message.channel.send('Please mention someone');
if (!kUser) return message.channel.send(`I can't find ${args[0]}`);
if (!message.member.hasPermission('KICK_MEMBERS')) return message.channel.send("You can't kick users");
if (kUser.hasPermission('MANAGE_GUILD')) return message.channel.send("That user can't be kicked");
const kReason = args.join(" ").slice(22);
if (kReason) {
const kickEmbed = new MessageEmbed()
.setTitle("Kick")
.setColor(0xbbffff)
.addField("Kicked user:", `${kUser}`)
.addField("Kicked by:", `${message.author}`)
.addField("Reason", kReason)
message.guild.member(kUser).kick();
message.channel.send(kickEmbed);
} else {
const kickEmbed = new MessageEmbed()
.setTitle("Kick")
.setColor(0xbbffff)
.addField("Kicked user:", `${kUser}`)
.addField("Kicked by:", `${message.author}`)
message.guild.member(kUser).kick();
message.channel.send(kickEmbed);
}
(вы должны поместить это в свое заявление if (message.content.StartsWith(prefix ‘kick’)))