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