0

我正在为我在 plug.dj 上运行的房间编写自定义脚本,并且我已经为 AFK、工作和睡眠实现了自动消息警报。因此,如果您将状态设置为 AFK 并且有人提及您,他们会收到与 AFK 状态相关的自动消息。这是代码:

function autoRespond(data) {
var a = data.type == "mention" && Models.room.data.staff[data.fromID] && Models.room.data.staff[data.fromID] >= Models.user.BOUNCER, b = data.message.indexOf('@') >0;
if (data.type == "mention") {
    if (Models.user.data.status == 1)
    API.sendChat("@" + data.from + " automsg: I'm currently AFK");
    if (Models.user.data.status ==2)
    API.sendChat("@" + data.from + "automsg: I'm currently working");
    if (Models.user.data.status ==3)
    API.sendChat("@" + data.from + " automsg: I'm currently sleeping");
    }

}

我想要做的是,如果有人在被设置为状态之一时被提及,我想在自动消息之前添加一个计时器,因为它再次处于活动状态。假设我的设置为AFK,然后有人提到我,他们会收到一条自动消息回复,然后如果有人在计时器内提及我,则无法发送自动消息(不延迟然后延迟后发送)。我希望我能得到正确的帮助,谢谢。

4

1 回答 1

0

您可以使用 setTimeout 如下:

HTML:

<button id="button">message</button>
<div></div>

JavaScript:

$('#button').on('click', function(){
    sendMessage();   
}); 
var sended = false ;
function  sendMessage(){
    if( !sended ){
        $('div').html($('div').html() + '<br />new message');
        sended = true;
        wait( 2000 );
    }
}

function wait( miliseconds ){
     setTimeout(function(){
         sended = false;
     }, miliseconds)   
}

你可以在 jsfiddle看到这个工作

于 2013-04-25T20:54:06.320 回答