Мой код выглядит следующим образом:
async run(message, args)
{
if(message.content.split(" ").length === 3 && message.content.split(" ")
[0] == '!suspend' && message.content.split(" ")[1].startsWith("<") &&
message.content.split(" ")[1].endsWith(">"))
{
var nab = message.content.split(" ")[1]; // 2nd item in array when text is split by spaces, (ex. `@user`)
var nabwoo = message.content.split(" ")[2]; //3rd item in array when the text is split by spaces, (ex. `12h`)
let role = message.guild.roles.find(r => r.name === "Suspended");
//nab is the users id
let member = message.mentions.members.first();
member.addRole(role);
message.channel.sendMessage('Done.');
}
}
Предполагается, что мой код будет применять роль с именем 'Suspended'
к кому-то после такого сообщения, как! suspend @user blank.
Все отлично работает,за исключением того, что я не уверен, как удалить роль через определенное время.Есть метод member.removeRole(role)
, но как мне сделать это автоматически через определенное время?Я хочу, чтобы там был ввод 3 команд.!suspend @person timeInHours (with or without units).
Как я уже сказал, я хочу, чтобы это делалось автоматически, чтобы пользователю не пришлось удалять роль с помощью команды.Я также хочу иметь возможность вводить другие команды (в основном, приостанавливать других людей), пока бот считает время до приостановки.Как бы я поступил так?У меня есть идея, возможно, каждую минуту проверять, прошло ли> х количество минут с момента приостановки.