Files
discordeno/transformers/voiceState.ts
2022-03-16 00:28:58 -04:00

26 lines
1.0 KiB
TypeScript

import { Bot } from "../bot.ts";
import { DiscordVoiceState } from "../types/discord.ts";
import { VoiceStateToggles } from "./toggles/voice.ts";
import { Optionalize } from "../types/shared.ts";
export function transformVoiceState(
bot: Bot,
payload: { voiceState: DiscordVoiceState } & { guildId: bigint },
) {
return {
toggles: new VoiceStateToggles(payload.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,
};
}
export interface VoiceState extends Optionalize<ReturnType<typeof transformVoiceState>> {}