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) {
var region = arguments.length <= 1 || arguments[1] === undefined ? "london" : arguments[1];
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err, srv) {} : arguments[2];
@@ -677,6 +696,11 @@ var Client = (function (_EventEmitter) {
get: function get() {
return this.internal.uptime;
}
}, {
key: "user",
get: function get() {
return this.internal.user;
}
}]);
return Client;

View File

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

View File

@@ -21,9 +21,9 @@ var Resolver = (function () {
this.internal = internal;
}
Resolver.prototype.resolveInvite = function resolveInvite(resource) {
Resolver.prototype.resolveInviteID = function resolveInviteID(resource) {
if (resource instanceof Invite) {
return resource;
return resource.id;
} else if (typeof resource == "string" || resource instanceof String) {
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);
if (user) {
user.status = presence.status;
user.gameId = presence.game_id;
user.gameID = presence.game_id;
}
}
}

View File

@@ -41,6 +41,10 @@ class Client extends EventEmitter {
get uptime(){
return this.internal.uptime;
}
get user() {
return this.internal.user;
}
// def login
login(email, password, cb = function (err, token) { }) {
@@ -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){}){
var self = this;
return new Promise((resolve, reject) => {

View File

@@ -143,17 +143,16 @@ class InternalClient {
joinServer(invite) {
var self = this;
return new Promise((resolve, reject) => {
invite = self.resolver.resolveInvite(invite);
if(invite){
invite = self.resolver.resolveInviteID(invite);
if (invite) {
request
.post(Endpoints.INVITE(invite.id))
.post(Endpoints.INVITE(invite))
.set("authorization", self.token)
.end((err, res) => {
if(err){
if (err) {
reject(err);
}else{
} else {
// valid server, wait until it is received via ws and cached
var inter = setInterval(() => {
if (self.servers.get("id", res.body.guild.id)) {
@@ -163,11 +162,11 @@ class InternalClient {
}, 20);
}
});
}else{
} else {
reject(new Error("Not a valid invite"));
}
});
}
@@ -1099,29 +1098,29 @@ class InternalClient {
}
//def ack
ack(msg){
ack(msg) {
var self = this;
return new Promise((resolve, reject) => {
msg = self.resolver.resolveMessage(msg);
if(msg){
request
.post(Endpoints.CHANNEL_MESSAGE(msg.channel.id, msg.id)+"/ack")
if (msg) {
request
.post(Endpoints.CHANNEL_MESSAGE(msg.channel.id, msg.id) + "/ack")
.set("authorization", self.token)
.end((err) => {
if(err){
if (err) {
reject(err);
}else{
} else {
resolve();
}
});
}else{
} else {
reject(new Error("Message does not exist"));
}
});
}
@@ -1165,7 +1164,7 @@ class InternalClient {
}
this.websocket.onerror = (e) => {
console.log(e);
client.emit("error", e);
}
this.websocket.onmessage = (e) => {
@@ -1235,7 +1234,7 @@ class InternalClient {
break;
case PacketType.MESSAGE_UPDATE:
// format https://discordapi.readthedocs.org/en/latest/reference/channels/messages.html#message-format
var channel = self.channels.get("id", data.channel_id)|| self.private_channels.get("id", data.channel_id);
var channel = self.channels.get("id", data.channel_id) || self.private_channels.get("id", data.channel_id);
if (channel) {
// potentially blank
var msg = channel.messages.get("id", data.id);

View File

@@ -17,9 +17,9 @@ class Resolver {
this.internal = internal;
}
resolveInvite(resource){
resolveInviteID(resource){
if(resource instanceof Invite){
return resource;
return resource.id;
}else if (typeof resource == "string" || resource instanceof String) {
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);
if (user) {
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"){
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") {
for (var channel of m.channel.server.channels) {
if (channel instanceof Discord.VoiceChannel) {