feat: remove max_connections from server config

This commit is contained in:
2026-08-18 22:13:39 +02:00
parent a6cc7109b3
commit 058cf69c19
2 changed files with 11 additions and 8 deletions

View File

@@ -26,6 +26,12 @@ use crate::{
settings::{general_settings::SettingsLike, server_settings::ServerSettings},
};
const MAX_PLAYABLE_CONNECTIONS: usize = 2; // DON'T EVER CHANGE THIS AS GAME OF CHECKERS HAS ONLY TWO PLAYERS, U
// UNDERSTAND????
//
// There will be a spectator mode, hence the name __PLAYABLE__ connection. You will be able to have
// more connections, but they won't be able to play
#[derive(PartialEq)]
enum ServerStage {
Lobby,
@@ -143,7 +149,7 @@ impl Server {
tokio::select! {
new_client_opt = self.welcoming_reciever.as_mut().expect("Welcoming reciever was not set. Was the server started?").recv() => {
if let Some((addr, sender)) = new_client_opt {
if self.state.stage == ServerStage::Lobby && self.connections.keys().len() < self.settings.max_connections && !self.settings.allow_spectators {
if self.state.stage == ServerStage::Lobby && self.connections.keys().len() < MAX_PLAYABLE_CONNECTIONS && !self.settings.allow_spectators {
let identity = NetworkServerIdentity::new(sender);
self.connections.insert(addr, identity);
self.request_handshake(addr).await;
@@ -216,7 +222,7 @@ impl Server {
}
}
if names.len() != self.settings.max_connections {
if names.len() != MAX_PLAYABLE_CONNECTIONS {
error!("Tried starting the game, but could not gather enough ready player names");
return;
}
@@ -312,11 +318,11 @@ impl Server {
self.state.ready_count += 1;
info!(
"{} signaled readiness. Currently ready: {}/{}",
addr, self.state.ready_count, self.settings.max_connections
addr, self.state.ready_count, MAX_PLAYABLE_CONNECTIONS
);
self.connections.get_mut(&addr).expect("Couldn't get the identity of the ready player. I guess this should never happen so i'm panicking like a little bitch").identity.is_ready = true; // TODO! This sometimes happens for some reason (when there is a game going, both player leave and someone tries to join)
if self.state.ready_count == self.settings.max_connections {
if self.state.ready_count == MAX_PLAYABLE_CONNECTIONS {
info!("All players are ready! Changing state to ServerStage::Game");
self.state.stage = ServerStage::Game;
self.start_game().await;
@@ -472,7 +478,7 @@ impl Server {
self.state.ready_count -= 1;
info!(
"Currently {}/{} players are ready",
self.state.ready_count, self.settings.max_connections
self.state.ready_count, MAX_PLAYABLE_CONNECTIONS
);
}
self.connections.remove(&addr);

View File

@@ -11,7 +11,6 @@ use crate::settings::general_settings::{DEFAULT_URL, SettingsLike};
#[derive(Serialize, Deserialize)]
pub struct ServerSettings {
pub addr: SocketAddr,
pub max_connections: usize,
pub allow_spectators: bool,
}
@@ -19,8 +18,6 @@ impl Default for ServerSettings {
fn default() -> Self {
Self {
addr: DEFAULT_URL,
max_connections: 2, // Maybe this should be a const somewhere in the server code? It
// makes no sense to have different value than this
allow_spectators: false,
}
}