【问题标题】:Check how much time has passed since event called (discord.js)检查自事件调用(discord.js)以来已经过去了多少时间
【发布时间】:2022-01-23 04:00:36
【问题描述】:

我想知道如何检查自触发事件(在我的情况下为 interactionCreate)以来已经过去了多少时间,并在一定时间后执行某些操作。这是我当前的代码:

  client.once('interactionCreate', interaction => {
                    if (!interaction.isButton()) return;

                    if (interaction.customId == '1') {
                        // do something 
                    } else {
                        // do something else
                    }

                })

它会检查按下了 2 个按钮中的哪一个,但我也想检查是否没有按下任何按钮,比如 20 秒,在这种情况下,它会做一些不同的事情,比如发送消息,但最重要的是让它无法与 2 个按钮交互。

我该怎么做?

【问题讨论】:

标签: javascript node.js discord discord.js


【解决方案1】:

要在事件被调用后的某个时间做某事,你应该像这样使用 setTimeout:

setTimeout(() => {
    // do something after 5 seconds
}, 5000)

您可以创建一个变量来存储是否单击了另一个按钮,然后在超时后检查该变量是真还是假。

您的整个逻辑如下所示:

let buttonWasClicked = false;

client.once('interactionCreate', interaction => {
    if (!interaction.isButton()) return;
    if(!buttonWasClicked) buttonWasClicked = true;
    if (interaction.customId == '1') {
        // do something 
    } else {
        // do something else
    }
    setTimeout(() => {
        // after waiting 20 seconds
        if(buttonWasClicked) {
            // do something if a button was clicked
        } else {
            // do something if no button was clicked
        }
    }, 20000)
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多