diff options
author | daniel0916 <theschokolps@gmail.com> | 2014-04-16 14:31:02 +0200 |
---|---|---|
committer | daniel0916 <theschokolps@gmail.com> | 2014-04-16 14:31:02 +0200 |
commit | 5a9acb7eb6eef293dc53cfe916c74f5cfa069db4 (patch) | |
tree | 8e0b29c5f0240ac0961e69b905921243130d0258 /Tools/ProtoProxy/Connection.cpp | |
parent | Fixed merge conflict (diff) | |
parent | Attempted fix for the client crash with the new protocols. (diff) | |
download | cuberite-5a9acb7eb6eef293dc53cfe916c74f5cfa069db4.tar cuberite-5a9acb7eb6eef293dc53cfe916c74f5cfa069db4.tar.gz cuberite-5a9acb7eb6eef293dc53cfe916c74f5cfa069db4.tar.bz2 cuberite-5a9acb7eb6eef293dc53cfe916c74f5cfa069db4.tar.lz cuberite-5a9acb7eb6eef293dc53cfe916c74f5cfa069db4.tar.xz cuberite-5a9acb7eb6eef293dc53cfe916c74f5cfa069db4.tar.zst cuberite-5a9acb7eb6eef293dc53cfe916c74f5cfa069db4.zip |
Diffstat (limited to 'Tools/ProtoProxy/Connection.cpp')
-rw-r--r-- | Tools/ProtoProxy/Connection.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Tools/ProtoProxy/Connection.cpp b/Tools/ProtoProxy/Connection.cpp index d9b8e3dd1..b21d2ae59 100644 --- a/Tools/ProtoProxy/Connection.cpp +++ b/Tools/ProtoProxy/Connection.cpp @@ -2197,11 +2197,39 @@ bool cConnection::HandleServerSpawnMob(void) +struct sSpawnData +{ + AString m_Name; + AString m_Value; + AString m_Signature; + sSpawnData(const AString & a_Name, const AString & a_Value, const AString & a_Signature) : + m_Name(a_Name), + m_Value(a_Value), + m_Signature(a_Signature) + { + } +}; + +typedef std::vector<sSpawnData> sSpawnDatas; + + + + + bool cConnection::HandleServerSpawnNamedEntity(void) { HANDLE_SERVER_PACKET_READ(ReadVarInt, UInt32, EntityID); HANDLE_SERVER_PACKET_READ(ReadVarUTF8String, AString, EntityUUID); HANDLE_SERVER_PACKET_READ(ReadVarUTF8String, AString, EntityName); + HANDLE_SERVER_PACKET_READ(ReadVarInt, UInt32, DataCount); + sSpawnDatas Data; + for (UInt32 i = 0; i < DataCount; i++) + { + HANDLE_SERVER_PACKET_READ(ReadVarUTF8String, AString, Name) + HANDLE_SERVER_PACKET_READ(ReadVarUTF8String, AString, Value) + HANDLE_SERVER_PACKET_READ(ReadVarUTF8String, AString, Signature) + Data.push_back(sSpawnData(Name, Value, Signature)); + } HANDLE_SERVER_PACKET_READ(ReadBEInt, int, PosX); HANDLE_SERVER_PACKET_READ(ReadBEInt, int, PosY); HANDLE_SERVER_PACKET_READ(ReadBEInt, int, PosZ); @@ -2219,6 +2247,13 @@ bool cConnection::HandleServerSpawnNamedEntity(void) Log(" EntityID = %u (0x%x)", EntityID, EntityID); Log(" UUID = \"%s\"", EntityUUID.c_str()); Log(" Name = \"%s\"", EntityName.c_str()); + Log(" NumData = %u", DataCount); + for (sSpawnDatas::const_iterator itr = Data.begin(), end = Data.end(); itr != end; ++itr) + { + Log(" Name = \"%s\", Value = \"%s\", Signature = \"%s\"", + itr->m_Name.c_str(), itr->m_Value.c_str(), itr->m_Signature.c_str() + ); + } // for itr - Data[] Log(" Pos = %s", PrintableAbsIntTriplet(PosX, PosY, PosZ).c_str()); Log(" Rotation = <yaw %d, pitch %d>", Yaw, Pitch); Log(" CurrentItem = %d", CurrentItem); |