一段时间后,如何使用Discord机器人删除角色? (JavaScript)

时间:2018-12-28 05:22:17

标签: javascript bots discord roles

  

我的代码如下:

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).正如我所说,我希望它自动完成,因此用户不必使用命令删除角色。我还希望能够在机器人计数直到取消暂停的时间时输入其他命令(基本上是暂停其他人)。我将如何去做呢?我的想法是,也许每分钟检查一次自暂停后的分钟数是否大于x。

1 个答案:

答案 0 :(得分:1)

我也不是很确定,因为我还是陌生的,因为您可能会在一段时间后使用.then(msg => {msg.delete(600)})删除一条消息,我想您可以做类似的事情,例如替换msg.delete( 600),用一种摆脱角色的方法对不起(如果这没用的话),我只是在建议一种方法。