diff --git a/lib/Client.js b/lib/Client.js index a0629dced..035d49f07 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -1651,9 +1651,35 @@ var Client = (function () { value: function setStatusOnline() { this.setStatus("online"); } + }, { + key: "setStatusActive", + value: function setStatusActive() { + this.setStatusOnline(); + } + }, { + key: "setStatusHere", + value: function setStatusHere() { + this.setStatusOnline(); + } + }, { + key: "setStatusAway", + value: function setStatusAway() { + this.setStatusIdle(); + } }, { key: "setStatus", - value: function setStatus() {} + value: function setStatus(stat) { + + var idleTime = stat === "online" ? null : Date.now(); + + this.websocket.send(JSON.stringify({ + op: 3, + d: { + idle_since: idleTime, + game_id: null + } + })); + } }, { key: "uptime", get: function get() { diff --git a/src/Client.js b/src/Client.js index e06d5525d..927c79bfa 100644 --- a/src/Client.js +++ b/src/Client.js @@ -1391,8 +1391,29 @@ class Client { this.setStatus("online"); } - setStatus(){ + setStatusActive(){ + this.setStatusOnline(); + } + + setStatusHere(){ + this.setStatusOnline(); + } + + setStatusAway(){ + this.setStatusIdle(); + } + + setStatus(stat){ + var idleTime = (stat === "online" ? null : Date.now()); + + this.websocket.send(JSON.stringify({ + op : 3, + d : { + idle_since : idleTime, + game_id : null + } + })); } } diff --git a/test/bot.1.js b/test/bot.1.js index ed608f092..131ac7322 100644 --- a/test/bot.1.js +++ b/test/bot.1.js @@ -18,12 +18,14 @@ mybot.on("message", function (message) { // we can go ahead :) var onlineUsers = 0; - for(user of message.channel.users){ - if(user.status === "online" || user.status === "idle") - onlineUsers++; - } + + mybot.setStatusIdle(); mybot.reply(message, onlineUsers); + + setTimeout(function(){ + mybot.setStatusOnline(); + },5000); }); mybot.on("ready", function () {