1use std::time::Duration;
2
3use warcraft3_stats_observer::ObserverHandle;
4
5fn main() {
6 let od = match ObserverHandle::new() {
7 Ok(od) => od,
8 Err(e) => {
9 eprintln!("Error opening observer API. Is Warcraft3 running? Error: {e:?}");
10 return;
11 }
12 };
13
14 println!("version: {}", { od.version });
15 println!("refresh rate: {}", { od.refresh_rate });
16
17 let game = &od.game;
18
19 println!("in game: {:?}", game.in_game);
20 println!(
21 "time: {:02}:{:02}",
22 game.time().as_secs() / 60,
23 game.time().as_secs() % 60
24 );
25 println!("active player count: {:?}", game.active_player_count);
26 println!("game name: {}", game.game_name);
27 println!("map name: {}", game.map_name);
28
29 loop {
30 for player in od.players.iter().take(od.game.active_player_count as usize) {
31 println!("{} has {} gold {} lumber", player.name, { player.gold }, {
32 player.lumber
33 });
34 }
35 println!();
36 std::thread::sleep(Duration::from_millis(od.refresh_rate as u64));
37 }
38}