From 9c0adaa5763998a174280059f3f1cb0975eeae85 Mon Sep 17 00:00:00 2001 From: Alexander Medvedev Date: Sat, 2 May 2026 18:47:19 +0200 Subject: [PATCH] fix: https://github.com/Pumpkin-MC/Pumpkin/issues/2085 --- pumpkin/src/entity/player.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pumpkin/src/entity/player.rs b/pumpkin/src/entity/player.rs index b354feede..e3e0853fc 100644 --- a/pumpkin/src/entity/player.rs +++ b/pumpkin/src/entity/player.rs @@ -2877,10 +2877,14 @@ impl Player { let current_level = self.experience_level.load(Ordering::Relaxed); let current_points = self.experience_points.load(Ordering::Relaxed); - let total_exp = experience::points_to_level(current_level) + current_points; - let new_total_exp = total_exp + added_points; - let (new_level, new_points) = experience::total_to_level_and_points(new_total_exp); + + let total_exp = experience::points_to_level(current_level) as i64 + current_points as i64; + let new_total_exp = total_exp + added_points as i64; + let safe_new_total = new_total_exp.clamp(0, i32::MAX as i64) as i32; + + let (new_level, new_points) = experience::total_to_level_and_points(safe_new_total); let progress = experience::progress_in_level(new_points, new_level); + self.set_experience(new_level, progress, new_points).await; }