feat: Add voice state to the desired properties object. (#3424)

* feat: Add voice state to the desired properties object.

* chore: Remove unnecessary check.
This commit is contained in:
Dorian Oszczęda
2024-02-21 14:20:23 +00:00
committed by GitHub
parent 3bb41e2948
commit 100039b1bd
2 changed files with 25 additions and 9 deletions
+16
View File
@@ -498,6 +498,14 @@ export interface Transformers {
slug: boolean
flags: boolean
}
voiceState: {
requestToSpeakTimestamp: boolean
channelId: boolean
guildId: boolean
toggles: boolean
sessionId: boolean
userId: boolean
}
}
reverse: {
allowedMentions: (bot: Bot, payload: AllowedMentions) => DiscordAllowedMentions
@@ -1041,6 +1049,14 @@ export function createTransformers(options: Partial<Transformers>, opts?: Create
slug: opts?.defaultDesiredPropertiesValue ?? false,
flags: opts?.defaultDesiredPropertiesValue ?? false,
},
voiceState: {
requestToSpeakTimestamp: opts?.defaultDesiredPropertiesValue ?? false,
channelId: opts?.defaultDesiredPropertiesValue ?? false,
guildId: opts?.defaultDesiredPropertiesValue ?? false,
toggles: opts?.defaultDesiredPropertiesValue ?? false,
sessionId: opts?.defaultDesiredPropertiesValue ?? false,
userId: opts?.defaultDesiredPropertiesValue ?? false,
},
},
reverse: {
allowedMentions: options.reverse?.allowedMentions ?? transformAllowedMentionsToDiscordAllowedMentions,
+9 -9
View File
@@ -3,16 +3,16 @@ import type { Bot } from '../index.js'
import { VoiceStateToggles } from './toggles/voice.js'
export function transformVoiceState(bot: Bot, payload: { voiceState: DiscordVoiceState } & { guildId: bigint }): VoiceState {
const voiceState = {
toggles: new VoiceStateToggles(payload.voiceState),
const props = bot.transformers.desiredProperties.voiceState
const voiceState = {} as VoiceState
requestToSpeakTimestamp: payload.voiceState.request_to_speak_timestamp ? Date.parse(payload.voiceState.request_to_speak_timestamp) : undefined,
sessionId: payload.voiceState.session_id,
channelId: payload.voiceState.channel_id ? bot.transformers.snowflake(payload.voiceState.channel_id) : undefined,
guildId: payload.guildId || (payload.voiceState.guild_id ? bot.transformers.snowflake(payload.voiceState.guild_id) : 0n),
userId: payload.voiceState.user_id ? bot.transformers.snowflake(payload.voiceState.user_id) : 0n,
} 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.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
return bot.transformers.customizers.voiceState(bot, payload.voiceState, voiceState)
}