Как мне удалить роль с ботом-диссонансом через определенное время?(Javascript) - PullRequest
0 голосов
/ 28 декабря 2018

Мой код выглядит следующим образом:

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). Как я уже сказал, я хочу, чтобы это делалось автоматически, чтобы пользователю не пришлось удалять роль с помощью команды.Я также хочу иметь возможность вводить другие команды (в основном, приостанавливать других людей), пока бот считает время до приостановки.Как бы я поступил так?У меня есть идея, возможно, каждую минуту проверять, прошло ли> х количество минут с момента приостановки.

...