diff --git a/pingscores.json b/pingscores.json index 7456af5..dd5b17b 100644 --- a/pingscores.json +++ b/pingscores.json @@ -1 +1 @@ -{"deadvey":58,"anon":15,"error":0} \ No newline at end of file +{"anon":15,"deadvey":58,"error":0} \ No newline at end of file diff --git a/src/.main.rs.swp b/src/.main.rs.swp index 28a7b97..a6ecfde 100644 Binary files a/src/.main.rs.swp and b/src/.main.rs.swp differ diff --git a/src/main.rs b/src/main.rs index 49ab5a4..b10fdcb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,10 +24,16 @@ struct Entry score: u32, person: String, } +enum Leaderboard +{ + Hiscores, + Loscores, + Pingscores, +} #[derive(Clone)] struct AppState { - tx: mpsc::Sender<(Entry,u8)>, + tx: mpsc::Sender<(Entry,Leaderboard)>, hiscores: Arc>>, loscores: Arc>>, pingscores: Arc>>, @@ -47,7 +53,7 @@ async fn main() { let loscore_clone1 = Arc::clone(&loscores); let pingscore_clone1 = Arc::clone(&pingscores); - let (tx, rx) = mpsc::channel::<(Entry,u8)>(); + let (tx, rx) = mpsc::channel::<(Entry,Leaderboard)>(); tokio::spawn( async move { @@ -94,7 +100,7 @@ async fn leaderboard() -> Html<&'static str> { Html(include_str!("../leaderboard.html")) } // receiver: 0 for hiscore, 1 for loscore, 2 for pingscore -fn handle_hiscores(rx: mpsc::Receiver<(Entry, u8)>, hiscores_arc: Arc>>, loscores_arc: Arc>>,pingscores_arc: Arc>>,) +fn handle_hiscores(rx: mpsc::Receiver<(Entry, Leaderboard)>, hiscores_arc: Arc>>, loscores_arc: Arc>>,pingscores_arc: Arc>>,) { // Panic galore let mut hiscores = hiscores_arc.lock().unwrap(); @@ -109,7 +115,7 @@ fn handle_hiscores(rx: mpsc::Receiver<(Entry, u8)>, hiscores_arc: Arc + Ok((new_entry,Leaderboard::Hiscores)) => { let mut hiscores = hiscores_arc.lock().unwrap(); if new_entry.score > hiscores[19].score { @@ -125,7 +131,7 @@ fn handle_hiscores(rx: mpsc::Receiver<(Entry, u8)>, hiscores_arc: Arc + Ok((new_entry,Leaderboard::Loscores)) => { let mut loscores = loscores_arc.lock().unwrap(); if new_entry.score > loscores[19].score { @@ -141,14 +147,13 @@ fn handle_hiscores(rx: mpsc::Receiver<(Entry, u8)>, hiscores_arc: Arc + Ok((new_entry,Leaderboard::Pingscores)) => { let name = new_entry.person; let mut pingscores = pingscores_arc.lock().unwrap(); *pingscores.entry(name).or_insert(0) += 1; drop(pingscores); } - Ok((_,_)) => println!("Invalid number"), Err(error) => println!("{error}"), } } @@ -172,7 +177,7 @@ async fn ws_handler( async fn handle_socket ( mut socket: WebSocket, - tx: mpsc::Sender<(Entry,u8)>, + tx: mpsc::Sender<(Entry,Leaderboard)>, hiscores_arc: Arc>>, loscores_arc: Arc>>, pingscores_arc: Arc>>, @@ -202,12 +207,12 @@ async fn handle_socket match msg { Ok(Message::Text(_)) => { if random_bool(CHANCE) { - let _ = tx.send((Entry{ person: name.clone(), score: value },0)); //hiscores - let _ = tx.send((Entry{ person: name.clone(), score: 0 },2)); //hiscores + let _ = tx.send((Entry{ person: name.clone(), score: value },Leaderboard::Hiscores)); //hiscores + let _ = tx.send((Entry{ person: name.clone(), score: 0 },Leaderboard::Pingscores)); //pingscores if value == 0 { resets += 1; - let _ = tx.send((Entry{ person: name.clone(), score: resets },1));//loscores + let _ = tx.send((Entry{ person: name.clone(), score: resets },Leaderboard::Loscores));//loscores } else { resets = 0 }; value = 0