Merge pull request #16 from discord-js/indev

Indev
This commit is contained in:
hydrabolt
2015-08-22 18:47:02 +01:00
2 changed files with 669 additions and 650 deletions

View File

@@ -64,7 +64,7 @@ hydrabot.on("messageDelete", function(message){
})
hydrabot.on("messageUpdate", function(former, edit){
/*
if(former){
if(former.author.equals(this.user) || former.content === edit.content){
@@ -77,7 +77,7 @@ hydrabot.on("messageUpdate", function(former, edit){
hydrabot.sendMessage(channel, "**"+former.author.username + "** (edit from message "+seconds+" seconds ago):\n " + former.content);
}
*/
})
hydrabot.on( "message", function( message ) {

View File

@@ -11,7 +11,8 @@ var WebSocket = require( 'ws' );
var Internal = require("./lib/internal.js").Internal;
var TokenManager = require("./lib/TokenManager.js").TokenManager;
var serverCreateRequests = [].globalLoginTime = Date.now();
var serverCreateRequests = [],
globalLoginTime = Date.now();
function tp(time) {
return Date.now() - time;
@@ -42,15 +43,14 @@ exports.PMChannel = PMChannel;
* @param {Number} [options.maxmessage=5000] The maximum amount of messages to be stored per channel.
*/
exports.Client = function( options ) {
exports.Client = function (shouldUseTokenManager) {
/**
* Contains the options of the client
* @attribute options
* @type {Object}
*/
this.options = options || {};
this.options.maxmessage = 5000;
if (shouldUseTokenManager)
this.tokenManager = new TokenManager("./", "tokencache.json");
/**
* Contains the token used to authorise HTTP requests and WebSocket connection. Received when login was successful.
@@ -250,7 +250,7 @@ exports.Client.prototype.cacheServer = function( id, cb, members ) {
function cacheChannels(dat) {
var channelList = dat;
for ( channel of channelList ) {
for (var channel of channelList) {
server.channels.add(new Channel(channel, server));
}
self.serverList.add(server);
@@ -288,6 +288,7 @@ exports.Client.prototype.login = function( email, password, callback, noCache )
self.connectWebsocket();
if (this.tokenManager) {
if (this.tokenManager.exists(email) && !noCache) {
var token = this.tokenManager.getToken(email, password);
@@ -299,7 +300,7 @@ exports.Client.prototype.login = function( email, password, callback, noCache )
self.debug("error getting token from caches, using default auth");
}
}
}
var time = Date.now();
Internal.XHR.login(email, password, function (err, token) {
if (err) {
@@ -550,6 +551,24 @@ exports.Client.prototype.connectWebsocket = function( cb ) {
self.user = newUsr;
}
} else if (dat.t === "GUILD_MEMBER_ADD") {
var srv = self.getServer(dat.d.guild_id);
if (srv) {
var usr = new User(dat.d.user);
srv.members.add(usr);
self.triggerEvent("serverMemberAdd", [usr]);
}
} else if (dat.t === "GUILD_MEMBER_REMOVE") {
var srv = self.getServer(dat.d.guild_id);
if (srv) {
var usr = new User(dat.d.user);
srv.members.removeElement(usr);
self.triggerEvent("serverMemberRemove", [usr]);
}
}
break;