diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/model/event.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/model/event.rs b/src/model/event.rs index c88a59c..04169a6 100644 --- a/src/model/event.rs +++ b/src/model/event.rs @@ -615,8 +615,17 @@ impl<'de> Deserialize<'de> for GuildMembersChunkEvent { } } - let members: HashMap<UserId, Member> = - Deserialize::deserialize(members).map_err(DeError::custom)?; + let members = serde_json::from_value::<Vec<Member>>(members) + .map(|members| members + .into_iter() + .fold(HashMap::new(), |mut acc, member| { + let id = member.user.read().id; + + acc.insert(id, member); + + acc + })) + .map_err(DeError::custom)?; Ok(GuildMembersChunkEvent { guild_id, |