parseGuildCreate method
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),
);
}