как узнать что сообщение было отправлено discord.js?
Я создаю бота Discord и у меня есть вопрос касательно команды бана. Я хочу, чтобы пользователь получал сообщение о том, что он был забанен в ЛС. Но, если просто поставить отправку сообщения перед баном, то бот не успевает отправить сообщение из-за обработки сообщения дискордом (насколько я понимаю). Как можно подождать отправки сообщения и после этого уже банить пользователя? Код сейчас:
if(message.member.hasPermission('MANAGE_ROLES') || message.member.hasPermission('ADMINISTRATOR')) {
const { member, mentions } = message;
const target = mentions.users.first();
if( target ) {
const banned = message.guild.members.cache.get(target.id);
if(banned.hasPermission('MANAGE_ROLES') == false && banned.hasPermission('ADMINISTRATOR') == false) {
client.users.fetch(`${target.id}`).then(user => {
user.send(`Ты был забанен на сервере X модератором <@${member.id}>`);
});
message.channel.send(`Босс <@${member.id}>, нарушитель <@${target.id}> был забанен!`);
banned.ban();
} else {
message.channel.send(`<@${member.id}>, ты не имеешь права банить модераторов!`);
}
} else {
message.channel.send(`<@${member.id}>, выбери для начала КОГО ты забанить хочешь.`);
}
} else {
message.channel.send(`Извини, <@${message.member.id}>, у тебя нет права банить!`);
}
Ответы (1 шт):
Автор решения: T0hich71
→ Ссылка
В данном случае необходимо использовать промис:
message.channel.send(`Босс <@${member.id}>, нарушитель <@${target.id}> был забанен!`)
.then(banned.ban());
В этом случае команда banned.ban будет выполнена только когда завершится выполнение message.channel.send.