mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-13 10:03:31 +01:00
Added callback fallbacks, create server & channels
This commit is contained in:
317
lib/Client.js
317
lib/Client.js
@@ -107,6 +107,7 @@ var Client = (function () {
|
|||||||
value: function login() {
|
value: function login() {
|
||||||
var email = arguments.length <= 0 || arguments[0] === undefined ? "foo@bar.com" : arguments[0];
|
var email = arguments.length <= 0 || arguments[0] === undefined ? "foo@bar.com" : arguments[0];
|
||||||
var password = arguments.length <= 1 || arguments[1] === undefined ? "pass1234" : arguments[1];
|
var password = arguments.length <= 1 || arguments[1] === undefined ? "pass1234" : arguments[1];
|
||||||
|
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err, token) {} : arguments[2];
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
@@ -125,11 +126,13 @@ var Client = (function () {
|
|||||||
self.state = 4; //set state to disconnected
|
self.state = 4; //set state to disconnected
|
||||||
self.trigger("disconnected");
|
self.trigger("disconnected");
|
||||||
self.websocket.close();
|
self.websocket.close();
|
||||||
|
callback(err);
|
||||||
reject(err);
|
reject(err);
|
||||||
} else {
|
} else {
|
||||||
self.state = 2; //set state to logged in (not yet ready)
|
self.state = 2; //set state to logged in (not yet ready)
|
||||||
self.token = res.body.token; //set our token
|
self.token = res.body.token; //set our token
|
||||||
self.trySendConnData();
|
self.trySendConnData();
|
||||||
|
callback(null, self.token);
|
||||||
resolve(self.token);
|
resolve(self.token);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -141,6 +144,7 @@ var Client = (function () {
|
|||||||
}, {
|
}, {
|
||||||
key: "logout",
|
key: "logout",
|
||||||
value: function logout() {
|
value: function logout() {
|
||||||
|
var callback = arguments.length <= 0 || arguments[0] === undefined ? function (err) {} : arguments[0];
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
@@ -148,7 +152,63 @@ var Client = (function () {
|
|||||||
|
|
||||||
request.post(Endpoints.LOGOUT).set("authorization", self.token).end(function (err, res) {
|
request.post(Endpoints.LOGOUT).set("authorization", self.token).end(function (err, res) {
|
||||||
|
|
||||||
if (err) reject(err);else resolve();
|
if (err) {
|
||||||
|
callback(err);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
callback(null);
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "createServer",
|
||||||
|
value: function createServer(name, region) {
|
||||||
|
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err, server) {} : arguments[2];
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
|
request.post(Endpoints.SERVERS).set("authorization", self.token).send({
|
||||||
|
name: name,
|
||||||
|
region: region
|
||||||
|
}).end(function (err, res) {
|
||||||
|
if (err) {
|
||||||
|
callback(err);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
var srv = self.addServer(res.body);
|
||||||
|
callback(null, srv);
|
||||||
|
resolve(srv);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "createChannel",
|
||||||
|
value: function createChannel(server, channelName, channelType) {
|
||||||
|
var callback = arguments.length <= 3 || arguments[3] === undefined ? function (err, chann) {} : arguments[3];
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
|
request.post(Endpoints.SERVERS + "/" + self.resolveServerID(server) + "/channels").set("authorization", self.token).send({
|
||||||
|
name: channelName,
|
||||||
|
type: channelType
|
||||||
|
}).end(function (err, res) {
|
||||||
|
|
||||||
|
if (err) {
|
||||||
|
callback(err);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
var server = self.getServer("id", res.body.guild_id);
|
||||||
|
var chann = self.addChannel(res.body, res.body.guild_id);
|
||||||
|
server.addChannel(chann);
|
||||||
|
callback(null, chann);
|
||||||
|
resolve(chann);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -205,31 +265,6 @@ var Client = (function () {
|
|||||||
var _server = _step.value;
|
var _server = _step.value;
|
||||||
|
|
||||||
var server = self.addServer(_server);
|
var server = self.addServer(_server);
|
||||||
|
|
||||||
var _iteratorNormalCompletion2 = true;
|
|
||||||
var _didIteratorError2 = false;
|
|
||||||
var _iteratorError2 = undefined;
|
|
||||||
|
|
||||||
try {
|
|
||||||
for (var _iterator2 = _server.channels[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
||||||
var channel = _step2.value;
|
|
||||||
|
|
||||||
server.channels.push(self.addChannel(channel, server.id));
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
_didIteratorError2 = true;
|
|
||||||
_iteratorError2 = err;
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (!_iteratorNormalCompletion2 && _iterator2["return"]) {
|
|
||||||
_iterator2["return"]();
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
if (_didIteratorError2) {
|
|
||||||
throw _iteratorError2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
_didIteratorError = true;
|
_didIteratorError = true;
|
||||||
@@ -259,27 +294,27 @@ var Client = (function () {
|
|||||||
self.debug("received message");
|
self.debug("received message");
|
||||||
|
|
||||||
var mentions = [];
|
var mentions = [];
|
||||||
var _iteratorNormalCompletion3 = true;
|
var _iteratorNormalCompletion2 = true;
|
||||||
var _didIteratorError3 = false;
|
var _didIteratorError2 = false;
|
||||||
var _iteratorError3 = undefined;
|
var _iteratorError2 = undefined;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (var _iterator3 = data.mentions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
for (var _iterator2 = data.mentions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||||
var mention = _step3.value;
|
var mention = _step2.value;
|
||||||
|
|
||||||
mentions.push(self.addUser(mention));
|
mentions.push(self.addUser(mention));
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
_didIteratorError3 = true;
|
_didIteratorError2 = true;
|
||||||
_iteratorError3 = err;
|
_iteratorError2 = err;
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
if (!_iteratorNormalCompletion3 && _iterator3["return"]) {
|
if (!_iteratorNormalCompletion2 && _iterator2["return"]) {
|
||||||
_iterator3["return"]();
|
_iterator2["return"]();
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
if (_didIteratorError3) {
|
if (_didIteratorError2) {
|
||||||
throw _iteratorError3;
|
throw _iteratorError2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -323,27 +358,27 @@ var Client = (function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var mentions = [];
|
var mentions = [];
|
||||||
var _iteratorNormalCompletion4 = true;
|
var _iteratorNormalCompletion3 = true;
|
||||||
var _didIteratorError4 = false;
|
var _didIteratorError3 = false;
|
||||||
var _iteratorError4 = undefined;
|
var _iteratorError3 = undefined;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (var _iterator4 = info.mentions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
for (var _iterator3 = info.mentions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||||
var mention = _step4.value;
|
var mention = _step3.value;
|
||||||
|
|
||||||
mentions.push(self.addUser(mention));
|
mentions.push(self.addUser(mention));
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
_didIteratorError4 = true;
|
_didIteratorError3 = true;
|
||||||
_iteratorError4 = err;
|
_iteratorError3 = err;
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
if (!_iteratorNormalCompletion4 && _iterator4["return"]) {
|
if (!_iteratorNormalCompletion3 && _iterator3["return"]) {
|
||||||
_iterator4["return"]();
|
_iterator3["return"]();
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
if (_didIteratorError4) {
|
if (_didIteratorError3) {
|
||||||
throw _iteratorError4;
|
throw _iteratorError3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -399,31 +434,6 @@ var Client = (function () {
|
|||||||
//if server doesn't already exist because duh
|
//if server doesn't already exist because duh
|
||||||
|
|
||||||
var serv = self.addServer(data);
|
var serv = self.addServer(data);
|
||||||
|
|
||||||
var _iteratorNormalCompletion5 = true;
|
|
||||||
var _didIteratorError5 = false;
|
|
||||||
var _iteratorError5 = undefined;
|
|
||||||
|
|
||||||
try {
|
|
||||||
for (var _iterator5 = data.channels[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
|
|
||||||
var channel = _step5.value;
|
|
||||||
|
|
||||||
serv.channels.push(self.addChannel(channel, serv.id));
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
_didIteratorError5 = true;
|
|
||||||
_iteratorError5 = err;
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (!_iteratorNormalCompletion5 && _iterator5["return"]) {
|
|
||||||
_iterator5["return"]();
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
if (_didIteratorError5) {
|
|
||||||
throw _iteratorError5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
self.trigger("serverCreate", server);
|
self.trigger("serverCreate", server);
|
||||||
@@ -439,7 +449,7 @@ var Client = (function () {
|
|||||||
var chann = self.addChannel(data, data.guild_id);
|
var chann = self.addChannel(data, data.guild_id);
|
||||||
var srv = self.getServer("id", data.guild_id);
|
var srv = self.getServer("id", data.guild_id);
|
||||||
if (srv) {
|
if (srv) {
|
||||||
srv.channels.push(chann);
|
srv.addChannel(chann);
|
||||||
}
|
}
|
||||||
self.trigger("channelCreate", chann);
|
self.trigger("channelCreate", chann);
|
||||||
}
|
}
|
||||||
@@ -554,26 +564,91 @@ var Client = (function () {
|
|||||||
}, {
|
}, {
|
||||||
key: "addServer",
|
key: "addServer",
|
||||||
value: function addServer(data) {
|
value: function addServer(data) {
|
||||||
if (!this.getServer("id", data.id)) {
|
|
||||||
this.serverCache.push(new Server(data, this));
|
var server = this.getServer("id", data.id);
|
||||||
|
|
||||||
|
if (!server) {
|
||||||
|
server = new Server(data, this);
|
||||||
|
if (data.channels) {
|
||||||
|
var _iteratorNormalCompletion4 = true;
|
||||||
|
var _didIteratorError4 = false;
|
||||||
|
var _iteratorError4 = undefined;
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (var _iterator4 = data.channels[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
||||||
|
var channel = _step4.value;
|
||||||
|
|
||||||
|
server.channels.push(this.addChannel(channel, server.id));
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
_didIteratorError4 = true;
|
||||||
|
_iteratorError4 = err;
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (!_iteratorNormalCompletion4 && _iterator4["return"]) {
|
||||||
|
_iterator4["return"]();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (_didIteratorError4) {
|
||||||
|
throw _iteratorError4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.serverCache.push(server);
|
||||||
}
|
}
|
||||||
return this.getServer("id", data.id);
|
|
||||||
|
return server;
|
||||||
}
|
}
|
||||||
|
|
||||||
//def getUser
|
//def getUser
|
||||||
}, {
|
}, {
|
||||||
key: "getUser",
|
key: "getUser",
|
||||||
value: function getUser(key, value) {
|
value: function getUser(key, value) {
|
||||||
|
var _iteratorNormalCompletion5 = true;
|
||||||
|
var _didIteratorError5 = false;
|
||||||
|
var _iteratorError5 = undefined;
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (var _iterator5 = this.userCache[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
|
||||||
|
var user = _step5.value;
|
||||||
|
|
||||||
|
if (user[key] === value) {
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
_didIteratorError5 = true;
|
||||||
|
_iteratorError5 = err;
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (!_iteratorNormalCompletion5 && _iterator5["return"]) {
|
||||||
|
_iterator5["return"]();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (_didIteratorError5) {
|
||||||
|
throw _iteratorError5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
//def getChannel
|
||||||
|
}, {
|
||||||
|
key: "getChannel",
|
||||||
|
value: function getChannel(key, value) {
|
||||||
var _iteratorNormalCompletion6 = true;
|
var _iteratorNormalCompletion6 = true;
|
||||||
var _didIteratorError6 = false;
|
var _didIteratorError6 = false;
|
||||||
var _iteratorError6 = undefined;
|
var _iteratorError6 = undefined;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (var _iterator6 = this.userCache[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
|
for (var _iterator6 = this.channelCache[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
|
||||||
var user = _step6.value;
|
var channel = _step6.value;
|
||||||
|
|
||||||
if (user[key] === value) {
|
if (channel[key] === value) {
|
||||||
return user;
|
return channel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -594,20 +669,20 @@ var Client = (function () {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//def getChannel
|
//def getServer
|
||||||
}, {
|
}, {
|
||||||
key: "getChannel",
|
key: "getServer",
|
||||||
value: function getChannel(key, value) {
|
value: function getServer(key, value) {
|
||||||
var _iteratorNormalCompletion7 = true;
|
var _iteratorNormalCompletion7 = true;
|
||||||
var _didIteratorError7 = false;
|
var _didIteratorError7 = false;
|
||||||
var _iteratorError7 = undefined;
|
var _iteratorError7 = undefined;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (var _iterator7 = this.channelCache[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
|
for (var _iterator7 = this.serverCache[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
|
||||||
var channel = _step7.value;
|
var server = _step7.value;
|
||||||
|
|
||||||
if (channel[key] === value) {
|
if (server[key] === value) {
|
||||||
return channel;
|
return server;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -628,40 +703,6 @@ var Client = (function () {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//def getServer
|
|
||||||
}, {
|
|
||||||
key: "getServer",
|
|
||||||
value: function getServer(key, value) {
|
|
||||||
var _iteratorNormalCompletion8 = true;
|
|
||||||
var _didIteratorError8 = false;
|
|
||||||
var _iteratorError8 = undefined;
|
|
||||||
|
|
||||||
try {
|
|
||||||
for (var _iterator8 = this.serverCache[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {
|
|
||||||
var server = _step8.value;
|
|
||||||
|
|
||||||
if (server[key] === value) {
|
|
||||||
return server;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
_didIteratorError8 = true;
|
|
||||||
_iteratorError8 = err;
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (!_iteratorNormalCompletion8 && _iterator8["return"]) {
|
|
||||||
_iterator8["return"]();
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
if (_didIteratorError8) {
|
|
||||||
throw _iteratorError8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
//def trySendConnData
|
//def trySendConnData
|
||||||
}, {
|
}, {
|
||||||
key: "trySendConnData",
|
key: "trySendConnData",
|
||||||
@@ -688,6 +729,16 @@ var Client = (function () {
|
|||||||
this.websocket.send(JSON.stringify(data));
|
this.websocket.send(JSON.stringify(data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
key: "resolveServerID",
|
||||||
|
value: function resolveServerID(resource) {
|
||||||
|
|
||||||
|
if (resource instanceof Server) {
|
||||||
|
return resource.id;
|
||||||
|
} else if (!isNaN(resource) && resource.length && resource.length === 17) {
|
||||||
|
return resource;
|
||||||
|
}
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
key: "uptime",
|
key: "uptime",
|
||||||
get: function get() {
|
get: function get() {
|
||||||
@@ -719,27 +770,27 @@ var Client = (function () {
|
|||||||
get: function get() {
|
get: function get() {
|
||||||
|
|
||||||
var msgs = [];
|
var msgs = [];
|
||||||
var _iteratorNormalCompletion9 = true;
|
var _iteratorNormalCompletion8 = true;
|
||||||
var _didIteratorError9 = false;
|
var _didIteratorError8 = false;
|
||||||
var _iteratorError9 = undefined;
|
var _iteratorError8 = undefined;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (var _iterator9 = this.channelCache[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {
|
for (var _iterator8 = this.channelCache[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {
|
||||||
var channel = _step9.value;
|
var channel = _step8.value;
|
||||||
|
|
||||||
msgs = msgs.concat(channel.messages);
|
msgs = msgs.concat(channel.messages);
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
_didIteratorError9 = true;
|
_didIteratorError8 = true;
|
||||||
_iteratorError9 = err;
|
_iteratorError8 = err;
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
if (!_iteratorNormalCompletion9 && _iterator9["return"]) {
|
if (!_iteratorNormalCompletion8 && _iterator8["return"]) {
|
||||||
_iterator9["return"]();
|
_iterator8["return"]();
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
if (_didIteratorError9) {
|
if (_didIteratorError8) {
|
||||||
throw _iteratorError9;
|
throw _iteratorError8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,11 @@ var Server = (function () {
|
|||||||
this.afkTimeout = data.afk_timeout;
|
this.afkTimeout = data.afk_timeout;
|
||||||
this.afkChannelId = data.afk_channel_id;
|
this.afkChannelId = data.afk_channel_id;
|
||||||
|
|
||||||
|
if (!data.members) {
|
||||||
|
data.members = [client.user];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var _iteratorNormalCompletion = true;
|
var _iteratorNormalCompletion = true;
|
||||||
var _didIteratorError = false;
|
var _didIteratorError = false;
|
||||||
var _iteratorError = undefined;
|
var _iteratorError = undefined;
|
||||||
@@ -116,6 +121,22 @@ var Server = (function () {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
key: "addChannel",
|
||||||
|
value: function addChannel(chann) {
|
||||||
|
if (!this.getChannel("id", chann.id)) {
|
||||||
|
this.channels.push(chann);
|
||||||
|
}
|
||||||
|
return chann;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "addMember",
|
||||||
|
value: function addMember(member) {
|
||||||
|
if (!this.getMember("id", member.id)) {
|
||||||
|
this.members.push(member);
|
||||||
|
}
|
||||||
|
return member;
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
key: "iconURL",
|
key: "iconURL",
|
||||||
get: function get() {
|
get: function get() {
|
||||||
|
|||||||
115
src/Client.js
115
src/Client.js
@@ -115,7 +115,7 @@ class Client {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//def login
|
//def login
|
||||||
login(email = "foo@bar.com", password = "pass1234") {
|
login(email = "foo@bar.com", password = "pass1234", callback = function(err, token){}) {
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
@@ -136,45 +136,106 @@ class Client {
|
|||||||
self.state = 4; //set state to disconnected
|
self.state = 4; //set state to disconnected
|
||||||
self.trigger("disconnected");
|
self.trigger("disconnected");
|
||||||
self.websocket.close();
|
self.websocket.close();
|
||||||
|
callback(err);
|
||||||
reject(err);
|
reject(err);
|
||||||
} else {
|
} else {
|
||||||
self.state = 2; //set state to logged in (not yet ready)
|
self.state = 2; //set state to logged in (not yet ready)
|
||||||
self.token = res.body.token; //set our token
|
self.token = res.body.token; //set our token
|
||||||
self.trySendConnData();
|
self.trySendConnData();
|
||||||
|
callback(null, self.token);
|
||||||
resolve(self.token);
|
resolve(self.token);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}else{
|
} else {
|
||||||
reject(new Error("Client already logging in or ready"));
|
reject(new Error("Client already logging in or ready"));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logout(){
|
logout(callback = function(err){}) {
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
return new Promise(function(resolve, reject){
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
request
|
request
|
||||||
.post(Endpoints.LOGOUT)
|
.post(Endpoints.LOGOUT)
|
||||||
.set( "authorization", self.token )
|
.set("authorization", self.token)
|
||||||
.end(function(err, res){
|
.end(function (err, res) {
|
||||||
|
|
||||||
if(err)
|
if (err){
|
||||||
|
callback(err);
|
||||||
reject(err);
|
reject(err);
|
||||||
else
|
}else{
|
||||||
|
callback(null);
|
||||||
resolve();
|
resolve();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
createServer(name, region, callback = function(err, server){}) {
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
|
request
|
||||||
|
.post(Endpoints.SERVERS)
|
||||||
|
.set("authorization", self.token)
|
||||||
|
.send({
|
||||||
|
name: name,
|
||||||
|
region: region
|
||||||
|
})
|
||||||
|
.end(function (err, res) {
|
||||||
|
if (err) {
|
||||||
|
callback(err);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
var srv = self.addServer(res.body);
|
||||||
|
callback(null, srv);
|
||||||
|
resolve(srv);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
createChannel(server, channelName, channelType, callback = function(err, chann){}) {
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
|
request
|
||||||
|
.post(`${Endpoints.SERVERS}/${self.resolveServerID(server) }/channels`)
|
||||||
|
.set("authorization", self.token)
|
||||||
|
.send({
|
||||||
|
name: channelName,
|
||||||
|
type: channelType
|
||||||
|
})
|
||||||
|
.end(function (err, res) {
|
||||||
|
|
||||||
|
if (err) {
|
||||||
|
callback(err);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
var server = self.getServer("id", res.body.guild_id);
|
||||||
|
var chann = self.addChannel(res.body, res.body.guild_id);
|
||||||
|
server.addChannel(chann);
|
||||||
|
callback(null, chann);
|
||||||
|
resolve(chann);
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//def createws
|
//def createws
|
||||||
createws() {
|
createws() {
|
||||||
if (this.websocket)
|
if (this.websocket)
|
||||||
@@ -220,10 +281,6 @@ class Client {
|
|||||||
|
|
||||||
var server = self.addServer(_server);
|
var server = self.addServer(_server);
|
||||||
|
|
||||||
for (var channel of _server.channels) {
|
|
||||||
server.channels.push(self.addChannel(channel, server.id));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
self.trigger("ready");
|
self.trigger("ready");
|
||||||
self.readyTime = Date.now();
|
self.readyTime = Date.now();
|
||||||
@@ -340,10 +397,6 @@ class Client {
|
|||||||
|
|
||||||
var serv = self.addServer(data);
|
var serv = self.addServer(data);
|
||||||
|
|
||||||
for (var channel of data.channels) {
|
|
||||||
serv.channels.push(self.addChannel(channel, serv.id));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
self.trigger("serverCreate", server);
|
self.trigger("serverCreate", server);
|
||||||
@@ -359,7 +412,7 @@ class Client {
|
|||||||
var chann = self.addChannel(data, data.guild_id);
|
var chann = self.addChannel(data, data.guild_id);
|
||||||
var srv = self.getServer("id", data.guild_id);
|
var srv = self.getServer("id", data.guild_id);
|
||||||
if (srv) {
|
if (srv) {
|
||||||
srv.channels.push(chann);
|
srv.addChannel(chann);
|
||||||
}
|
}
|
||||||
self.trigger("channelCreate", chann);
|
self.trigger("channelCreate", chann);
|
||||||
|
|
||||||
@@ -472,10 +525,20 @@ class Client {
|
|||||||
|
|
||||||
//def addServer
|
//def addServer
|
||||||
addServer(data) {
|
addServer(data) {
|
||||||
if (!this.getServer("id", data.id)) {
|
|
||||||
this.serverCache.push(new Server(data, this));
|
var server = this.getServer("id", data.id);
|
||||||
|
|
||||||
|
if (!server) {
|
||||||
|
server = new Server(data, this);
|
||||||
|
if (data.channels) {
|
||||||
|
for (var channel of data.channels) {
|
||||||
|
server.channels.push(this.addChannel(channel, server.id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.serverCache.push(server);
|
||||||
}
|
}
|
||||||
return this.getServer("id", data.id);
|
|
||||||
|
return server;
|
||||||
}
|
}
|
||||||
|
|
||||||
//def getUser
|
//def getUser
|
||||||
@@ -533,6 +596,16 @@ class Client {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resolveServerID(resource) {
|
||||||
|
|
||||||
|
if (resource instanceof Server) {
|
||||||
|
return resource.id;
|
||||||
|
} else if (!isNaN(resource) && resource.length && resource.length === 17) {
|
||||||
|
return resource;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Client;
|
module.exports = Client;
|
||||||
@@ -11,6 +11,11 @@ class Server {
|
|||||||
this.afkTimeout = data.afk_timeout;
|
this.afkTimeout = data.afk_timeout;
|
||||||
this.afkChannelId = data.afk_channel_id;
|
this.afkChannelId = data.afk_channel_id;
|
||||||
|
|
||||||
|
if(!data.members){
|
||||||
|
data.members = [ client.user ];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (var member of data.members) {
|
for (var member of data.members) {
|
||||||
|
|
||||||
// first we cache the user in our Discord Client,
|
// first we cache the user in our Discord Client,
|
||||||
@@ -64,6 +69,20 @@ class Server {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addChannel(chann) {
|
||||||
|
if (!this.getChannel("id", chann.id)) {
|
||||||
|
this.channels.push(chann);
|
||||||
|
}
|
||||||
|
return chann;
|
||||||
|
}
|
||||||
|
|
||||||
|
addMember(member){
|
||||||
|
if (!this.getMember("id", member.id)){
|
||||||
|
this.members.push(member);
|
||||||
|
}
|
||||||
|
return member;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Server;
|
module.exports = Server;
|
||||||
15
test/bot.js
15
test/bot.js
@@ -2,7 +2,7 @@ var Discord = require("../lib/index.js");
|
|||||||
var Auth = require("./auth.json");
|
var Auth = require("./auth.json");
|
||||||
var mybot = new Discord.Client();
|
var mybot = new Discord.Client();
|
||||||
|
|
||||||
mybot.login(Auth.email+"a", Auth.password)
|
mybot.login(Auth.email, Auth.password)
|
||||||
|
|
||||||
.then(function (token) {
|
.then(function (token) {
|
||||||
console.log("wooo!");
|
console.log("wooo!");
|
||||||
@@ -12,6 +12,15 @@ mybot.login(Auth.email+"a", Auth.password)
|
|||||||
|
|
||||||
mybot.on("ready", function () {
|
mybot.on("ready", function () {
|
||||||
console.log("Ready!");
|
console.log("Ready!");
|
||||||
|
|
||||||
|
mybot.createServer("myServer", "london").then(function(server){
|
||||||
|
console.log("New server! Based in "+server.region+" and is called "+server.name);
|
||||||
|
|
||||||
|
mybot.createChannel(server, "wooof", "text", function(err, chann){
|
||||||
|
console.log(chann.name);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
mybot.on("message", function (msg) {
|
mybot.on("message", function (msg) {
|
||||||
@@ -39,3 +48,7 @@ mybot.on("serverRemoveMember", function (user) {
|
|||||||
mybot.on("userUpdate", function (oldUser, newUser) {
|
mybot.on("userUpdate", function (oldUser, newUser) {
|
||||||
console.log(oldUser, "vs", newUser);
|
console.log(oldUser, "vs", newUser);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mybot.on("channelCreate", function(chann){
|
||||||
|
console.log(chann);
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user