@@ -9,6 +9,7 @@ use crate::core::session::Session;
99use bytes:: Bytes ;
1010use once_cell:: sync:: Lazy ;
1111use std:: any:: Any ;
12+ use std:: borrow:: Cow ;
1213use std:: collections:: HashMap ;
1314use std:: fmt:: Debug ;
1415use thiserror:: Error ;
@@ -72,9 +73,10 @@ static EVENT_MAP: Lazy<EventMap> = Lazy::new(|| {
7273
7374pub fn resolve_event ( packet : SsoPacket , session : & Session ) -> CEParseResult {
7475 // Lagrange.Core.Internal.Context.ServiceContext.ResolveEventByPacket
75- let payload = PacketReader :: new ( packet. payload ( ) ) . section ( |p| p. bytes ( ) ) ;
76- let Some ( parse) = EVENT_MAP . get ( packet. command ( ) ) else {
77- return Err ( EventError :: UnsupportedEvent ( packet. command ( ) . to_string ( ) ) ) ;
76+ let ( _, cmd, _, data) = packet. into_parts ( ) ;
77+ let payload = PacketReader :: new ( data. 0 ) . section ( |p| p. bytes ( ) ) ;
78+ let Some ( parse) = EVENT_MAP . get ( cmd. as_ref ( ) ) else {
79+ return Err ( EventError :: UnsupportedEvent ( cmd) ) ;
7880 } ;
7981 let events = parse ( payload, session) ?;
8082 Ok ( events)
@@ -101,7 +103,7 @@ pub fn downcast_mut_major_event<T: ServerEvent + 'static>(event: &mut CEParse) -
101103#[ derive( Debug , Error ) ]
102104pub enum EventError {
103105 #[ error( "unsupported event, commend: {0}" ) ]
104- UnsupportedEvent ( String ) ,
106+ UnsupportedEvent ( Cow < ' static , str > ) ,
105107
106108 #[ error( "TLV error occurred: {0}" ) ]
107109 MissingTlv ( #[ from] crate :: core:: tlv:: TlvError ) ,
0 commit comments