You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.1 KiB

use valence::prelude::{event::ChatMessage, *};
pub fn chat_handler(
mut clients: Query<(&mut Client, &Username)>,
mut messages: EventReader<ChatMessage>,
) {
for message in messages.iter() {
let username = match clients.get_component::<Username>(message.client) {
Ok(username) => username.to_string(),
_ => "Unknown".to_string(),
};
let new_message = format!("[{}] ", username).not_bold().color(Color::GOLD)
+ message.message.to_string().not_bold().color(Color::WHITE);
for (mut client, _) in &mut clients {
client.send_message(new_message.clone());
}
}
}
pub fn player_joined(mut clients: Query<(&mut Client, &Username)>) {
let mut messages: Vec<Text> = vec![];
for (mut client, username) in &mut clients {
if client.is_added() {
messages.push(
format!("{} joined the game", username)
.italic()
.color(Color::GRAY),
);
}
for message in messages.iter() {
client.send_message(message.clone());
}
}
}