From 3ebcf0fd5cb8fa655a27e5bbae379142397ead20 Mon Sep 17 00:00:00 2001 From: mathiascode Date: Fri, 25 Aug 2017 17:55:41 +0300 Subject: Leashes work in 1.12.1 --- src/Protocol/Protocol_1_12.cpp | 72 ++++++++++++++++++++++++++++-------------- src/Protocol/Protocol_1_12.h | 2 ++ 2 files changed, 50 insertions(+), 24 deletions(-) diff --git a/src/Protocol/Protocol_1_12.cpp b/src/Protocol/Protocol_1_12.cpp index 0dba45e15..43ab682eb 100644 --- a/src/Protocol/Protocol_1_12.cpp +++ b/src/Protocol/Protocol_1_12.cpp @@ -1125,6 +1125,30 @@ void cProtocol_1_12::SendEntityMetadata(const cEntity & a_Entity) +void cProtocol_1_12::SendLeashEntity(const cEntity & a_Entity, const cEntity & a_EntityLeashedTo) +{ + ASSERT(m_State == 3); // In game mode? + cPacketizer Pkt(*this, 0x3c); // Set Attach Entity packet + Pkt.WriteBEUInt32(a_Entity.GetUniqueID()); + Pkt.WriteBEUInt32(a_EntityLeashedTo.GetUniqueID()); +} + + + + + +void cProtocol_1_12::SendUnleashEntity(const cEntity & a_Entity) +{ + ASSERT(m_State == 3); // In game mode? + cPacketizer Pkt(*this, 0x3c); // Set Attach Entity packet + Pkt.WriteBEUInt32(a_Entity.GetUniqueID()); + Pkt.WriteBEInt32(-1); // Unleash a_Entity +} + + + + + void cProtocol_1_12::SendEntityVelocity(const cEntity & a_Entity) { ASSERT(m_State == 3); // In game mode? @@ -1252,30 +1276,6 @@ void cProtocol_1_12::SendScoreUpdate(const AString & a_Objective, const AString -void cProtocol_1_12::SendLeashEntity(const cEntity & a_Entity, const cEntity & a_EntityLeashedTo) -{ - ASSERT(m_State == 3); // In game mode? - cPacketizer Pkt(*this, 0x3c); // Set Attach Entity packet - Pkt.WriteBEUInt32(a_Entity.GetUniqueID()); - Pkt.WriteBEUInt32(a_EntityLeashedTo.GetUniqueID()); -} - - - - - -void cProtocol_1_12::SendUnleashEntity(const cEntity & a_Entity) -{ - ASSERT(m_State == 3); // In game mode? - cPacketizer Pkt(*this, 0x3c); // Set Attach Entity packet - Pkt.WriteBEUInt32(a_Entity.GetUniqueID()); - Pkt.WriteBEInt32(-1); // Unleash a_Entity -} - - - - - void cProtocol_1_12::SendLogin(const cPlayer & a_Player, const cWorld & a_World) { // Send the Join Game packet: @@ -1945,6 +1945,30 @@ void cProtocol_1_12_1::SendEntityMetadata(const cEntity & a_Entity) +void cProtocol_1_12_1::SendLeashEntity(const cEntity & a_Entity, const cEntity & a_EntityLeashedTo) +{ + ASSERT(m_State == 3); // In game mode? + cPacketizer Pkt(*this, 0x3d); // Set Attach Entity packet + Pkt.WriteBEUInt32(a_Entity.GetUniqueID()); + Pkt.WriteBEUInt32(a_EntityLeashedTo.GetUniqueID()); +} + + + + + +void cProtocol_1_12_1::SendUnleashEntity(const cEntity & a_Entity) +{ + ASSERT(m_State == 3); // In game mode? + cPacketizer Pkt(*this, 0x3d); // Set Attach Entity packet + Pkt.WriteBEUInt32(a_Entity.GetUniqueID()); + Pkt.WriteBEInt32(-1); // Unleash a_Entity +} + + + + + void cProtocol_1_12_1::SendEntityVelocity(const cEntity & a_Entity) { ASSERT(m_State == 3); // In game mode? diff --git a/src/Protocol/Protocol_1_12.h b/src/Protocol/Protocol_1_12.h index e1fc12149..17d7d4e86 100644 --- a/src/Protocol/Protocol_1_12.h +++ b/src/Protocol/Protocol_1_12.h @@ -101,6 +101,8 @@ public: virtual void SendCameraSetTo(const cEntity & a_Entity) override; virtual void SendDisplayObjective(const AString & a_Objective, cScoreboard::eDisplaySlot a_Display) override; virtual void SendEntityMetadata(const cEntity & a_Entity) override; + virtual void SendLeashEntity(const cEntity & a_Entity, const cEntity & a_EntityLeashedTo) override; + virtual void SendUnleashEntity(const cEntity & a_Entity) override; virtual void SendEntityVelocity(const cEntity & a_Entity) override; virtual void SendEntityEquipment(const cEntity & a_Entity, short a_SlotNum, const cItem & a_Item) override; virtual void SendExperience(void) override; -- cgit v1.2.3