aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
blob: 2e379fc6a222737643b75fb571fa1f9cf1750d49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use gpn_tron2::{
    config::Config,
    game::{server::game_server, Game},
    spectate::server::spectate_server,
    State,
};
use std::sync::Arc;
use tokio::{spawn, sync::broadcast};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    env_logger::init_from_env("LOG");
    let config = Config::load()?;
    let state = Arc::new(State {
        tick: broadcast::channel(16).0,
        game: Game::new(vec![]).into(),
        players: Default::default(),
        chat: broadcast::channel(16).0,
    });
    spawn(spectate_server(config.spectate, state.clone()));
    game_server(config.game, state.clone()).await?;
    Ok(())
}