diff options
Diffstat (limited to 'azalea-client/src')
| -rwxr-xr-x | azalea-client/src/chat.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/azalea-client/src/chat.rs b/azalea-client/src/chat.rs index 3a0efa95..01236630 100755 --- a/azalea-client/src/chat.rs +++ b/azalea-client/src/chat.rs @@ -9,8 +9,6 @@ use azalea_protocol::packets::game::{ serverbound_chat_command_packet::ServerboundChatCommandPacket, serverbound_chat_packet::ServerboundChatPacket, }; -use lazy_static::lazy_static; -use regex::Regex; use std::time::{SystemTime, UNIX_EPOCH}; /// A chat packet, either a system message or a chat message. @@ -20,6 +18,13 @@ pub enum ChatPacket { Player(Box<ClientboundPlayerChatPacket>), } +macro_rules! regex { + ($re:literal $(,)?) => {{ + static RE: once_cell::sync::OnceCell<regex::Regex> = once_cell::sync::OnceCell::new(); + RE.get_or_init(|| regex::Regex::new($re).unwrap()) + }}; +} + impl ChatPacket { /// Get the message shown in chat for this packet. pub fn message(&self) -> Component { @@ -49,11 +54,7 @@ impl ChatPacket { } // It's a system message, so we'll have to match the content // with regex - lazy_static! { - static ref ANGLE_BRACKETS_RE: Regex = - Regex::new("^<([a-zA-Z_0-9]{1,16})> (.+)$").unwrap(); - } - if let Some(m) = ANGLE_BRACKETS_RE.captures(&message) { + if let Some(m) = regex!("^<([a-zA-Z_0-9]{1,16})> (.+)$").captures(&message) { return (Some(m[1].to_string()), m[2].to_string()); } |
