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:
@@ -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, ¬ification_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 10–14 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
|
||||
|
||||
Reference in New Issue
Block a user