Merge pull request #168 from hydrabolt/issue/144

Allow moving users to voice channels
This commit is contained in:
abalabahaha
2016-01-29 14:04:05 -08:00
5 changed files with 64 additions and 0 deletions

View File

@@ -289,6 +289,16 @@ Removes a user from a server
- **callback** - `function` taking the following:
- **error** - error if any occurred.
moveMember(user, channel, `callback`)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Moves a user from one voice channel into another.
- **user** - A `User Resolvable`_ that should be moved
- **channel** - The `Channel Resolvable`_ to move the user to
- **callback** - `function` taking the following:
- **error** - error if any occurred.
createInvite(channel, `options`, `callback`)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -336,6 +336,14 @@ var Client = (function (_EventEmitter) {
return this.internal.kickMember(user, server).then(dataCallback(callback), errorCallback(callback));
};
// def moveMember
Client.prototype.moveMember = function moveMember(user, channel) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function () /*err, {}*/{} : arguments[2];
return this.internal.moveMember(user, channel).then(dataCallback(callback), errorCallback(callback));
};
// def createRole
Client.prototype.createRole = function createRole(server) {

View File

@@ -708,6 +708,27 @@ var InternalClient = (function () {
return this.apiRequest("del", _Constants.Endpoints.SERVER_MEMBERS(server.id) + "/" + user.id, true);
};
// def moveMember
InternalClient.prototype.moveMember = function moveMember(user, channel) {
var _this19 = this;
user = this.resolver.resolveUser(user);
return this.resolver.resolveChannel(channel).then(function (channel) {
var server = channel.server;
// Make sure `channel` is a voice channel
if (channel.type !== "voice") {
throw new Error("Can't moveMember into a non-voice channel");
} else {
return _this19.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) {

View File

@@ -292,6 +292,12 @@ export default class Client extends EventEmitter {
.then(dataCallback(callback), errorCallback(callback));
}
// def moveMember
moveMember(user, channel, callback = (/*err, {}*/) => { }) {
return this.internal.moveMember(user, channel)
.then(dataCallback(callback), errorCallback(callback));
}
// def createRole
createRole(server, data = null, callback = (/*err, role*/) => { }) {
if (typeof data === "function") {

View File

@@ -585,6 +585,25 @@ export default class InternalClient {
return this.apiRequest("del", `${Endpoints.SERVER_MEMBERS(server.id) }/${user.id}`, true);
}
// def moveMember
moveMember(user, channel) {
user = this.resolver.resolveUser(user);
return this.resolver.resolveChannel(channel).then(channel => {
var server = channel.server;
// 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);