diff --git a/src/structures/VoiceState.js b/src/structures/VoiceState.js index 550a5fb..9e125c1 100644 --- a/src/structures/VoiceState.js +++ b/src/structures/VoiceState.js @@ -214,6 +214,23 @@ class VoiceState extends Base { return this.guild.members.edit(this.id, { channel }, reason); } + /** + * Sets the status of the voice channel + * @param {string} status The message to set the channel status to + * @returns {Promise} + */ + async setStatus(status) { + if (this.channel?.id) { + if (this.channel?.type !== 'GUILD_VOICE') throw new Error('VOICE_NOT_GUILD_CHANNEL'); + + await this.client.api.channels(this.channel.id, 'voice-status').put({ + data: { + status, + }, + }); + } + } + /** * Toggles the request to speak in the channel. * Only applicable for stage channels and for the client's own voice state. diff --git a/typings/index.d.ts b/typings/index.d.ts index 2aac51b..2a6fcc0 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -3434,6 +3434,7 @@ export class VoiceState extends Base { public setMute(mute?: boolean, reason?: string): Promise; public disconnect(reason?: string): Promise; public setChannel(channel: GuildVoiceChannelResolvable | null, reason?: string): Promise; + public setStatus(status: string): Promise; public setRequestToSpeak(request?: boolean): Promise; public setSuppressed(suppressed?: boolean): Promise; public getPreview(): Promise;