From 042d7d1dbe7e50bf873dd221500b1f2eaafebf72 Mon Sep 17 00:00:00 2001 From: meew0 Date: Sun, 24 Jan 2016 23:22:24 +0100 Subject: [PATCH] Add voice channel moving, not quite working yet --- lib/Client/Client.js | 8 ++++++++ lib/Client/InternalClient.js | 19 +++++++++++++++++++ src/Client/Client.js | 6 ++++++ src/Client/InternalClient.js | 19 +++++++++++++++++++ 4 files changed, 52 insertions(+) diff --git a/lib/Client/Client.js b/lib/Client/Client.js index 46672b55b..c3c395c8a 100644 --- a/lib/Client/Client.js +++ b/lib/Client/Client.js @@ -314,6 +314,14 @@ var Client = (function (_EventEmitter) { return this.internal.kickMember(user, server).then(dataCallback(callback), errorCallback(callback)); }; + // def moveMember + + Client.prototype.moveMember = function moveMember(user, server, channel) { + var callback = arguments.length <= 3 || arguments[3] === undefined ? function () /*err, {}*/{} : arguments[3]; + + return this.internal.moveMember(user, server, channel).then(dataCallback(callback), errorCallback(callback)); + }; + // def createRole Client.prototype.createRole = function createRole(server) { diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index 1d82f8066..bf6db93d7 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -694,6 +694,25 @@ var InternalClient = (function () { return this.apiRequest("del", _Constants.Endpoints.SERVER_MEMBERS(server.id) + "/" + user.id, true); }; + // def moveMember + + InternalClient.prototype.moveMember = function moveMember(user, server, channel) { + user = this.resolver.resolveUser(user); + server = this.resolver.resolveServer(server); + channel = this.resolver.resolveChannel(channel); + + console.log(channel.type); + // Make sure `channel` is a voice channel + if (channel.type !== "voice") { + throw new Error("Can't moveMember into a non-voice channel"); + } else { + return this.apiRequest("patch", _Constants.Endpoints.SERVER_MEMBERS(server.id) + "/" + user.id, true, { channel_id: channel.id }).then(function (res) { + user.voiceChannel = channel; + return res; + }); + } + }; + // def createRole InternalClient.prototype.createRole = function createRole(server, data) { diff --git a/src/Client/Client.js b/src/Client/Client.js index cbc4945dc..82a32d5f9 100644 --- a/src/Client/Client.js +++ b/src/Client/Client.js @@ -273,6 +273,12 @@ export default class Client extends EventEmitter { .then(dataCallback(callback), errorCallback(callback)); } + // def moveMember + moveMember(user, server, channel, callback = (/*err, {}*/) => { }) { + return this.internal.moveMember(user, server, channel) + .then(dataCallback(callback), errorCallback(callback)); + } + // def createRole createRole(server, data = null, callback = (/*err, role*/) => { }) { if (typeof data === "function") { diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index 89f378fe3..350d15004 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -572,6 +572,25 @@ export default class InternalClient { return this.apiRequest("del", `${Endpoints.SERVER_MEMBERS(server.id) }/${user.id}`, true); } + // def moveMember + moveMember(user, server, channel) { + user = this.resolver.resolveUser(user); + server = this.resolver.resolveServer(server); + channel = this.resolver.resolveChannel(channel); + + console.log(channel.type); + // Make sure `channel` is a voice channel + if(channel.type !== "voice") { + throw new Error("Can't moveMember into a non-voice channel"); + } else { + return this.apiRequest("patch", `${Endpoints.SERVER_MEMBERS(server.id)}/${user.id}`, true, { channel_id: channel.id }) + .then(res => { + user.voiceChannel = channel; + return res; + }); + } + } + // def createRole createRole(server, data) { server = this.resolver.resolveServer(server);