Add voice state http endpoints (#3841)

This commit is contained in:
Fleny
2024-08-10 19:36:15 -05:00
committed by GitHub
parent 985801c834
commit 895cc17106
5 changed files with 44 additions and 6 deletions
+9
View File
@@ -120,6 +120,7 @@ import type {
Template,
ThreadMember,
User,
VoiceState,
Webhook,
WelcomeScreen,
} from './transformers/index.js'
@@ -453,6 +454,12 @@ export function createBotHelpers(bot: Bot): BotHelpers {
getStageInstance: async (channelId) => {
return bot.transformers.stageInstance(bot, snakelize(await bot.rest.getStageInstance(channelId)))
},
getOwnVoiceState: async (guildId) => {
return bot.transformers.voiceState(bot, { guildId, voiceState: snakelize(await bot.rest.getOwnVoiceState(guildId)) })
},
getUserVoiceState: async (guildId, userId) => {
return bot.transformers.voiceState(bot, { guildId, voiceState: snakelize(await bot.rest.getUserVoiceState(guildId, userId)) })
},
getSticker: async (stickerId) => {
return bot.transformers.sticker(bot, snakelize(await bot.rest.getSticker(stickerId)))
},
@@ -874,6 +881,8 @@ export interface BotHelpers {
) => Promise<Array<{ user: User; member?: Member }>>
getSessionInfo: () => Promise<CamelizedDiscordGetGatewayBot>
getStageInstance: (channelId: BigString) => Promise<StageInstance>
getOwnVoiceState: (guildId: BigString) => Promise<VoiceState>
getUserVoiceState: (guildId: BigString, userId: BigString) => Promise<VoiceState>
getSticker: (stickerId: BigString) => Promise<Sticker>
getThreadMember: (channelId: BigString, userId: BigString) => Promise<ThreadMember>
getThreadMembers: (channelId: BigString) => Promise<ThreadMember[]>
+1 -1
View File
@@ -279,7 +279,7 @@ export interface Transformers {
messageInteractionMetadata: (bot: Bot, payload: DiscordMessageInteractionMetadata) => MessageInteractionMetadata
messageCall: (bot: Bot, payload: DiscordMessageCall) => MessageCall
role: (bot: Bot, payload: { role: DiscordRole } & { guildId: BigString }) => Role
voiceState: (bot: Bot, payload: { voiceState: DiscordVoiceState } & { guildId: bigint }) => VoiceState
voiceState: (bot: Bot, payload: { voiceState: DiscordVoiceState } & { guildId: BigString }) => VoiceState
interaction: (bot: Bot, payload: { interaction: DiscordInteraction; shardId: number }) => Interaction
interactionDataOptions: (bot: Bot, payload: DiscordInteractionDataOption) => InteractionDataOption
integration: (bot: Bot, payload: DiscordIntegrationCreateUpdate) => Integration
+3 -3
View File
@@ -1,15 +1,15 @@
import type { DiscordVoiceState } from '@discordeno/types'
import type { BigString, DiscordVoiceState } from '@discordeno/types'
import type { Bot, VoiceState } from '../index.js'
import { VoiceStateToggles } from './toggles/voice.js'
export function transformVoiceState(bot: Bot, payload: { voiceState: DiscordVoiceState } & { guildId: bigint }): VoiceState {
export function transformVoiceState(bot: Bot, payload: { voiceState: DiscordVoiceState } & { guildId: BigString }): VoiceState {
const props = bot.transformers.desiredProperties.voiceState
const voiceState = {} as VoiceState
if (props.requestToSpeakTimestamp && payload.voiceState.request_to_speak_timestamp)
voiceState.requestToSpeakTimestamp = Date.parse(payload.voiceState.request_to_speak_timestamp)
if (props.channelId && payload.voiceState.channel_id) voiceState.channelId = bot.transformers.snowflake(payload.voiceState.channel_id)
if (props.guildId) voiceState.guildId = payload.guildId
if (props.guildId) voiceState.guildId = bot.transformers.snowflake(payload.guildId)
if (props.toggles) voiceState.toggles = new VoiceStateToggles(payload.voiceState)
if (props.sessionId) voiceState.sessionId = payload.voiceState.session_id
if (props.userId && payload.voiceState.user_id) voiceState.userId = bot.transformers.snowflake(payload.voiceState.user_id) ?? 0n