diff --git a/set_version.sh b/set_version.sh index 40cde68a..39b6b3b7 100755 --- a/set_version.sh +++ b/set_version.sh @@ -1,3 +1,3 @@ #!/bin/bash -export version=0.5.1-alpha.21 +export version=0.5.1-alpha.22 echo "pub const VERSION: &str = \"${version}\";" > src/version.rs diff --git a/src/database/entities/user.rs b/src/database/entities/user.rs index 4db56467..a66f6396 100644 --- a/src/database/entities/user.rs +++ b/src/database/entities/user.rs @@ -119,8 +119,8 @@ impl User { self } - /// Mutate the user object to appear as seen by user. - pub fn with(mut self, permissions: UserPermissions<[u32; 1]>) -> User { + /// Apply any relevant badges. + pub fn apply_badges(mut self) -> User { let mut badges = self.badges.unwrap_or_else(|| 0); if let Ok(id) = Ulid::from_string(&self.id) { if id.datetime().timestamp_millis() < *EARLY_ADOPTER_BADGE { @@ -129,15 +129,21 @@ impl User { } self.badges = Some(badges); + self + } + + /// Mutate the user object to appear as seen by user. + pub fn with(self, permissions: UserPermissions<[u32; 1]>) -> User { + let mut user = self.apply_badges(); if permissions.get_view_profile() { - self.online = Some(is_online(&self.id)); + user.online = Some(is_online(&user.id)); } else { - self.status = None; + user.status = None; } - self.profile = None; - self + user.profile = None; + user } /// Mutate the user object to appear as seen by user. diff --git a/src/notifications/payload.rs b/src/notifications/payload.rs index f79d3fdd..afc7cbaa 100644 --- a/src/notifications/payload.rs +++ b/src/notifications/payload.rs @@ -112,7 +112,8 @@ pub async fn generate_ready(mut user: User) -> Result { user.relationship = Some(RelationshipStatus::User); user.online = Some(true); - users.push(user); + + users.push(user.apply_badges()); Ok(ClientboundNotification::Ready { users, diff --git a/src/version.rs b/src/version.rs index c7d448d5..db95f6fe 100644 --- a/src/version.rs +++ b/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "0.5.1-alpha.21"; +pub const VERSION: &str = "0.5.1-alpha.22";