diff options
Diffstat (limited to 'azalea-client/src/plugins')
| -rw-r--r-- | azalea-client/src/plugins/chat/mod.rs | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/azalea-client/src/plugins/chat/mod.rs b/azalea-client/src/plugins/chat/mod.rs index 2e98fdf8..856184cc 100644 --- a/azalea-client/src/plugins/chat/mod.rs +++ b/azalea-client/src/plugins/chat/mod.rs @@ -63,14 +63,21 @@ impl ChatPacket { match self { ChatPacket::System(p) => { let message = p.content.to_string(); - - // Overlay messages aren't in chat + // overlay messages aren't in chat if p.overlay { return (None, message); } - // It's a system message, so we'll have to match the content with regex - if let Some(m) = regex!("^<([a-zA-Z_0-9]{1,16})> (?:-> me)?(.+)$").captures(&message) { + // it's a system message, so we'll have to match the content with regex + + if let Some(m) = + regex!("^<([a-zA-Z_0-9]{1,16})> (?:-> me)?(.+)$").captures(&message) + { + return (Some(m[1].to_string()), m[2].to_string()); + } + // 2b2t whispers + if let Some(m) = regex!("^([a-zA-Z_0-9]{1,16}) whispers: (.+)$").captures(&message) + { return (Some(m[1].to_string()), m[2].to_string()); } @@ -132,15 +139,11 @@ impl ChatPacket { match self { ChatPacket::System(p) => { let message = p.content.to_string(); - - // Overlay messages aren't in chat if p.overlay { return false; } - - // It's a system message, so we'll have to match the content with regex - if let Some(m) = regex!("^(-> me)?(?:.+)$").captures(&message) { - return m.get(1).is_some(); + if regex!("^(-> me|[a-zA-Z_0-9]{1,16} whispers: )").is_match(&message) { + return true; } false |
