diff --git a/src/Client.js b/src/Client.js index 9b2355969..7cfd38bf6 100644 --- a/src/Client.js +++ b/src/Client.js @@ -1,6 +1,8 @@ //discord.js modules 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"); @@ -151,6 +153,34 @@ class Client { } return this.userCache.get(data.id); } + + //def addChannel + addChannel(data) { + if (!this.channelCache.has(data.id)){ + this.channelCache.set(data.id, new Channel(data, SERVER)); + } + return this.channelCache.get(data.id); + } + + //def addServer + addServer(data){ + if(!this.serverCache.has(data.id)){ + this.serverCache.set(data.id, new Server(data, this)); + } + return this.serverCache.get(data.id); + } + + //def getUser + getUser(key, value){ + for (var userRow of this.userCache) { + var user = userRow[1]; + if (user[key] === value) { + return user; + } + } + + return null; + } //def trySendConnData trySendConnData() { diff --git a/src/channel.js b/src/channel.js index 16a8e4a51..79006f309 100644 --- a/src/channel.js +++ b/src/channel.js @@ -1,28 +1,21 @@ -var List = require("./list.js").List; +class Channel { -exports.Channel = function(name, server, type, id, isPrivate){ - - if(!type){ //there's no second argument - var channel = name; - name = channel.name; - server = server; - type = channel.type; - id = channel.id; - isPrivate = channel.is_private; + constructor(data, server) { + this.server = server; + this.name = data.name; + this.type = data.type; + this.id = data.id; + //this.isPrivate = isPrivate; //not sure about the implementation of this... + } + + get client() { + return this.server.client; + } + + equals(object) { + return object.id === this.id; } - this.name = name; - this.server = server; - this.type = type; - this.id = id; - this.isPrivate = isPrivate; - this.messages = new List("id", 5000); } -exports.Channel.equals = function(otherChannel){ - if(otherChannel.id === this.id){ - return true; - } else { - return false; - } -} +module.exports = Channel; \ No newline at end of file diff --git a/src/server.js b/src/server.js index 63cdf2ae9..7dd2733db 100644 --- a/src/server.js +++ b/src/server.js @@ -44,6 +44,10 @@ class Server { return this.getChannel("name", "general"); } + get owner() { + return this.client.getUser("id", this.ownerID); + } + // get/set getChannel(key, value) { for (var channel of this.channels) {