aboutsummaryrefslogtreecommitdiff
path: root/server/src/main.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-07-11 15:27:49 +0200
committermetamuffin <metamuffin@disroot.org>2024-07-11 15:27:49 +0200
commitf61c3b437e5d6f3f32ec558576aa656aaa7dae5e (patch)
tree2f63feb303404e74ed72cc225c0ebcaf41722043 /server/src/main.rs
parent17e7cb63bf70b35a58cf52ebea4bb543c450320f (diff)
downloadhurrycurry-f61c3b437e5d6f3f32ec558576aa656aaa7dae5e.tar
hurrycurry-f61c3b437e5d6f3f32ec558576aa656aaa7dae5e.tar.bz2
hurrycurry-f61c3b437e5d6f3f32ec558576aa656aaa7dae5e.tar.zst
send protocol version
Diffstat (limited to 'server/src/main.rs')
-rw-r--r--server/src/main.rs15
1 files changed, 12 insertions, 3 deletions
diff --git a/server/src/main.rs b/server/src/main.rs
index f81ee38c..90d090d8 100644
--- a/server/src/main.rs
+++ b/server/src/main.rs
@@ -18,7 +18,7 @@
use anyhow::{anyhow, Result};
use clap::Parser;
use futures_util::{SinkExt, StreamExt};
-use hurrycurry_protocol::{PacketC, PacketS, PlayerID};
+use hurrycurry_protocol::{PacketC, PacketS, PlayerID, VERSION};
use hurrycurry_server::{data::DATA_DIR, state::State};
use log::{debug, info, trace, warn, LevelFilter};
use std::{path::PathBuf, process::exit, str::FromStr, sync::Arc, time::Duration};
@@ -108,13 +108,22 @@ async fn run() -> anyhow::Result<()> {
warn!("invalid ws handshake");
continue;
};
+ info!("{addr} connected via websocket");
+
let (mut write, mut read) = sock.split();
let state = state.clone();
let mut rx = rx.resubscribe();
let (error_tx, mut error_rx) = channel::<PacketC>(8);
- info!("{addr} connected via websocket");
+
let mut init = state.write().await.game.prime_client();
- init.insert(0, PacketC::Init { id });
+ init.insert(
+ 0,
+ PacketC::Version {
+ major: VERSION.0,
+ minor: VERSION.1,
+ },
+ );
+ init.insert(1, PacketC::Init { id });
spawn(async move {
for p in init {
if let Err(e) = write