44using System . Linq ;
55
66using OXGaming . TibiaAPI . Constants ;
7+ using OXGaming . TibiaAPI . Utilities ;
78
89namespace OXGaming . TibiaAPI . Network
910{
@@ -339,6 +340,7 @@ public void ParseClientMessage(Client client, NetworkMessage inMessage, NetworkM
339340 var packetPosition = 0u ;
340341 var currentPacket = ClientPacketType . Invalid ;
341342 var lastKnownPacket = ClientPacketType . Invalid ;
343+ byte [ ] packetData = null ;
342344
343345 try
344346 {
@@ -353,12 +355,19 @@ public void ParseClientMessage(Client client, NetworkMessage inMessage, NetworkM
353355 }
354356 }
355357
358+ if ( client . Logger . Level == Logger . LogLevel . Debug )
359+ {
360+ packetData = inMessage . GetData ( ) ;
361+ }
362+
356363 while ( inMessage . Position < inMessage . Size )
357364 {
358365 packetPosition = inMessage . Position ;
359- currentPacket = ( ClientPacketType ) inMessage . ReadByte ( ) ;
360366
361- client . Logger . Debug ( $ "[CLIENT:{ inMessage . SequenceNumber } ] { currentPacket } ") ;
367+ var opcode = inMessage . ReadByte ( ) ;
368+ currentPacket = ( ClientPacketType ) opcode ;
369+
370+ client . Logger . Debug ( $ "[CLIENT:{ inMessage . SequenceNumber } ] { opcode : X2} - { currentPacket } ") ;
362371
363372 var packet = ClientPacket . CreateInstance ( client , currentPacket ) ;
364373 packet . ParseFromNetworkMessage ( inMessage ) ;
@@ -811,6 +820,14 @@ public void ParseClientMessage(Client client, NetworkMessage inMessage, NetworkM
811820
812821 packets . Add ( ( currentPacket , packetPosition ) ) ;
813822 lastKnownPacket = currentPacket ;
823+
824+ if ( client . Logger . Level == Logger . LogLevel . Debug && packetData != null )
825+ {
826+ var len = inMessage . Position - packetPosition ;
827+ var data = new byte [ len ] ;
828+ Array . Copy ( packetData , packetPosition , data , 0 , len ) ;
829+ client . Logger . Debug ( $ "{ BitConverter . ToString ( data ) . Replace ( '-' , ' ' ) } ") ;
830+ }
814831 }
815832 }
816833 catch ( Exception ex )
@@ -842,15 +859,23 @@ public void ParseServerMessage(Client client, NetworkMessage inMessage, NetworkM
842859 var packetPosition = 0u ;
843860 var currentPacket = ServerPacketType . Invalid ;
844861 var lastKnownPacket = ServerPacketType . Invalid ;
862+ byte [ ] packetData = null ;
845863
846864 try
847865 {
866+ if ( client . Logger . Level == Logger . LogLevel . Debug )
867+ {
868+ packetData = inMessage . GetData ( ) ;
869+ }
870+
848871 while ( inMessage . Position < inMessage . Size )
849872 {
850873 packetPosition = inMessage . Position ;
851- currentPacket = ( ServerPacketType ) inMessage . ReadByte ( ) ;
852874
853- client . Logger . Debug ( $ "[SERVER:{ inMessage . SequenceNumber } ] { currentPacket } ") ;
875+ var opcode = inMessage . ReadByte ( ) ;
876+ currentPacket = ( ServerPacketType ) opcode ;
877+
878+ client . Logger . Debug ( $ "[SERVER:{ inMessage . SequenceNumber } ] { opcode : X2} - { currentPacket } ") ;
854879
855880 var packet = ServerPacket . CreateInstance ( client , currentPacket ) ;
856881 packet . ParseFromNetworkMessage ( inMessage ) ;
@@ -1396,6 +1421,14 @@ public void ParseServerMessage(Client client, NetworkMessage inMessage, NetworkM
13961421
13971422 packets . Add ( ( currentPacket , packetPosition ) ) ;
13981423 lastKnownPacket = currentPacket ;
1424+
1425+ if ( client . Logger . Level == Logger . LogLevel . Debug && packetData != null )
1426+ {
1427+ var len = inMessage . Position - packetPosition ;
1428+ var data = new byte [ len ] ;
1429+ Array . Copy ( packetData , packetPosition , data , 0 , len ) ;
1430+ client . Logger . Debug ( $ "{ BitConverter . ToString ( data ) . Replace ( '-' , ' ' ) } ") ;
1431+ }
13991432 }
14001433 }
14011434 catch ( Exception ex )
@@ -1405,7 +1438,7 @@ public void ParseServerMessage(Client client, NetworkMessage inMessage, NetworkM
14051438 // possible and continue.
14061439 client . Logger . Error ( ex . ToString ( ) ) ;
14071440 client . Logger . Error ( $ "Current position: { inMessage . Position } ") ;
1408- client . Logger . Error ( $ "Current packet: [{ ( ( byte ) currentPacket ) . ToString ( "X2" ) } :{ packetPosition } ]{ currentPacket } ") ;
1441+ client . Logger . Error ( $ "Current packet: [{ ( byte ) currentPacket : X2 } :{ packetPosition } ]{ currentPacket } ") ;
14091442 client . Logger . Error ( $ "Last known packets: { string . Join ( " " , packets . Select ( p => "[" + ( ( byte ) p . PacketType ) . ToString ( "X2" ) + ":" + p . Position + "]" + p . PacketType ) . ToArray ( ) ) } ") ;
14101443 client . Logger . Error ( $ "Data: { BitConverter . ToString ( inMessage . GetData ( ) ) . Replace ( '-' , ' ' ) } ") ;
14111444 }
0 commit comments