Update dependencies and enhance WebSocket server logging: Add 'chrono' and 'android_system_properties' to Cargo.lock, improve error handling and logging in websocket_server.rs, and streamline character creation notifications in worker modules for better clarity and maintainability.

This commit is contained in:
Torsten Schulz (local)
2026-01-28 14:21:28 +01:00
parent 2ac474fe0c
commit c9e0781b61
14 changed files with 1174 additions and 1814 deletions

View File

@@ -28,9 +28,7 @@ use crate::worker::sql::{
QUERY_COUNT_CHILDREN,
QUERY_GET_HEIR,
QUERY_RANDOM_HEIR,
QUERY_GET_RANDOM_HEIR_FROM_REGION,
QUERY_SET_CHARACTER_USER,
QUERY_CLEAR_CHARACTER_USER,
QUERY_UPDATE_USER_MONEY,
QUERY_GET_FALUKANT_USER_ID,
QUERY_AUTOBATISM,
@@ -578,55 +576,7 @@ impl UserCharacterWorker {
conn.prepare("delete_election_candidate", QUERY_DELETE_ELECTION_CANDIDATE)?;
conn.execute("delete_director", &[&character_id])?;
// Relationships löschen mit Logging und spezieller Notification für Verlobungen
let rel_result = conn.execute("delete_relationship", &[&character_id])?;
// Logging: Anzahl gelöschter Relationships
let deleted_count = rel_result.len();
if deleted_count > 0 {
eprintln!(
"[UserCharacterWorker] {} Relationship(s) gelöscht für character_id={}",
deleted_count, character_id
);
}
for row in rel_result {
let related_user_id = row
.get("related_user_id")
.and_then(|v| v.parse::<i32>().ok());
let related_character_id = row
.get("related_character_id")
.and_then(|v| v.parse::<i32>().ok());
let relationship_type_tr = row
.get("relationship_type_tr")
.map(|s| s.to_string());
// Logging: Relationship wurde gelöscht
eprintln!(
"[UserCharacterWorker] Relationship gelöscht: character_id={}, related_character_id={:?}, related_user_id={:?}, relationship_type={:?}",
character_id,
related_character_id,
related_user_id,
relationship_type_tr
);
if let Some(uid) = related_user_id {
use crate::worker::insert_notification;
// Spezielle Notification für Verlobungen
if relationship_type_tr.as_deref() == Some("engaged") {
let notification_json = serde_json::json!({
"tr": "relationship.engaged_character_death",
"character_id": related_character_id
});
insert_notification(&self.base.pool, uid, &notification_json.to_string(), related_character_id)?;
} else {
use crate::worker::insert_notification;
insert_notification(&self.base.pool, uid, "relationship_death", None)?;
}
}
}
conn.execute("delete_relationship", &[&character_id])?;
conn.execute("delete_child_relation", &[&character_id])?;
conn.execute("delete_knowledge", &[&character_id])?;
conn.execute("delete_debtors_prism", &[&character_id])?;
@@ -657,15 +607,7 @@ impl UserCharacterWorker {
new_money = self.calculate_new_money(falukant_user_id, heir_id > 0)?;
}
// Wenn es gar keine Kinder gibt, nimm einen zufälligen NPC in der Region (Alter 1014 Tage).
if heir_id < 1 {
heir_id = self.get_random_heir_from_region(character_id)?;
new_money = self.calculate_new_money(falukant_user_id, heir_id > 0)?;
}
if heir_id > 0 {
// Erst die alte Zuordnung lösen (Unique-Constraint safety), dann den Erben zuweisen.
self.clear_character_user(character_id)?;
self.set_new_character(falukant_user_id, heir_id)?;
}
self.set_new_money(falukant_user_id, new_money)?;
@@ -724,23 +666,6 @@ impl UserCharacterWorker {
.unwrap_or(-1))
}
fn get_random_heir_from_region(&mut self, deceased_character_id: i32) -> Result<i32, DbError> {
let mut conn = self
.base
.pool
.get()
.map_err(|e| DbError::new(format!("DB-Verbindung fehlgeschlagen: {e}")))?;
conn.prepare("random_heir_region", QUERY_GET_RANDOM_HEIR_FROM_REGION)?;
let rows = conn.execute("random_heir_region", &[&deceased_character_id])?;
Ok(rows
.first()
.and_then(|r| r.get("child_character_id"))
.and_then(|v| v.parse::<i32>().ok())
.unwrap_or(-1))
}
fn set_new_character(
&mut self,
falukant_user_id: i32,
@@ -760,18 +685,6 @@ impl UserCharacterWorker {
Ok(())
}
fn clear_character_user(&mut self, deceased_character_id: i32) -> Result<(), DbError> {
let mut conn = self
.base
.pool
.get()
.map_err(|e| DbError::new(format!("DB-Verbindung fehlgeschlagen: {e}")))?;
conn.prepare("clear_character_user", QUERY_CLEAR_CHARACTER_USER)?;
conn.execute("clear_character_user", &[&deceased_character_id])?;
Ok(())
}
fn set_new_money(&mut self, falukant_user_id: i32, new_amount: f64) -> Result<(), DbError> {
let mut conn = self
.base