Correct update live score logic

This commit is contained in:
Ethan O'Brien 2024-05-01 18:58:50 -05:00
parent 2a2806c148
commit a68a1f9e01

View file

@ -156,32 +156,32 @@ fn update_live_score(id: i64, uid: i64, score: i64) {
let mut result = array![]; let mut result = array![];
let mut current = 0; let mut current = 0;
let mut added = false; let mut added = false;
for _i in 0..11 { for i in 0..10 {
if current >= 10 { if current >= 10 {
break; break;
} }
if scores[current].is_empty() && !added { if scores[i].is_empty() && !added {
added = true; added = true;
result.push(object!{user: uid, score: score}).unwrap(); result.push(object!{user: uid, score: score}).unwrap();
} }
if scores[current].is_empty() { if scores[i].is_empty() {
break; break;
} }
if scores[current]["score"].as_i64().unwrap() < score { if scores[i]["score"].as_i64().unwrap() < score && !added {
added = true; added = true;
result.push(object!{user: uid, score: score}).unwrap(); result.push(object!{user: uid, score: score}).unwrap();
current += 1; current += 1;
if scores[current].is_empty() { if current >= 10 {
break; break;
} }
} }
if scores[current]["user"].as_i64().unwrap() == uid && !added { if scores[i]["user"].as_i64().unwrap() == uid && !added {
return; return;
} }
if scores[current]["user"].as_i64().unwrap() == uid { if scores[i]["user"].as_i64().unwrap() == uid {
continue; continue;
} }
result.push(scores[current].clone()).unwrap(); result.push(scores[i].clone()).unwrap();
current += 1; current += 1;
} }