From 0da812a776b8ed219184d1866fb25369ea4af062 Mon Sep 17 00:00:00 2001 From: Sofia Date: Sat, 8 Aug 2026 20:01:01 +0300 Subject: [PATCH] Fix chat messages --- rust/src/game/mod.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/rust/src/game/mod.rs b/rust/src/game/mod.rs index 7dd223c..a0b3016 100644 --- a/rust/src/game/mod.rs +++ b/rust/src/game/mod.rs @@ -1242,16 +1242,19 @@ impl Game { } pub fn on_chat_message(&mut self, player_id: u16, message: String) { - if let Some(chat) = &mut Chat::singleton() { - if let Some(player) = self.find_player(player_id) - && let Some(team) = self.get_team(player.data.team) - { - chat.bind_mut().new_message(ChatMessage::ChatMessage( - player.data.name.clone(), - team.bind().color(), - message.clone(), - )); - } + if let Some(player) = self.find_player(player_id).cloned() + && let Some(team) = self.get_team(player.data.team).clone() + { + let message = message.clone(); + self.run_deferred_gd(move |_| { + if let Some(chat) = &mut Chat::singleton() { + chat.bind_mut().new_message(ChatMessage::ChatMessage( + player.data.name.clone(), + team.bind().color(), + message.clone(), + )); + } + }); } self.run_deferred(move |_| { if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer