parseVoiceState method

VoiceState parseVoiceState(
  1. Map<String, Object?> raw,
  2. {Snowflake? guildId}
)

Parse a VoiceState from a Map.

Implementation

VoiceState parseVoiceState(Map<String, Object?> raw, {Snowflake? guildId}) {
  guildId ??= maybeParse(raw['guild_id'], Snowflake.parse);
  final userId = Snowflake.parse(raw['user_id']!);

  return VoiceState(
    manager: this,
    guildId: guildId,
    channelId: maybeParse(raw['channel_id'], Snowflake.parse),
    userId: userId,
    member: maybeParse(raw['member'], (Map<String, Object?> raw) => client.guilds[guildId ?? Snowflake.zero].members.parse(raw, userId: userId)),
    sessionId: raw['session_id'] as String,
    isServerDeafened: raw['deaf'] as bool,
    isServerMuted: raw['mute'] as bool,
    isSelfDeafened: raw['self_deaf'] as bool,
    isSelfMuted: raw['self_mute'] as bool,
    isStreaming: raw['self_stream'] as bool? ?? false,
    isVideoEnabled: raw['self_video'] as bool,
    isSuppressed: raw['suppress'] as bool,
    requestedToSpeakAt: maybeParse(raw['request_to_speak_timestamp'], DateTime.parse),
  );
}