From 96b273ed047a77e92627b8711ca0d19e248f4c6c Mon Sep 17 00:00:00 2001 From: Helloyunho Date: Wed, 31 Mar 2021 11:05:21 +0900 Subject: [PATCH] :sparkles: Add disconnection functions to voice channel --- src/structures/guildVoiceChannel.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/structures/guildVoiceChannel.ts b/src/structures/guildVoiceChannel.ts index 0f2764a..759fb71 100644 --- a/src/structures/guildVoiceChannel.ts +++ b/src/structures/guildVoiceChannel.ts @@ -11,6 +11,8 @@ import { GuildChannel } from './channel.ts' import { Guild } from './guild.ts' import { VoiceState } from './voiceState.ts' import { GuildChannelVoiceStatesManager } from '../managers/guildChannelVoiceStates.ts' +import { User } from './user.ts' +import { Member } from './member.ts' export interface VoiceServerData extends VoiceServerUpdateData { sessionID: string @@ -113,4 +115,25 @@ export class VoiceChannel extends GuildChannel { return new VoiceChannel(this.client, resp, this.guild) } + + async disconnectMember( + member: User | Member | string + ): Promise { + const memberID = typeof member === 'string' ? member : member.id + const memberVoiceState = await this.voiceStates.get(memberID) + + return memberVoiceState?.disconnect() + } + + async disconnectAll(): Promise { + const members: Member[] = [] + for await (const memberVoiceState of this.voiceStates) { + const member = await memberVoiceState.disconnect() + if (member !== undefined) { + members.push(member) + } + } + + return members + } }