mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
rewriting... woo
This commit is contained in:
228
lib/Client.js
228
lib/Client.js
@@ -7,6 +7,8 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
||||
|
||||
var Endpoints = require("./Endpoints.js");
|
||||
var User = require("./User.js");
|
||||
var Server = require("./Server.js");
|
||||
var Channel = require("./Channel.js");
|
||||
|
||||
//node modules
|
||||
var request = require("superagent");
|
||||
@@ -44,30 +46,65 @@ var Client = (function () {
|
||||
4 - disconnected
|
||||
*/
|
||||
|
||||
this.userCache = new Map();
|
||||
this.channelCache = new Map();
|
||||
this.serverCache = new Map();
|
||||
this.userCache = [];
|
||||
this.channelCache = [];
|
||||
this.serverCache = [];
|
||||
}
|
||||
|
||||
_createClass(Client, [{
|
||||
key: "debug",
|
||||
key: "sendPacket",
|
||||
value: function sendPacket(JSONObject) {
|
||||
if (this.websocket.readyState === 1) {
|
||||
this.websocket.send(JSON.stringify(JSONObject));
|
||||
}
|
||||
}
|
||||
|
||||
//def debug
|
||||
}, {
|
||||
key: "debug",
|
||||
value: function debug(message) {
|
||||
console.log(message);
|
||||
}
|
||||
}, {
|
||||
key: "on",
|
||||
value: function on(event, fn) {
|
||||
this.events.set(event, fn);
|
||||
}
|
||||
}, {
|
||||
key: "off",
|
||||
value: function off(event, fn) {
|
||||
this.events["delete"](event);
|
||||
}
|
||||
}, {
|
||||
key: "keepAlive",
|
||||
value: function keepAlive() {
|
||||
this.debug("keep alive triggered");
|
||||
this.sendPacket({
|
||||
op: 1,
|
||||
d: Date.now()
|
||||
});
|
||||
}
|
||||
|
||||
//def trigger
|
||||
}, {
|
||||
key: "trigger",
|
||||
value: function trigger(event) {}
|
||||
value: function trigger(event) {
|
||||
var args = [];
|
||||
for (var arg in arguments) {
|
||||
args.push(arguments[arg]);
|
||||
}
|
||||
var evt = this.events.get(event);
|
||||
if (evt) {
|
||||
evt.apply(this, args.slice(1));
|
||||
}
|
||||
}
|
||||
|
||||
//def login
|
||||
}, {
|
||||
key: "login",
|
||||
value: function login() {
|
||||
var email = arguments.length <= 0 || arguments[0] === undefined ? "foo@bar.com" : arguments[0];
|
||||
var password = arguments.length <= 1 || arguments[1] === undefined ? "pass1234s" : arguments[1];
|
||||
var password = arguments.length <= 1 || arguments[1] === undefined ? "pass1234" : arguments[1];
|
||||
var callback = arguments.length <= 2 || arguments[2] === undefined ? function () {} : arguments[2];
|
||||
|
||||
var self = this;
|
||||
@@ -141,6 +178,40 @@ var Client = (function () {
|
||||
|
||||
self.user = self.addUser(data.user);
|
||||
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator = data.guilds[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var _server = _step.value;
|
||||
|
||||
self.addServer(_server);
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator["return"]) {
|
||||
_iterator["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self.trigger("ready");
|
||||
self.debug("cached " + self.serverCache.length + " servers, " + self.channelCache.length + " channels and " + self.userCache.length + " users.");
|
||||
|
||||
console.log(self.channelCache[0]);
|
||||
|
||||
setInterval(function () {
|
||||
self.keepAlive.apply(self);
|
||||
}, data.heartbeat_interval);
|
||||
|
||||
break;
|
||||
default:
|
||||
self.debug("received unknown packet");
|
||||
@@ -155,10 +226,134 @@ var Client = (function () {
|
||||
}, {
|
||||
key: "addUser",
|
||||
value: function addUser(data) {
|
||||
if (!this.userCache.has(data.id)) {
|
||||
this.userCache.set(data.id, new User(data));
|
||||
if (!this.getUser("id", data.id)) {
|
||||
this.userCache.push(new User(data));
|
||||
}
|
||||
return this.userCache.get(data.id);
|
||||
return this.getUser("id", data.id);
|
||||
}
|
||||
|
||||
//def addChannel
|
||||
}, {
|
||||
key: "addChannel",
|
||||
value: function addChannel(data, serverId) {
|
||||
if (!this.getChannel("id", data.id)) {
|
||||
this.channelCache.push(new Channel(data, this.getServer("id", serverId)));
|
||||
}
|
||||
return this.getChannel("id", data.id);
|
||||
}
|
||||
|
||||
//def addServer
|
||||
}, {
|
||||
key: "addServer",
|
||||
value: function addServer(data) {
|
||||
if (!this.getServer("id", data.id)) {
|
||||
this.serverCache.push(new Server(data, this));
|
||||
}
|
||||
return this.getServer("id", data.id);
|
||||
}
|
||||
|
||||
//def getUser
|
||||
}, {
|
||||
key: "getUser",
|
||||
value: function getUser(key, value) {
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator2 = this.userCache[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var user = _step2.value;
|
||||
|
||||
if (user[key] === value) {
|
||||
return user;
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion2 && _iterator2["return"]) {
|
||||
_iterator2["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
//def getChannel
|
||||
}, {
|
||||
key: "getChannel",
|
||||
value: function getChannel(key, value) {
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator3 = this.channelCache[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var channel = _step3.value;
|
||||
|
||||
if (channel[key] === value) {
|
||||
return channel;
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion3 && _iterator3["return"]) {
|
||||
_iterator3["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
//def getServer
|
||||
}, {
|
||||
key: "getServer",
|
||||
value: function getServer() {
|
||||
var key = arguments.length <= 0 || arguments[0] === undefined ? "id" : arguments[0];
|
||||
var value = arguments.length <= 1 || arguments[1] === undefined ? "abc123" : arguments[1];
|
||||
var _iteratorNormalCompletion4 = true;
|
||||
var _didIteratorError4 = false;
|
||||
var _iteratorError4 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator4 = this.serverCache[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
||||
var server = _step4.value;
|
||||
|
||||
if (server[key] === value) {
|
||||
return server;
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError4 = true;
|
||||
_iteratorError4 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion4 && _iterator4["return"]) {
|
||||
_iterator4["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError4) {
|
||||
throw _iteratorError4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
//def trySendConnData
|
||||
@@ -192,6 +387,21 @@ var Client = (function () {
|
||||
get: function get() {
|
||||
return this.state === 3;
|
||||
}
|
||||
}, {
|
||||
key: "servers",
|
||||
get: function get() {
|
||||
return this.serverCache;
|
||||
}
|
||||
}, {
|
||||
key: "channels",
|
||||
get: function get() {
|
||||
return this.channelCache;
|
||||
}
|
||||
}, {
|
||||
key: "users",
|
||||
get: function get() {
|
||||
return this.userCache;
|
||||
}
|
||||
}]);
|
||||
|
||||
return Client;
|
||||
|
||||
Reference in New Issue
Block a user