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
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());
|
|
}
|
|
}
|
|
}
|