diff --git a/lib/Client/Client.js b/lib/Client/Client.js index dca38e6f2..31280a01b 100644 --- a/lib/Client/Client.js +++ b/lib/Client/Client.js @@ -417,6 +417,28 @@ var Client = (function (_EventEmitter) { }); }; + //def updateRole + + Client.prototype.updateRole = function updateRole(role) { + var data = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1]; + var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err, res) {} : arguments[2]; + + var self = this; + return new Promise(function (resolve, reject) { + if (typeof data === "function") { + // data is the callback + callback = data; + } + self.internal.updateRole(role, data).then(function (role) { + callback(null, role); + resolve(role); + })["catch"](function (e) { + callback(e); + reject(e); + }); + }); + }; + //def deleteRole Client.prototype.deleteRole = function deleteRole(role) { @@ -509,6 +531,23 @@ var Client = (function (_EventEmitter) { }); }; + // def deleteInvite + + Client.prototype.deleteInvite = function deleteInvite(invite) { + var callback = arguments.length <= 1 || arguments[1] === undefined ? function (err) {} : arguments[1]; + + var self = this; + return new Promise(function (resolve, reject) { + self.internal.deleteInvite(invite).then(function () { + callback(); + resolve(); + })["catch"](function (e) { + callback(e); + reject(e); + }); + }); + }; + // def overwritePermissions Client.prototype.overwritePermissions = function overwritePermissions(channel, role) { @@ -793,4 +832,4 @@ var Client = (function (_EventEmitter) { return Client; })(EventEmitter); -module.exports = Client; \ No newline at end of file +module.exports = Client; diff --git a/lib/Client/ConnectionState.js b/lib/Client/ConnectionState.js index 86fb95261..e0585d77e 100644 --- a/lib/Client/ConnectionState.js +++ b/lib/Client/ConnectionState.js @@ -4,4 +4,4 @@ exports.IDLE = 0; exports.LOGGING_IN = 1; exports.LOGGED_IN = 2; exports.READY = 3; -exports.DISCONNECTED = 4; \ No newline at end of file +exports.DISCONNECTED = 4; diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index 71b0ab86a..f5e6554b5 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -829,6 +829,27 @@ var InternalClient = (function () { }); }; + //def deleteInvite + + InternalClient.prototype.deleteInvite = function deleteInvite(invite) { + var self = this; + return new Promise(function (resolve, reject) { + + invite = self.resolver.resolveInviteID(invite); + if (invite) { + request.del(Endpoints.INVITE(invite)).set("authorization", self.token).end(function (err, res) { + if (err) { + reject(err); + } else { + resolve(); + } + }); + } else { + reject(new Error("Not a valid invite")); + } + }); + }; + //def overwritePermissions InternalClient.prototype.overwritePermissions = function overwritePermissions(channel, role, updated) { @@ -1567,4 +1588,4 @@ var InternalClient = (function () { return InternalClient; })(); -module.exports = InternalClient; \ No newline at end of file +module.exports = InternalClient; diff --git a/lib/Client/Resolver/Resolver.js b/lib/Client/Resolver/Resolver.js index f2d951682..ee5bbc23a 100644 --- a/lib/Client/Resolver/Resolver.js +++ b/lib/Client/Resolver/Resolver.js @@ -200,11 +200,11 @@ var Resolver = (function () { return; } } - if (found) resolve(found);else reject(new Error("not found anything")); + if (found) resolve(found);else reject(new Error("Didn't found anything")); }); }; return Resolver; })(); -module.exports = Resolver; \ No newline at end of file +module.exports = Resolver; diff --git a/lib/Constants.js b/lib/Constants.js index 572f3c8f2..bd03f3260 100644 --- a/lib/Constants.js +++ b/lib/Constants.js @@ -127,4 +127,4 @@ var PacketType = { exports.API_ENDPOINT = API; exports.Endpoints = Endpoints; exports.PacketType = PacketType; -exports.Permissions = Permissions; \ No newline at end of file +exports.Permissions = Permissions; diff --git a/lib/Structures/Channel.js b/lib/Structures/Channel.js index 053bc38ca..1e84d0e96 100644 --- a/lib/Structures/Channel.js +++ b/lib/Structures/Channel.js @@ -27,4 +27,4 @@ var Channel = (function (_Equality) { return Channel; })(Equality); -module.exports = Channel; \ No newline at end of file +module.exports = Channel; diff --git a/lib/Structures/ChannelPermissions.js b/lib/Structures/ChannelPermissions.js index fe7a039fd..0c1b29e93 100644 --- a/lib/Structures/ChannelPermissions.js +++ b/lib/Structures/ChannelPermissions.js @@ -72,4 +72,4 @@ var ChannelPermissions = (function () { return ChannelPermissions; })(); -module.exports = ChannelPermissions; \ No newline at end of file +module.exports = ChannelPermissions; diff --git a/lib/Structures/Invite.js b/lib/Structures/Invite.js index c003ff1dc..dcd7bc5b8 100644 --- a/lib/Structures/Invite.js +++ b/lib/Structures/Invite.js @@ -29,4 +29,4 @@ var Invite = (function () { return Invite; })(); -module.exports = Invite; \ No newline at end of file +module.exports = Invite; diff --git a/lib/Structures/Message.js b/lib/Structures/Message.js index 55a76fdb1..53ea5116b 100644 --- a/lib/Structures/Message.js +++ b/lib/Structures/Message.js @@ -69,4 +69,4 @@ var Message = (function () { return Message; })(); -module.exports = Message; \ No newline at end of file +module.exports = Message; diff --git a/lib/Structures/PMChannel.js b/lib/Structures/PMChannel.js index 837c4a378..5b10a68f3 100644 --- a/lib/Structures/PMChannel.js +++ b/lib/Structures/PMChannel.js @@ -52,4 +52,4 @@ var PMChannel = (function (_Equality) { return PMChannel; })(Equality); -module.exports = PMChannel; \ No newline at end of file +module.exports = PMChannel; diff --git a/lib/Structures/PermissionOverwrite.js b/lib/Structures/PermissionOverwrite.js index f20d61b7a..99f82bc0b 100644 --- a/lib/Structures/PermissionOverwrite.js +++ b/lib/Structures/PermissionOverwrite.js @@ -83,4 +83,4 @@ var PermissionOverwrite = (function () { return PermissionOverwrite; })(); -module.exports = PermissionOverwrite; \ No newline at end of file +module.exports = PermissionOverwrite; diff --git a/lib/Structures/Role.js b/lib/Structures/Role.js index 048c183cb..21e0f2b88 100644 --- a/lib/Structures/Role.js +++ b/lib/Structures/Role.js @@ -136,4 +136,4 @@ var Role = (function () { return Role; })(); -module.exports = Role; \ No newline at end of file +module.exports = Role; diff --git a/lib/Structures/Server.js b/lib/Structures/Server.js index 99ee3971a..a43875b2b 100644 --- a/lib/Structures/Server.js +++ b/lib/Structures/Server.js @@ -166,4 +166,4 @@ var Server = (function (_Equality) { return Server; })(Equality); -module.exports = Server; \ No newline at end of file +module.exports = Server; diff --git a/lib/Structures/ServerChannel.js b/lib/Structures/ServerChannel.js index 0349d33f9..1e0fdae96 100644 --- a/lib/Structures/ServerChannel.js +++ b/lib/Structures/ServerChannel.js @@ -114,4 +114,4 @@ var ServerChannel = (function (_Channel) { return ServerChannel; })(Channel); -module.exports = ServerChannel; \ No newline at end of file +module.exports = ServerChannel; diff --git a/lib/Structures/TextChannel.js b/lib/Structures/TextChannel.js index 6e7a8a664..08ba7bf28 100644 --- a/lib/Structures/TextChannel.js +++ b/lib/Structures/TextChannel.js @@ -57,4 +57,4 @@ var TextChannel = (function (_ServerChannel) { return TextChannel; })(ServerChannel); -module.exports = TextChannel; \ No newline at end of file +module.exports = TextChannel; diff --git a/lib/Structures/User.js b/lib/Structures/User.js index 3815089ee..12260a051 100644 --- a/lib/Structures/User.js +++ b/lib/Structures/User.js @@ -55,4 +55,4 @@ var User = (function (_Equality) { return User; })(Equality); -module.exports = User; \ No newline at end of file +module.exports = User; diff --git a/lib/Structures/VoiceChannel.js b/lib/Structures/VoiceChannel.js index 333786b58..b61a9082e 100644 --- a/lib/Structures/VoiceChannel.js +++ b/lib/Structures/VoiceChannel.js @@ -18,4 +18,4 @@ var VoiceChannel = (function (_ServerChannel) { return VoiceChannel; })(ServerChannel); -module.exports = VoiceChannel; \ No newline at end of file +module.exports = VoiceChannel; diff --git a/lib/Util/ArgumentRegulariser.js b/lib/Util/ArgumentRegulariser.js index 9c98ddb39..1ffbee29a 100644 --- a/lib/Util/ArgumentRegulariser.js +++ b/lib/Util/ArgumentRegulariser.js @@ -2,4 +2,4 @@ exports.reg = function (c, a) { return [c].concat(Array.prototype.slice.call(a)); -}; \ No newline at end of file +}; diff --git a/lib/Util/Cache.js b/lib/Util/Cache.js index 3bdf3477d..29c0002da 100644 --- a/lib/Util/Cache.js +++ b/lib/Util/Cache.js @@ -99,4 +99,4 @@ var Cache = (function (_Array) { return Cache; })(Array); -module.exports = Cache; \ No newline at end of file +module.exports = Cache; diff --git a/lib/Util/Equality.js b/lib/Util/Equality.js index 3288d530a..dd5763f74 100644 --- a/lib/Util/Equality.js +++ b/lib/Util/Equality.js @@ -42,4 +42,4 @@ var Equality = (function () { return Equality; })(); -module.exports = Equality; \ No newline at end of file +module.exports = Equality; diff --git a/lib/Voice/AudioEncoder.js b/lib/Voice/AudioEncoder.js index 517a7cf68..f178f9e2b 100644 --- a/lib/Voice/AudioEncoder.js +++ b/lib/Voice/AudioEncoder.js @@ -126,4 +126,4 @@ var AudioEncoder = (function () { return AudioEncoder; })(); -module.exports = AudioEncoder; \ No newline at end of file +module.exports = AudioEncoder; diff --git a/lib/Voice/StreamIntent.js b/lib/Voice/StreamIntent.js index 97953194c..aa6bb38c4 100644 --- a/lib/Voice/StreamIntent.js +++ b/lib/Voice/StreamIntent.js @@ -19,4 +19,4 @@ var StreamIntent = (function (_EventEmitter) { return StreamIntent; })(EventEmitter); -module.exports = StreamIntent; \ No newline at end of file +module.exports = StreamIntent; diff --git a/lib/Voice/VoiceConnection.js b/lib/Voice/VoiceConnection.js index 4dee53b15..f61b002f6 100644 --- a/lib/Voice/VoiceConnection.js +++ b/lib/Voice/VoiceConnection.js @@ -329,4 +329,4 @@ var VoiceConnection = (function (_EventEmitter) { return VoiceConnection; })(EventEmitter); -module.exports = VoiceConnection; \ No newline at end of file +module.exports = VoiceConnection; diff --git a/lib/Voice/VoicePacket.js b/lib/Voice/VoicePacket.js index f432bf241..46797646a 100644 --- a/lib/Voice/VoicePacket.js +++ b/lib/Voice/VoicePacket.js @@ -23,4 +23,4 @@ var VoicePacket = function VoicePacket(data, sequence, time, ssrc) { return returnBuffer; }; -module.exports = VoicePacket; \ No newline at end of file +module.exports = VoicePacket; diff --git a/lib/index.js b/lib/index.js index 31c91c19c..b122e469d 100644 --- a/lib/index.js +++ b/lib/index.js @@ -14,4 +14,4 @@ module.exports = { TextChannel: require("./Structures/TextChannel"), User: require("./Structures/User"), VoiceChannel: require("./Structures/VoiceChannel") -}; \ No newline at end of file +}; diff --git a/src/Client/Client.js b/src/Client/Client.js index 3c2564707..68c225d77 100644 --- a/src/Client/Client.js +++ b/src/Client/Client.js @@ -420,6 +420,27 @@ class Client extends EventEmitter { }); } + //def updateRole + updateRole(role, data = null, callback = function (err, res) { }) { + var self = this; + return new Promise((resolve, reject) => { + if (typeof data === "function") { + // data is the callback + callback = data; + } + self.internal.updateRole(role, data) + .then((role) => { + callback(null, role); + resolve(role); + }) + .catch(e => { + callback(e); + reject(e); + }); + + }); + } + //def deleteRole deleteRole(role, callback = function (err) { }) { @@ -508,6 +529,22 @@ class Client extends EventEmitter { }); } + // def deleteInvite + deleteInvite(invite, callback = function (err) { }) { + var self = this; + return new Promise((resolve, reject) => { + self.internal.deleteInvite(invite) + .then(() => { + callback(); + resolve(); + }) + .catch(e => { + callback(e); + reject(e); + }); + }); + } + // def overwritePermissions overwritePermissions(channel, role, options = {}, callback = function (err) { }) { var self = this; @@ -641,7 +678,7 @@ class Client extends EventEmitter { }) } - + //def startTyping startTyping(channel, callback = function (err) { }) { var self = this; @@ -659,7 +696,7 @@ class Client extends EventEmitter { }); } - + //def stopTyping stopTyping(channel, callback = function (err) { }) { var self = this; @@ -677,7 +714,7 @@ class Client extends EventEmitter { }); } - + //def updateDetails updateDetails(details, callback = function (err) { }) { var self = this; @@ -693,7 +730,7 @@ class Client extends EventEmitter { }); }); } - + //def setUsername setUsername(name, callback = function (err) { }) { var self = this; @@ -725,7 +762,7 @@ class Client extends EventEmitter { }); }); } - + //def joinVoiceChannel joinVoiceChannel(channel, callback = function (err) { }) { var self = this; diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index 4d3937b67..68f98cd94 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -139,7 +139,7 @@ class InternalClient { }); }); } - + //def joinServer joinServer(invite) { var self = this; @@ -728,9 +728,7 @@ class InternalClient { reject(err); } else { var nrole = new Role(res.body, server, self.client); - resolve( - server.roles.update(role, nrole) - ); + resolve(server.roles.update(role, nrole)); } }); @@ -887,6 +885,31 @@ class InternalClient { }); } + //def deleteInvite + deleteInvite(invite) { + var self = this; + return new Promise((resolve, reject) => { + + invite = self.resolver.resolveInviteID(invite); + if (invite) { + request + .del(Endpoints.INVITE(invite)) + .set("authorization", self.token) + .end((err, res) => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + + } else { + reject(new Error("Not a valid invite")); + } + + }); + } + //def overwritePermissions overwritePermissions(channel, role, updated) { var self = this; @@ -998,56 +1021,56 @@ class InternalClient { }); } - + //def startTyping startTyping(channel){ var self = this; return new Promise((resolve, reject) => { - + self.resolver.resolveChannel(channel).then(next).catch(reject); - + function next(channel) { - + if(self.typingIntervals[channel.id]){ // typing interval already exists, leave it alone reject(new Error("Already typing in that channel")); return; } - + self.sendTyping(channel); - + self.typingIntervals[channel.id] = setInterval( () => self.sendTyping(channel), 4000 ); - + } - + }); } - + //def stopTyping stopTyping(channel){ var self = this; return new Promise((resolve, reject) => { - + self.resolver.resolveChannel(channel).then(next).catch(reject); - + function next(channel) { - + if(!self.typingIntervals[channel.id]){ // typing interval doesn't exist reject(new Error("Not typing in that channel")); return; } - + clearInterval(self.typingIntervals[channel.id]); self.typingIntervals[channel.id] = false; - + } - + }); } - + //def updateDetails updateDetails(data) { var self = this; @@ -1071,12 +1094,12 @@ class InternalClient { }); }); } - + //def setAvatar setAvatar(avatar) { return this.updateDetails({avatar}); } - + //def setUsername setUsername(username) { return this.updateDetails({username}); @@ -1180,7 +1203,7 @@ class InternalClient { updateChannel(chann, data) { return this.setChannelNameAndTopic(chann, data.name, data.topic); } - + //def ack ack(msg) { var self = this; diff --git a/src/Client/Resolver/Resolver.js b/src/Client/Resolver/Resolver.js index d9d779b48..704fb95b6 100644 --- a/src/Client/Resolver/Resolver.js +++ b/src/Client/Resolver/Resolver.js @@ -172,7 +172,7 @@ class Resolver { if (found) resolve(found); else - reject(new Error("not found anything")); + reject(new Error("Didn't found anything")); }); } diff --git a/src/Structures/Message.js b/src/Structures/Message.js index 0f41ec5bf..b73e7d82c 100644 --- a/src/Structures/Message.js +++ b/src/Structures/Message.js @@ -37,7 +37,7 @@ class Message{ this.mentions.add(client.internal.users.add(new User(mention, client))); }); } - + isMentioned(user){ user = this.client.internal.resolver.resolveUser(user); if (user) { @@ -50,19 +50,19 @@ class Message{ toString(){ return this.content; } - + delete(){ return this.client.deleteMessage.apply(this.client, reg(this, arguments)); } - + update(){ return this.client.updateMessage.apply(this.client, reg(this, arguments)); } - + reply(){ return this.client.reply.apply(this.client, reg(this, arguments)); } - + replyTTS(){ return this.client.replyTTS.apply(this.client, reg(this, arguments)); } diff --git a/src/Structures/PMChannel.js b/src/Structures/PMChannel.js index 0c3f94102..cb29eb17f 100644 --- a/src/Structures/PMChannel.js +++ b/src/Structures/PMChannel.js @@ -26,11 +26,11 @@ class PMChannel extends Equality{ toString(){ return this.recipient.toString(); } - + sendMessage(){ return this.client.sendMessage.apply(this.client, reg(this, arguments)); } - + sendTTSMessage(){ return this.client.sendTTSMessage.apply(this.client, reg(this, arguments)); } diff --git a/src/Structures/ServerChannel.js b/src/Structures/ServerChannel.js index a67aa96ab..8ea2a23fd 100644 --- a/src/Structures/ServerChannel.js +++ b/src/Structures/ServerChannel.js @@ -60,7 +60,7 @@ class ServerChannel extends Channel{ permsOf(user){ return this.permissionsOf(user); } - + mention(){ return `<#${this.id}>`; } @@ -68,7 +68,7 @@ class ServerChannel extends Channel{ toString(){ return this.mention(); } - + setName(){ return this.client.setChannelName.apply(this.client, reg(this, arguments)); } diff --git a/src/Structures/TextChannel.js b/src/Structures/TextChannel.js index 70cf03c85..f9554dd5f 100644 --- a/src/Structures/TextChannel.js +++ b/src/Structures/TextChannel.js @@ -19,23 +19,23 @@ class TextChannel extends ServerChannel{ get lastMessage(){ return this.messages.get("id", this.lastMessageID); } - + setTopic(){ return this.client.setTopic.apply(this.client, reg(this, arguments)); } - + setNameAndTopic(){ return this.client.setChannelNameAndTopic.apply(this.client, reg(this, arguments)); } - + update(){ return this.client.updateChannel.apply(this.client, reg(this, arguments)); } - + sendMessage(){ return this.client.sendMessage.apply(this.client, reg(this, arguments)); } - + sendTTSMessage(){ return this.client.sendTTSMessage.apply(this.client, reg(this, arguments)); } diff --git a/src/Util/Cache.js b/src/Util/Cache.js index 6c044d5fb..ceb441378 100644 --- a/src/Util/Cache.js +++ b/src/Util/Cache.js @@ -16,7 +16,7 @@ class Cache extends Array { }); return found; } - + has(key, value) { return !!this.get(key, value); }