From fdfd41dd8c9e1786c2fd9c00d5a5a28c913993de Mon Sep 17 00:00:00 2001 From: Brian Tanner Date: Tue, 16 Aug 2016 23:53:07 +0700 Subject: [PATCH] add .toObject() method to structures (#522) * add .toObject() method to structures * add compiled PMChannel change from last commit * uncomment members in VoiceChannel toObject method --- lib/Structures/Emoji.js | 24 +++++++++ lib/Structures/Message.js | 45 ++++++++++++++--- lib/Structures/PMChannel.js | 24 +++++++++ lib/Structures/PermissionOverwrite.js | 24 +++++++++ lib/Structures/Role.js | 24 +++++++++ lib/Structures/Server.js | 73 ++++++++++++++++++++------- lib/Structures/ServerChannel.js | 70 +++++++++++++++++-------- lib/Structures/TextChannel.js | 9 ++++ lib/Structures/User.js | 30 +++++++++++ lib/Structures/VoiceChannel.js | 12 +++++ lib/Util/TokenCacher-shim.js | 24 ++++----- src/Structures/Emoji.js | 11 ++++ src/Structures/Message.js | 16 ++++++ src/Structures/PMChannel.js | 11 ++++ src/Structures/PermissionOverwrite.js | 11 ++++ src/Structures/Role.js | 11 ++++ src/Structures/Server.js | 16 ++++++ src/Structures/ServerChannel.js | 13 +++++ src/Structures/TextChannel.js | 9 ++++ src/Structures/User.js | 17 +++++++ src/Structures/VoiceChannel.js | 10 ++++ 21 files changed, 426 insertions(+), 58 deletions(-) diff --git a/lib/Structures/Emoji.js b/lib/Structures/Emoji.js index 5a38280e9..ebadc7ad3 100644 --- a/lib/Structures/Emoji.js +++ b/lib/Structures/Emoji.js @@ -30,6 +30,30 @@ var Emoji = (function () { this.managed = data.managed; } + Emoji.prototype.toObject = function toObject() { + var keys = ['id', 'name', 'roleList', 'colons', 'managed'], + obj = {}; + + for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var k = _ref; + + obj[k] = this[k]; + } + + return obj; + }; + _createClass(Emoji, [{ key: "roles", get: function get() { diff --git a/lib/Structures/Message.js b/lib/Structures/Message.js index c906ef57c..a18b66b5b 100644 --- a/lib/Structures/Message.js +++ b/lib/Structures/Message.js @@ -79,12 +79,11 @@ var Message = (function (_Equality) { }); } - Message.prototype.isMentioned = function isMentioned(user) { - user = this.client.internal.resolver.resolveUser(user); - if (!user) { - return false; - } - for (var _iterator = this.mentions, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + Message.prototype.toObject = function toObject() { + var keys = ['id', 'timestamp', 'everyoneMentioned', 'pinned', 'editedTimestamp', 'content', 'cleanContent', 'tts', 'attachments', 'embeds'], + obj = {}; + + for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { var _ref; if (_isArray) { @@ -96,7 +95,39 @@ var Message = (function (_Equality) { _ref = _i.value; } - var mention = _ref; + var k = _ref; + + obj[k] = this[k]; + } + + obj.channelID = this.channel ? this.channel.id : null; + obj.serverID = this.server ? this.server.id : null; + obj.author = this.author.toObject(); + obj.mentions = this.mentions.map(function (m) { + return m.toObject(); + }); + + return obj; + }; + + Message.prototype.isMentioned = function isMentioned(user) { + user = this.client.internal.resolver.resolveUser(user); + if (!user) { + return false; + } + for (var _iterator2 = this.mentions, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { + var _ref2; + + if (_isArray2) { + if (_i2 >= _iterator2.length) break; + _ref2 = _iterator2[_i2++]; + } else { + _i2 = _iterator2.next(); + if (_i2.done) break; + _ref2 = _i2.value; + } + + var mention = _ref2; if (mention.id == user.id) { return true; diff --git a/lib/Structures/PMChannel.js b/lib/Structures/PMChannel.js index 956cdf1ac..e16728148 100644 --- a/lib/Structures/PMChannel.js +++ b/lib/Structures/PMChannel.js @@ -44,6 +44,30 @@ var PMChannel = (function (_Channel) { return this.recipient.toString(); }; + PMChannel.prototype.toObject = function toObject() { + var keys = ['type', 'lastMessageID', 'recipient'], + obj = {}; + + for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var k = _ref; + + obj[k] = this[k]; + } + + return obj; + }; + PMChannel.prototype.sendMessage = function sendMessage() { return this.client.sendMessage.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments)); }; diff --git a/lib/Structures/PermissionOverwrite.js b/lib/Structures/PermissionOverwrite.js index 6682c168a..5dadf1ebf 100644 --- a/lib/Structures/PermissionOverwrite.js +++ b/lib/Structures/PermissionOverwrite.js @@ -20,6 +20,30 @@ var PermissionOverwrite = (function () { // returns an array of allowed permissions + PermissionOverwrite.prototype.toObject = function toObject() { + var keys = ['id', 'type', 'allow', 'deny'], + obj = {}; + + for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var k = _ref; + + obj[k] = this[k]; + } + + return obj; + }; + PermissionOverwrite.prototype.setAllowed = function setAllowed(allowedArray) { var _this = this; diff --git a/lib/Structures/Role.js b/lib/Structures/Role.js index 468d52af7..1d4af008b 100644 --- a/lib/Structures/Role.js +++ b/lib/Structures/Role.js @@ -42,6 +42,30 @@ var Role = (function () { this.mentionable = data.mentionable || false; } + Role.prototype.toObject = function toObject() { + var keys = ['id', 'position', 'permissions', 'name', 'managed', 'hoist', 'color', 'mentionable'], + obj = {}; + + for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var k = _ref; + + obj[k] = this[k]; + } + + return obj; + }; + Role.prototype.serialise = function serialise(explicit) { var _this = this; diff --git a/lib/Structures/Server.js b/lib/Structures/Server.js index 52aeaa925..389b90ac7 100644 --- a/lib/Structures/Server.js +++ b/lib/Structures/Server.js @@ -200,6 +200,43 @@ var Server = (function (_Equality) { } } + Server.prototype.toObject = function toObject() { + var keys = ['id', 'name', 'region', 'ownerID', 'icon', 'afkTimeout', 'afkChannelID', 'large', 'memberCount'], + obj = {}; + + for (var _iterator3 = keys, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { + var _ref3; + + if (_isArray3) { + if (_i3 >= _iterator3.length) break; + _ref3 = _iterator3[_i3++]; + } else { + _i3 = _iterator3.next(); + if (_i3.done) break; + _ref3 = _i3.value; + } + + var k = _ref3; + + obj[k] = this[k]; + } + + obj.members = this.members.map(function (member) { + return member.toObject(); + }); + obj.channels = this.channels.map(function (channel) { + return channel.toObject(); + }); + obj.roles = this.roles.map(function (role) { + return role.toObject(); + }); + obj.emojis = this.emojis.map(function (emoji) { + return emoji.toObject(); + }); + + return obj; + }; + Server.prototype.detailsOf = function detailsOf(user) { var _this2 = this; @@ -285,19 +322,19 @@ var Server = (function (_Equality) { }; Server.prototype.eventVoiceLeave = function eventVoiceLeave(user) { - for (var _iterator3 = this.channels.getAll("type", "voice"), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { - var _ref3; + for (var _iterator4 = this.channels.getAll("type", "voice"), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) { + var _ref4; - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; + if (_isArray4) { + if (_i4 >= _iterator4.length) break; + _ref4 = _iterator4[_i4++]; } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; + _i4 = _iterator4.next(); + if (_i4.done) break; + _ref4 = _i4.value; } - var chan = _ref3; + var chan = _ref4; if (chan.members.has("id", user.id)) { chan.members.remove(user); @@ -310,19 +347,19 @@ var Server = (function (_Equality) { Server.prototype.equalsStrict = function equalsStrict(obj) { if (obj instanceof Server) { - for (var _iterator4 = strictKeys, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) { - var _ref4; + for (var _iterator5 = strictKeys, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) { + var _ref5; - if (_isArray4) { - if (_i4 >= _iterator4.length) break; - _ref4 = _iterator4[_i4++]; + if (_isArray5) { + if (_i5 >= _iterator5.length) break; + _ref5 = _iterator5[_i5++]; } else { - _i4 = _iterator4.next(); - if (_i4.done) break; - _ref4 = _i4.value; + _i5 = _iterator5.next(); + if (_i5.done) break; + _ref5 = _i5.value; } - var key = _ref4; + var key = _ref5; if (obj[key] !== this[key]) { return false; diff --git a/lib/Structures/ServerChannel.js b/lib/Structures/ServerChannel.js index e299920ba..35bc8c9cc 100644 --- a/lib/Structures/ServerChannel.js +++ b/lib/Structures/ServerChannel.js @@ -47,6 +47,34 @@ var ServerChannel = (function (_Channel) { } } + ServerChannel.prototype.toObject = function toObject() { + var keys = ['id', 'name', 'type', 'position'], + obj = {}; + + for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var k = _ref; + + obj[k] = this[k]; + } + + obj.permissionOverwrites = this.permissionOverwrites.map(function (p) { + return p.toObject(); + }); + + return obj; + }; + ServerChannel.prototype.permissionsOf = function permissionsOf(userOrRole) { userOrRole = this.client.internal.resolver.resolveUser(userOrRole); if (userOrRole) { @@ -74,26 +102,7 @@ var ServerChannel = (function (_Channel) { var permissions = 0; - for (var _iterator = userRoles, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var serverRole = _ref; - - if (serverRole) { - permissions |= serverRole.permissions; - } - } - - for (var _iterator2 = roleOverwrites.concat(memberOverwrites), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { + for (var _iterator2 = userRoles, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { var _ref2; if (_isArray2) { @@ -105,7 +114,26 @@ var ServerChannel = (function (_Channel) { _ref2 = _i2.value; } - var overwrite = _ref2; + var serverRole = _ref2; + + if (serverRole) { + permissions |= serverRole.permissions; + } + } + + for (var _iterator3 = roleOverwrites.concat(memberOverwrites), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { + var _ref3; + + if (_isArray3) { + if (_i3 >= _iterator3.length) break; + _ref3 = _iterator3[_i3++]; + } else { + _i3 = _iterator3.next(); + if (_i3.done) break; + _ref3 = _i3.value; + } + + var overwrite = _ref3; if (overwrite) { permissions = permissions & ~overwrite.deny; diff --git a/lib/Structures/TextChannel.js b/lib/Structures/TextChannel.js index e833c5256..74d807b6d 100644 --- a/lib/Structures/TextChannel.js +++ b/lib/Structures/TextChannel.js @@ -35,6 +35,15 @@ var TextChannel = (function (_ServerChannel) { /* warning! may return null */ + TextChannel.prototype.toObject = function toObject() { + var obj = _ServerChannel.prototype.toObject.call(this); + + obj.topic = this.topic; + obj.lastMessageID = this.lastMessageID; + + return obj; + }; + TextChannel.prototype.setTopic = function setTopic() { return this.client.setChannelTopic.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments)); }; diff --git a/lib/Structures/User.js b/lib/Structures/User.js index f1179972a..8c4e80d60 100644 --- a/lib/Structures/User.js +++ b/lib/Structures/User.js @@ -51,6 +51,36 @@ var User = (function (_Equality) { return this.mention(); }; + User.prototype.toObject = function toObject() { + var keys = ['id', 'username', 'discriminator', 'avatar', 'bot', 'status', 'game', 'note', 'voiceState', 'speaking'], + obj = {}; + + for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var k = _ref; + + obj[k] = this[k]; + } + + obj.typing = { + since: this.typing.since, + channelID: this.typing.channel ? this.typing.channel.id : null + }; + obj.voiceChannelID = this.voiceChannel ? this.voiceChannel.id : null; + + return obj; + }; + User.prototype.equalsStrict = function equalsStrict(obj) { if (obj instanceof User) return this.id === obj.id && this.username === obj.username && this.discriminator === obj.discriminator && this.avatar === obj.avatar && this.status === obj.status && (this.game === obj.game || this.game && obj.game && this.game.name === obj.game.name);else return false; }; diff --git a/lib/Structures/VoiceChannel.js b/lib/Structures/VoiceChannel.js index 51f99e0ba..f96d5c642 100644 --- a/lib/Structures/VoiceChannel.js +++ b/lib/Structures/VoiceChannel.js @@ -31,6 +31,18 @@ var VoiceChannel = (function (_ServerChannel) { this.bitrate = Math.round(this._bitrate / 1000); // store as kbps } + VoiceChannel.prototype.toObject = function toObject() { + var obj = _ServerChannel.prototype.toObject.call(this); + + obj.userLimit = this.userLimit; + obj.bitrate = this.bitrate; + obj.members = this.members.map(function (member) { + return member.toObject(); + }); + + return obj; + }; + VoiceChannel.prototype.join = function join() { var callback = arguments.length <= 0 || arguments[0] === undefined ? function () {} : arguments[0]; diff --git a/lib/Util/TokenCacher-shim.js b/lib/Util/TokenCacher-shim.js index 53412d365..f483e9575 100644 --- a/lib/Util/TokenCacher-shim.js +++ b/lib/Util/TokenCacher-shim.js @@ -6,23 +6,23 @@ exports.__esModule = true; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var TokenCacher = (function () { - function TokenCacher() { - _classCallCheck(this, TokenCacher); - } + function TokenCacher() { + _classCallCheck(this, TokenCacher); + } - TokenCacher.prototype.setToken = function setToken() {}; + TokenCacher.prototype.setToken = function setToken() {}; - TokenCacher.prototype.save = function save() {}; + TokenCacher.prototype.save = function save() {}; - TokenCacher.prototype.getToken = function getToken() { - return null; - }; + TokenCacher.prototype.getToken = function getToken() { + return null; + }; - TokenCacher.prototype.init = function init(ind) { - this.done = true; - }; + TokenCacher.prototype.init = function init(ind) { + this.done = true; + }; - return TokenCacher; + return TokenCacher; })(); exports["default"] = TokenCacher; diff --git a/src/Structures/Emoji.js b/src/Structures/Emoji.js index 9a722bbd0..e9ddef26d 100644 --- a/src/Structures/Emoji.js +++ b/src/Structures/Emoji.js @@ -37,4 +37,15 @@ export default class Emoji { get getURL() { return Endpoints.EMOJI(this.id); } + + toObject() { + let keys = ['id', 'name', 'roleList', 'colons', 'managed'], + obj = {}; + + for (let k of keys) { + obj[k] = this[k]; + } + + return obj; + } } diff --git a/src/Structures/Message.js b/src/Structures/Message.js index 7004111dc..57f8f776c 100644 --- a/src/Structures/Message.js +++ b/src/Structures/Message.js @@ -58,6 +58,22 @@ export default class Message extends Equality{ return this.author; } + toObject() { + let keys = ['id', 'timestamp', 'everyoneMentioned', 'pinned', 'editedTimestamp', 'content', 'cleanContent', 'tts', 'attachments', 'embeds'], + obj = {}; + + for (let k of keys) { + obj[k] = this[k]; + } + + obj.channelID = this.channel ? this.channel.id : null; + obj.serverID = this.server ? this.server.id : null; + obj.author = this.author.toObject(); + obj.mentions = this.mentions.map(m => m.toObject()); + + return obj; + } + isMentioned(user){ user = this.client.internal.resolver.resolveUser(user); if (!user) { diff --git a/src/Structures/PMChannel.js b/src/Structures/PMChannel.js index ccbac6e36..997f35350 100644 --- a/src/Structures/PMChannel.js +++ b/src/Structures/PMChannel.js @@ -24,6 +24,17 @@ export default class PMChannel extends Channel { return this.recipient.toString(); } + toObject() { + let keys = ['type', 'lastMessageID', 'recipient'], + obj = {}; + + for (let k of keys) { + obj[k] = this[k]; + } + + return obj; + } + sendMessage(){ return this.client.sendMessage.apply(this.client, reg(this, arguments)); } diff --git a/src/Structures/PermissionOverwrite.js b/src/Structures/PermissionOverwrite.js index f1db6ff10..d6f5c3d4a 100644 --- a/src/Structures/PermissionOverwrite.js +++ b/src/Structures/PermissionOverwrite.js @@ -43,6 +43,17 @@ export default class PermissionOverwrite { return denied; } + toObject() { + let keys = ['id', 'type', 'allow', 'deny'], + obj = {}; + + for (let k of keys) { + obj[k] = this[k]; + } + + return obj; + } + setAllowed(allowedArray){ allowedArray.forEach( (permission) => { if(permission instanceof String || typeof permission === "string"){ diff --git a/src/Structures/Role.js b/src/Structures/Role.js index dbb3c26fe..ceb734411 100644 --- a/src/Structures/Role.js +++ b/src/Structures/Role.js @@ -47,6 +47,17 @@ export default class Role { return new Date((+this.id / 4194304) + 1420070400000); } + toObject() { + let keys = ['id', 'position', 'permissions', 'name', 'managed', 'hoist', 'color', 'mentionable'], + obj = {}; + + for (let k of keys) { + obj[k] = this[k]; + } + + return obj; + } + serialise(explicit){ var hp = (perm) => this.hasPermission(perm, explicit); diff --git a/src/Structures/Server.js b/src/Structures/Server.js index 4775c438b..bc7abdedb 100644 --- a/src/Structures/Server.js +++ b/src/Structures/Server.js @@ -132,6 +132,22 @@ export default class Server extends Equality { return new Date((+this.id / 4194304) + 1420070400000); } + toObject() { + var keys = ['id', 'name', 'region', 'ownerID', 'icon', 'afkTimeout', 'afkChannelID', 'large', 'memberCount'], + obj = {}; + + for (let k of keys) { + obj[k] = this[k]; + } + + obj.members = this.members.map(member => member.toObject()); + obj.channels = this.channels.map(channel => channel.toObject()); + obj.roles = this.roles.map(role => role.toObject()); + obj.emojis = this.emojis.map(emoji => emoji.toObject()); + + return obj; + } + detailsOf(user) { user = this.client.internal.resolver.resolveUser(user); if (user) { diff --git a/src/Structures/ServerChannel.js b/src/Structures/ServerChannel.js index 19f20484f..011749678 100644 --- a/src/Structures/ServerChannel.js +++ b/src/Structures/ServerChannel.js @@ -21,6 +21,19 @@ export default class ServerChannel extends Channel{ } } + toObject() { + let keys = ['id', 'name', 'type', 'position'], + obj = {}; + + for (let k of keys) { + obj[k] = this[k]; + } + + obj.permissionOverwrites = this.permissionOverwrites.map(p => p.toObject()); + + return obj; + } + permissionsOf(userOrRole){ userOrRole = this.client.internal.resolver.resolveUser(userOrRole); if (userOrRole) { diff --git a/src/Structures/TextChannel.js b/src/Structures/TextChannel.js index 6faa389e9..30d64fe0c 100755 --- a/src/Structures/TextChannel.js +++ b/src/Structures/TextChannel.js @@ -18,6 +18,15 @@ export default class TextChannel extends ServerChannel{ return this.messages.get("id", this.lastMessageID); } + toObject() { + let obj = super.toObject(); + + obj.topic = this.topic; + obj.lastMessageID = this.lastMessageID; + + return obj; + } + setTopic(){ return this.client.setChannelTopic.apply(this.client, reg(this, arguments)); } diff --git a/src/Structures/User.js b/src/Structures/User.js index e09df9cf8..5a8a94ecc 100755 --- a/src/Structures/User.js +++ b/src/Structures/User.js @@ -49,6 +49,23 @@ export default class User extends Equality { return this.mention(); } + toObject() { + let keys = ['id', 'username', 'discriminator', 'avatar', 'bot', 'status', 'game', 'note', 'voiceState', 'speaking'], + obj = {}; + + for (let k of keys) { + obj[k] = this[k]; + } + + obj.typing = { + since: this.typing.since, + channelID: this.typing.channel ? this.typing.channel.id : null + }; + obj.voiceChannelID = this.voiceChannel ? this.voiceChannel.id : null; + + return obj; + } + equalsStrict(obj){ if(obj instanceof User) return ( diff --git a/src/Structures/VoiceChannel.js b/src/Structures/VoiceChannel.js index 705c8e5fd..43d005fce 100644 --- a/src/Structures/VoiceChannel.js +++ b/src/Structures/VoiceChannel.js @@ -13,6 +13,16 @@ export default class VoiceChannel extends ServerChannel{ this.bitrate = Math.round(this._bitrate / 1000); // store as kbps } + toObject() { + let obj = super.toObject(); + + obj.userLimit = this.userLimit; + obj.bitrate = this.bitrate; + obj.members = this.members.map(member => member.toObject()); + + return obj; + } + join(callback = function () { }) { return this.client.joinVoiceChannel.apply(this.client, [this, callback]); }