1
0
mirror of https://git.ngram.ca/OpenJam/rc-servers synced 2026-08-23 23:08:52 +00:00

Add more logging for #52

This commit is contained in:
NG (Graham)
2025-11-30 21:49:01 -05:00
parent 09563c9239
commit b1ecb87c96
3 changed files with 36 additions and 13 deletions

17
Cargo.lock generated
View File

@@ -2546,6 +2546,7 @@ dependencies = [
"chrono",
"futures",
"hex",
"indexmap",
"jsonwebtoken",
"libfj",
"log",
@@ -2749,10 +2750,12 @@ dependencies = [
[[package]]
name = "oj_serdes"
version = "0.1.0"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "986fe9d0d1382b2e04678db42e8e3754b8263203b590bfca72b18751250bbb72"
dependencies = [
"quick-xml",
"serde",
"serde_json",
]
[[package]]
@@ -3138,6 +3141,16 @@ dependencies = [
"syn 1.0.109",
]
[[package]]
name = "quick-xml"
version = "0.38.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c"
dependencies = [
"memchr",
"serde",
]
[[package]]
name = "quinn"
version = "0.11.9"

View File

@@ -50,4 +50,5 @@ rand = { version = "0.9", features = [ "thread_rng" ] }
num-quaternion = "1.0"
hex = "0.4"
base64 = "0.22"
oj_serdes = { version = "0.1.0", path = "../oj_core/serdes" }
#oj_serdes = { version = "0.2.0", path = "../oj_core/serdes" }
oj_serdes = "0.2.0"

View File

@@ -25,6 +25,17 @@ struct QueueKey {
auto_heal: bool,
}
impl QueueKey {
fn guid(&self) -> String {
use std::hash::Hasher;
let mut hasher = std::hash::DefaultHasher::new();
self.hash(&mut hasher);
//chrono::Utc::now().timestamp_micros().hash(&mut hasher);
let guid = oj_rc_core::persist::user::uuid_sanitize(hasher.finish() as i64);
oj_rc_core::persist::user::i64_as_uuid_str(guid)
}
}
struct QueueUser {
emitter: polariton_server::events::EventEmitter,
player: oj_rc_core::data::player_data::PlayerData,
@@ -62,12 +73,7 @@ impl QueueHandler {
}
async fn enter_match(&self, key: QueueKey, mut players: Vec<QueueUser>, user: &(dyn oj_rc_core::persist::user::LobbyUser + Send + Sync)) {
use std::hash::Hasher;
let mut hasher = std::hash::DefaultHasher::new();
key.hash(&mut hasher);
chrono::Utc::now().timestamp_micros().hash(&mut hasher);
let guid = oj_rc_core::persist::user::uuid_sanitize(hasher.finish() as i64);
let guid_str = oj_rc_core::persist::user::i64_as_uuid_str(guid);
let guid_str = key.guid();
let game_desc = oj_rc_core::persist::user::GameDescriptor {
guid: guid_str.clone(),
map: key.map.clone(),
@@ -104,7 +110,7 @@ impl QueueHandler {
port: self.hostport,
map: key.map.clone(),
mode: key.mode,
guid: guid_str,
guid: guid_str.clone(),
is_ranked: false,
is_custom: false,
visibility: Some(key.visibility),
@@ -116,6 +122,7 @@ impl QueueHandler {
for player in players.iter() {
tokio::spawn(Self::send_events_to_player(arc_event.clone(), player.emitter.clone()));
}
log::info!("{} players are entering match {}", players.len(), guid_str);
},
Err(e) => {
if let Some(msg) = e.error_msg() {
@@ -174,7 +181,7 @@ impl QueueHandler {
}
*lock = new_queue_map;
if count != 0 {
log::info!("Upgraded {} users in queue to new gamemode", count);
log::info!("Upgraded {} users in queue to new gamemode {}", count, key.guid());
}
},
GamemodeChangeStrategy::Notify => {
@@ -189,18 +196,20 @@ impl QueueHandler {
}
}
if count != 0 {
log::info!("Notified {} users in queue of new gamemode", count);
log::info!("Notified {} users in queue of new gamemode {}", count, key.guid());
}
},
GamemodeChangeStrategy::Ignore => {
log::debug!("Gamemode appears to have changed, ignoring already-queued players");
log::debug!("Gamemode appears to have changed to {}, ignoring already-queued players", key.guid());
}
}
}
let players_len = if let Some(players) = lock.get_mut(&key) {
log::info!("User {} entered queue for existing match {}", new_player.user_id, key.guid());
players.push(new_player);
players.len()
} else {
log::info!("User {} entered queue for new match {}", new_player.user_id, key.guid());
lock.insert(key.clone(), vec![new_player]);
1
};