Discord.js Bot速率限制

时间:2020-07-29 09:56:36

标签: node.js discord.js

所以我想在线上传我的Discord机器人,但我想防止用户向其发送垃圾邮件。 因此,如果用户运行!help机器人回答,但如果用户在延迟过期之前运行!help,则延迟为5秒,机器人说:wait some time before using this command again。 我也希望延迟仅适用于消息作者,而不影响其他用户。 我正在使用命令处理程序,是否可以制作类似module.exports.delay的东西?

1 个答案:

答案 0 :(得分:0)

为此,您可以使用以下时间戳记:

let msgTimestamp = [];
if(message.content === "?" + "help") {
    if(typeof msgTimestamp[0] !== "undefined") {
        if(msgTimestamp[0] + 5000 < Date.now()) {
            message.channel.send("Here embed of command help.");
            msgTimestamp = [];
        } else {
            message.channel.send("wait some time before using this command again.");
        }
    } else {
        msgTimestamp.push(Date.now());
        message.channel.send("Here embed of command help.");
    }
}

在此代码中,您使用时间戳,检查消息的内容是否与您要使用的命令完全一致,如果用户已经发送了消息,则包含消息时间戳的变量已满,然后检查如果变量的typeof不是未定义的,那么您检查id,则用户发送消息的时间戳小于实际时间戳+您想要多少延迟!