Make sure chat messages always remain

This commit is contained in:
Sofia 2026-07-24 04:14:55 +03:00
parent 46bc9115ae
commit fa5e4517d1
2 changed files with 15 additions and 10 deletions

View File

@ -37,7 +37,7 @@ impl Chat {
pub enum ChatMessage {
Death(DamageSource, u16),
Announcement(u16, Announcement),
ChatMessage(u16, String),
ChatMessage(String, Color, String),
}
impl ChatMessage {
@ -79,13 +79,11 @@ impl ChatMessage {
label.append_text(&format!("[color=red]{}[/color]", what));
}
}
ChatMessage::ChatMessage(player_id, message) => {
if let Some(game) = Game::singleton()
&& let Some(player) = game.bind().find_player(*player_id)
{
add_player(&mut label, &player);
label.add_text(message);
}
ChatMessage::ChatMessage(name, color, message) => {
label.push_color(*color);
label.add_text(&format!("{}: ", name));
label.pop();
label.add_text(message);
}
}
label

View File

@ -909,8 +909,15 @@ impl Game {
pub fn on_chat_message(&mut self, player_id: u16, message: String) {
if let Some(chat) = &mut Chat::singleton() {
chat.bind_mut()
.new_message(ChatMessage::ChatMessage(player_id, message.clone()));
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(),
));
}
}
self.run_deferred(move |_| {
if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer