fix(GuildChannel): add explicit channel resolve error to member edit (#2958)

* Add explicit error to setting invalid voice channel

* restrict to guild

Co-Authored-By: Darqam <anhim2@gmail.com>

* add a more explicit error and channel type check

* bad tab
This commit is contained in:
Darqam
2018-11-27 21:41:34 +01:00
committed by SpaceEEC
parent fd21bbb7bf
commit 23a16c3a73
2 changed files with 6 additions and 1 deletions

View File

@@ -84,6 +84,7 @@ const Messages = {
MESSAGE_SPLIT_MISSING: 'Message exceeds the max length and contains no split characters.',
GUILD_CHANNEL_RESOLVE: 'Could not resolve channel to a guild channel.',
GUILD_VOICE_CHANNEL_RESOLVE: 'Could not resolve channel to a guild voice channel.',
GUILD_CHANNEL_ORPHAN: 'Could not find a parent to this guild channel.',
GUILD_OWNED: 'Guild is owned by the client.',
GUILD_RESTRICTED: (state = false) => `Guild is ${state ? 'already' : 'not'} restricted.`,

View File

@@ -248,7 +248,11 @@ class GuildMember extends Base {
*/
edit(data, reason) {
if (data.channel) {
data.channel_id = this.client.channels.resolve(data.channel).id;
data.channel = this.guild.channels.resolve(data.channel);
if (!data.channel || data.channel.type !== 'voice') {
throw new Error('GUILD_VOICE_CHANNEL_RESOLVE');
}
data.channel_id = data.channel.id;
data.channel = null;
}
if (data.roles) data.roles = data.roles.map(role => role instanceof Role ? role.id : role);