Added joinServer

This commit is contained in:
hydrabolt
2015-11-18 17:13:06 +00:00
parent e7df5bd400
commit c342ca4116
9 changed files with 81 additions and 34 deletions

View File

@@ -254,6 +254,25 @@ var Client = (function (_EventEmitter) {
}); });
}; };
// def joinServer
Client.prototype.joinServer = function joinServer(invite) {
var callback = arguments.length <= 1 || arguments[1] === undefined ? function (err, srv) {} : arguments[1];
var self = this;
return new Promise(function (resolve, reject) {
self.internal.joinServer(invite).then(function (srv) {
callback(null, srv);
resolve(srv);
})["catch"](function (e) {
callback(e);
reject(e);
});
});
};
// def createServer
Client.prototype.createServer = function createServer(name) { Client.prototype.createServer = function createServer(name) {
var region = arguments.length <= 1 || arguments[1] === undefined ? "london" : arguments[1]; var region = arguments.length <= 1 || arguments[1] === undefined ? "london" : arguments[1];
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err, srv) {} : arguments[2]; var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err, srv) {} : arguments[2];
@@ -677,6 +696,11 @@ var Client = (function (_EventEmitter) {
get: function get() { get: function get() {
return this.internal.uptime; return this.internal.uptime;
} }
}, {
key: "user",
get: function get() {
return this.internal.user;
}
}]); }]);
return Client; return Client;

View File

@@ -148,10 +148,9 @@ var InternalClient = (function () {
var self = this; var self = this;
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
invite = self.resolver.resolveInvite(invite); invite = self.resolver.resolveInviteID(invite);
if (invite) { if (invite) {
request.post(Endpoints.INVITE(invite)).set("authorization", self.token).end(function (err, res) {
request.post(Endpoints.INVITE(invite.id)).set("authorization", self.token).end(function (err, res) {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
@@ -1088,7 +1087,7 @@ var InternalClient = (function () {
}; };
this.websocket.onerror = function (e) { this.websocket.onerror = function (e) {
console.log(e); client.emit("error", e);
}; };
this.websocket.onmessage = function (e) { this.websocket.onmessage = function (e) {

View File

@@ -21,9 +21,9 @@ var Resolver = (function () {
this.internal = internal; this.internal = internal;
} }
Resolver.prototype.resolveInvite = function resolveInvite(resource) { Resolver.prototype.resolveInviteID = function resolveInviteID(resource) {
if (resource instanceof Invite) { if (resource instanceof Invite) {
return resource; return resource.id;
} else if (typeof resource == "string" || resource instanceof String) { } else if (typeof resource == "string" || resource instanceof String) {
if (resource.indexOf("http") === 0) { if (resource.indexOf("http") === 0) {

View File

@@ -88,7 +88,7 @@ var Server = (function (_Equality) {
var user = client.internal.users.get("id", presence.user.id); var user = client.internal.users.get("id", presence.user.id);
if (user) { if (user) {
user.status = presence.status; user.status = presence.status;
user.gameId = presence.game_id; user.gameID = presence.game_id;
} }
} }
} }

View File

@@ -42,6 +42,10 @@ class Client extends EventEmitter {
return this.internal.uptime; return this.internal.uptime;
} }
get user() {
return this.internal.user;
}
// def login // def login
login(email, password, cb = function (err, token) { }) { login(email, password, cb = function (err, token) { }) {
var self = this; var self = this;
@@ -259,6 +263,23 @@ class Client extends EventEmitter {
}); });
} }
// def joinServer
joinServer(invite, callback = function (err, srv) { }) {
var self = this;
return new Promise((resolve, reject) => {
self.internal.joinServer(invite)
.then(srv => {
callback(null, srv);
resolve(srv);
})
.catch(e => {
callback(e);
reject(e);
});
});
}
// def createServer
createServer(name, region="london", callback=function(err, srv){}){ createServer(name, region="london", callback=function(err, srv){}){
var self = this; var self = this;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {

View File

@@ -144,11 +144,10 @@ class InternalClient {
var self = this; var self = this;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
invite = self.resolver.resolveInvite(invite); invite = self.resolver.resolveInviteID(invite);
if (invite) { if (invite) {
request request
.post(Endpoints.INVITE(invite.id)) .post(Endpoints.INVITE(invite))
.set("authorization", self.token) .set("authorization", self.token)
.end((err, res) => { .end((err, res) => {
if (err) { if (err) {
@@ -1165,7 +1164,7 @@ class InternalClient {
} }
this.websocket.onerror = (e) => { this.websocket.onerror = (e) => {
console.log(e); client.emit("error", e);
} }
this.websocket.onmessage = (e) => { this.websocket.onmessage = (e) => {

View File

@@ -17,9 +17,9 @@ class Resolver {
this.internal = internal; this.internal = internal;
} }
resolveInvite(resource){ resolveInviteID(resource){
if(resource instanceof Invite){ if(resource instanceof Invite){
return resource; return resource.id;
}else if (typeof resource == "string" || resource instanceof String) { }else if (typeof resource == "string" || resource instanceof String) {
if (resource.indexOf("http") === 0) { if (resource.indexOf("http") === 0) {

View File

@@ -64,7 +64,7 @@ class Server extends Equality {
var user = client.internal.users.get("id", presence.user.id); var user = client.internal.users.get("id", presence.user.id);
if (user) { if (user) {
user.status = presence.status; user.status = presence.status;
user.gameId = presence.game_id; user.gameID = presence.game_id;
} }
} }
} }

View File

@@ -9,6 +9,10 @@ client.on("message", m => {
if(m.content === "death"){ if(m.content === "death"){
m.channel.delete(); m.channel.delete();
} }
if (m.content.startsWith("join: ")) {
var invite = m.content.split(" ")[1];
client.joinServer(invite).then(console.log).catch(console.log);
}
if (m.content === "&init") { if (m.content === "&init") {
for (var channel of m.channel.server.channels) { for (var channel of m.channel.server.channels) {
if (channel instanceof Discord.VoiceChannel) { if (channel instanceof Discord.VoiceChannel) {