From 873330e99108c86b38a12cc3516b22d19c95efc7 Mon Sep 17 00:00:00 2001 From: calzoneman Date: Fri, 29 Nov 2013 21:09:19 -0600 Subject: [PATCH] Fix #312 --- lib/channel.js | 6 ++++-- lib/user.js | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/lib/channel.js b/lib/channel.js index 98a8c8f9..36f5235a 100644 --- a/lib/channel.js +++ b/lib/channel.js @@ -2122,7 +2122,7 @@ Channel.prototype.tryUpdateOptions = function(user, data) { if ("afk_timeout" in data) { data.afk_timeout = parseInt(data.afk_timeout); - if(data.afk_timeout < 0) + if (isNaN(data.afk_timeout) || data.afk_timeout < 0) data.afk_timeout = 0; } @@ -2144,12 +2144,14 @@ Channel.prototype.tryUpdateOptions = function(user, data) { this.opts.chat_antiflood_params.cooldown = c; continue; } - this.opts[key] = data[key]; if(key === "afk_timeout" && this.opts[key] != data[key]) { + console.log(typeof data[key], data[key]); + this.opts[key] = data[key]; this.users.forEach(function (u) { u.autoAFK(); }); } + this.opts[key] = data[key]; } } diff --git a/lib/user.js b/lib/user.js index d29784aa..5810931e 100644 --- a/lib/user.js +++ b/lib/user.js @@ -111,12 +111,22 @@ User.prototype.autoAFK = function () { if (self.awaytimer) clearTimeout(self.awaytimer); - if (!self.inChannel() || self.channel.opts.afk_timeout === 0) + if (!self.inChannel()) { return; + } + + var timeout = parseFloat(self.channel.opts.afk_timeout); + if (isNaN(timeout)) { + return; + } + + if (timeout <= 0) { + return; + } self.awaytimer = setTimeout(function () { self.setAFK(true); - }, self.channel.opts.afk_timeout * 1000); + }, timeout * 1000); }; User.prototype.kick = function (reason) {