From ba2269e486a93dab5ec93ad68d6a680342888015 Mon Sep 17 00:00:00 2001 From: Daniel Bengl Date: Sat, 25 Jan 2025 23:56:36 +0100 Subject: [PATCH 1/3] Implement message limit --- src/client/chat/systems.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/client/chat/systems.rs b/src/client/chat/systems.rs index 3c724c12..a69abaef 100644 --- a/src/client/chat/systems.rs +++ b/src/client/chat/systems.rs @@ -4,6 +4,7 @@ use bevy_flair::style::components::{ClassList, NodeStyleSheet}; use chat_events::ChatMessageSendEvent; const MESSAGE_PROMPT: &str = "> "; +const MAX_MESSAGE_LENGTH: usize = 42; pub fn setup_chat_container(mut commands: Commands, asset_server: Res) { commands @@ -108,10 +109,16 @@ pub fn process_chat_input_system( Key::Backspace => { message.pop(); } - Key::Space => message.push(' '), + Key::Space => { + if message.len() < MAX_MESSAGE_LENGTH { + message.push(' '); + } + } Key::Character(input) => { - if input.chars().all(|c| !c.is_control()) { - message.push_str(input); + if message.len() < MAX_MESSAGE_LENGTH { + if input.chars().all(|c| !c.is_control()) { + message.push_str(input); + } } } _ => {} From de66b22bbc92108b9b7f8820a88e041da1bf29c0 Mon Sep 17 00:00:00 2001 From: Daniel Bengl Date: Sat, 25 Jan 2025 23:56:55 +0100 Subject: [PATCH 2/3] Update chat code ordering --- src/client/chat/systems.rs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/client/chat/systems.rs b/src/client/chat/systems.rs index a69abaef..573daf5e 100644 --- a/src/client/chat/systems.rs +++ b/src/client/chat/systems.rs @@ -252,6 +252,17 @@ mod tests { use chat_events::{ChatClearEvent, SingleChatSendEvent}; use rsmc::ChatMessage; + fn get_chat_messages(app: &mut App) -> Vec { + let mut messages = app + .world_mut() + .query::<(&Text, &chat_components::ChatMessageElement)>(); + + messages + .iter(app.world()) + .map(|(text, _)| text.0.clone()) + .collect() + } + #[test] fn test_send_message_system() { let mut app = App::new(); @@ -291,17 +302,6 @@ mod tests { ); } - fn get_chat_messages(app: &mut App) -> Vec { - let mut messages = app - .world_mut() - .query::<(&Text, &chat_components::ChatMessageElement)>(); - - messages - .iter(app.world()) - .map(|(text, _)| text.0.clone()) - .collect() - } - #[test] fn test_chat_clear_system() { let mut app = App::new(); From 4ec6e161f2d418e72a57fa0030a981681d50fc04 Mon Sep 17 00:00:00 2001 From: Daniel Bengl Date: Sat, 25 Jan 2025 23:58:38 +0100 Subject: [PATCH 3/3] Fix linter --- src/client/chat/systems.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/client/chat/systems.rs b/src/client/chat/systems.rs index 573daf5e..3e71085d 100644 --- a/src/client/chat/systems.rs +++ b/src/client/chat/systems.rs @@ -115,10 +115,9 @@ pub fn process_chat_input_system( } } Key::Character(input) => { - if message.len() < MAX_MESSAGE_LENGTH { - if input.chars().all(|c| !c.is_control()) { - message.push_str(input); - } + if message.len() < MAX_MESSAGE_LENGTH && input.chars().all(|c| !c.is_control()) + { + message.push_str(input); } } _ => {}