parseGuildCreate method

UnavailableGuildCreateEvent parseGuildCreate(
  1. Map<String, Object?> raw
)

Parse an UnavailableGuildCreateEvent from raw.

Implementation

UnavailableGuildCreateEvent parseGuildCreate(Map<String, Object?> raw) {
  if (raw['unavailable'] == true) {
    return UnavailableGuildCreateEvent(gateway: this, guild: PartialGuild(id: Snowflake.parse(raw['id']!), manager: client.guilds));
  }

  final guild = client.guilds.parse(raw);

  return GuildCreateEvent(
    gateway: this,
    guild: guild,
    joinedAt: DateTime.parse(raw['joined_at'] as String),
    isLarge: raw['large'] as bool,
    memberCount: raw['member_count'] as int,
    voiceStates: parseMany(
      raw['voice_states'] as List<Object?>,
      (Map<String, Object?> raw) => client.voice.parseVoiceState(raw, guildId: guild.id),
    ),
    members: parseMany(raw['members'] as List<Object?>, client.guilds[guild.id].members.parse),
    channels: parseMany(raw['channels'] as List<Object?>, (Map<String, Object?> raw) => client.channels.parse(raw, guildId: guild.id) as GuildChannel),
    threads: parseMany(raw['threads'] as List<Object?>, (Map<String, Object?> raw) => client.channels.parse(raw, guildId: guild.id) as Thread),
    presences: parseMany(raw['presences'] as List<Object?>, parsePresenceUpdate),
    stageInstances: parseMany(raw['stage_instances'] as List<Object?>, client.channels.parseStageInstance),
    scheduledEvents: parseMany(raw['guild_scheduled_events'] as List<Object?>, client.guilds[guild.id].scheduledEvents.parse),
  );
}