Added new functions

setStatusIdle() - aliases setStatusAway
setStatusOnline() - aliases setStatusActive and setStatusHere

setPlayingGame() - uses GameID resolvable
This commit is contained in:
hydrabolt
2015-11-21 14:55:15 +00:00
parent ca6f8d6fc1
commit 65698cf525
33 changed files with 10222 additions and 212 deletions

View File

@@ -796,6 +796,30 @@ class Client extends EventEmitter {
});
});
}
setStatusIdle() {
this.setStatus("idle");
}
setStatusOnline(cb = function (err) { }) {
this.setStatus("online");
}
setStatusActive() {
this.setStatusOnline();
}
setStatusHere() {
this.setStatusOnline();
}
setStatusAway() {
this.setStatusIdle();
}
setPlayingGame(game) {
this.setStatus(null, game);
}
}
module.exports = Client;

View File

@@ -974,22 +974,28 @@ class InternalClient {
//def setStatus
setStatus(idleStatus, gameID) {
var self = this;
self.idleStatus = idleStatus || self.idleStatus || null;
if(idleStatus){
if(idleStatus == "online" || idleStatus == "here" || idleStatus == "available"){
self.idleStatus = null;
}
}
self.gameID = self.resolver.resolveGameID(gameID) || self.gameID || null;
return new Promise((resolve, reject) => {
var packet = {
op: 3,
d: {
idle_since: null,
game_id: null
idle_since: self.idleStatus,
game_id: self.gameID
}
};
if (idleStatus) {
if (self.idleStatus == "idle" || self.idleStatus == "away") {
packet.d.idle_since = Date.now();
}
if (typeof gameID === "number") {
packet.d.game_id = gameID;
}
self.sendWS(packet);

View File

@@ -11,12 +11,29 @@ var User = require("../../Structures/User.js"),
PMChannel = require("../../Structures/PMChannel.js"),
Server = require("../../Structures/Server.js"),
Message = require("../../Structures/Message.js"),
Invite = require("../../Structures/Invite.js");
Invite = require("../../Structures/Invite.js"),
Games = require("../../../ref/gameMap.js");
class Resolver {
constructor(internal) {
this.internal = internal;
}
resolveGameID(resource) {
if (!isNaN(resource) && parseInt(resource) % 1 === 0) {
return resource;
} else if (typeof resource == "string" || resource instanceof String) {
for (var game of Games) {
if (game.name.toUpperCase() === resource.toUpperCase()) {
return game.id;
}
}
}
return null;
}
resolveToBase64(resource) {
if (resource instanceof Buffer) {