Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(GuildMember): add support for voice kicking #3246

Merged
merged 1 commit into from
May 6, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/client/rest/RESTMethods.js
Original file line number Diff line number Diff line change
Expand Up @@ -513,8 +513,10 @@ class RESTMethods {
return Promise.reject(new Error('Could not resolve channel to a guild voice channel.'));
}
data.channel_id = channel.id;
data.channel = null;
} else if (data.channel === null) {
data.channel_id = null;
}
data.channel = undefined;
if (data.roles) data.roles = data.roles.map(role => role instanceof Role ? role.id : role);

let endpoint = Endpoints.Member(member);
Expand Down
6 changes: 4 additions & 2 deletions src/structures/GuildMember.js
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,8 @@ class GuildMember {
* @property {Collection<Snowflake, Role>|RoleResolvable[]} [roles] The roles or role IDs to apply
* @property {boolean} [mute] Whether or not the member should be muted
* @property {boolean} [deaf] Whether or not the member should be deafened
* @property {ChannelResolvable} [channel] Channel to move member to (if they are connected to voice)
* @property {ChannelResolvable|null} [channel] Channel to move member to (if they are connected to voice), or `null`
* if you want to kick them from voice
*/

/**
Expand Down Expand Up @@ -404,7 +405,8 @@ class GuildMember {

/**
* Moves this member to the given channel.
* @param {ChannelResolvable} channel The channel to move the member to
* @param {ChannelResolvable|null} channel Channel to move the member to, or `null` if you want to kick them from
* voice
* @returns {Promise<GuildMember>}
* @example
* // Moves a member to a voice channel
Expand Down
6 changes: 3 additions & 3 deletions typings/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -668,7 +668,7 @@ declare module 'discord.js' {
public ban(options?: BanOptions | number | string): Promise<GuildMember>;
public createDM(): Promise<DMChannel>;
public deleteDM(): Promise<DMChannel>;
public edit(data: object, reason?: string): Promise<GuildMember>;
public edit(data: GuildMemberEditData, reason?: string): Promise<GuildMember>;
public hasPermission(permission: PermissionResolvable, explicit?: boolean, checkAdmin?: boolean, checkOwner?: boolean): boolean;
public hasPermissions(permission: PermissionResolvable, explicit?: boolean): boolean;
public kick(reason?: string): Promise<GuildMember>;
Expand All @@ -680,7 +680,7 @@ declare module 'discord.js' {
public setMute(mute: boolean, reason?: string): Promise<GuildMember>;
public setNickname(nickname: string, reason?: string): Promise<GuildMember>;
public setRoles(roles: Collection<Snowflake, Role> | Role[] | Snowflake[], reason?: string): Promise<GuildMember>;
public setVoiceChannel(voiceChannel: ChannelResolvable): Promise<GuildMember>;
public setVoiceChannel(voiceChannel: ChannelResolvable | null): Promise<GuildMember>;
public toString(): string;
}

Expand Down Expand Up @@ -1822,7 +1822,7 @@ declare module 'discord.js' {
roles?: Collection<Snowflake, Role> | Role[] | Snowflake[];
mute?: boolean;
deaf?: boolean;
channel?: ChannelResolvable;
channel?: ChannelResolvable | null;
};

type GuildMemberResolvable = GuildMember | User;
Expand Down