Adding block entity transmission to 1.13 (#4829)
+ Adding block entity transmission to 1.13 + Added HandlePacketSetBeaconEffect Co-authored-by: 12xx12 <12xx12100@gmail.com>
This commit is contained in:
parent
963ec77575
commit
70ab8d2f96
@ -211,7 +211,31 @@ void cProtocol_1_13::SendTabCompletionResults(const AStringVector & a_Results)
|
||||
|
||||
void cProtocol_1_13::SendUpdateBlockEntity(cBlockEntity & a_BlockEntity)
|
||||
{
|
||||
// TODO
|
||||
ASSERT(m_State == 3); // In game mode?
|
||||
cPacketizer Pkt(*this, pktUpdateBlockEntity);
|
||||
|
||||
Pkt.WriteXYZPosition64(a_BlockEntity.GetPosX(), a_BlockEntity.GetPosY(), a_BlockEntity.GetPosZ());
|
||||
|
||||
Byte Action = 0;
|
||||
switch (a_BlockEntity.GetBlockType())
|
||||
{
|
||||
case E_BLOCK_MOB_SPAWNER: Action = 1; break; // Update mob spawner spinny mob thing
|
||||
case E_BLOCK_COMMAND_BLOCK: Action = 2; break; // Update command block text
|
||||
case E_BLOCK_BEACON: Action = 3; break; // Update beacon entity
|
||||
case E_BLOCK_HEAD: Action = 4; break; // Update Mobhead entity
|
||||
// case E_BLOCK_CONDUIT: Action = 5; break; // Update Conduit entity
|
||||
case E_BLOCK_STANDING_BANNER:
|
||||
case E_BLOCK_WALL_BANNER: Action = 6; break; // Update banner entity
|
||||
// case structure tile entity: Action = 7; break; // Update Structure tile entity
|
||||
case E_BLOCK_END_GATEWAY: Action = 8; break; // Update destination for a end gateway entity
|
||||
case E_BLOCK_SIGN_POST: Action = 9; break; // Update sign entity
|
||||
// case E_BLOCK_SHULKER_BOX: Action = 10; break; // sets shulker box - not used just here if anyone is confused from reading the protocol wiki
|
||||
case E_BLOCK_BED: Action = 11; break; // Update bed color
|
||||
default: ASSERT(!"Unhandled or unimplemented BlockEntity update request!"); break;
|
||||
}
|
||||
Pkt.WriteBEUInt8(Action);
|
||||
|
||||
WriteBlockEntity(Pkt, a_BlockEntity);
|
||||
}
|
||||
|
||||
|
||||
@ -255,6 +279,7 @@ bool cProtocol_1_13::HandlePacket(cByteBuffer & a_ByteBuffer, UInt32 a_PacketTyp
|
||||
case 0x1b: HandlePacketCraftingBookData(a_ByteBuffer); return true;
|
||||
case 0x1d: break; // Resource pack status - not yet implemented
|
||||
case 0x1e: HandlePacketAdvancementTab(a_ByteBuffer); return true;
|
||||
case 0x20: HandlePacketSetBeaconEffect(a_ByteBuffer); return true;
|
||||
case 0x21: HandlePacketSlotSelect(a_ByteBuffer); return true;
|
||||
case 0x24: HandlePacketCreativeInventoryAction(a_ByteBuffer); return true;
|
||||
case 0x26: HandlePacketUpdateSign(a_ByteBuffer); return true;
|
||||
@ -296,6 +321,17 @@ void cProtocol_1_13::HandlePacketPluginMessage(cByteBuffer & a_ByteBuffer)
|
||||
|
||||
|
||||
|
||||
void cProtocol_1_13::HandlePacketSetBeaconEffect(cByteBuffer & a_ByteBuffer)
|
||||
{
|
||||
HANDLE_READ(a_ByteBuffer, ReadVarInt32, UInt32, Effect1);
|
||||
HANDLE_READ(a_ByteBuffer, ReadVarInt32, UInt32, Effect2);
|
||||
m_Client->HandleBeaconSelection(Effect1, Effect2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cProtocol::Version cProtocol_1_13::GetProtocolVersion()
|
||||
{
|
||||
return Version::Version_1_13;
|
||||
|
@ -83,6 +83,7 @@ protected:
|
||||
|
||||
virtual bool HandlePacket(cByteBuffer & a_ByteBuffer, UInt32 a_PacketType) override;
|
||||
virtual void HandlePacketPluginMessage(cByteBuffer & a_ByteBuffer) override;
|
||||
virtual void HandlePacketSetBeaconEffect(cByteBuffer & a_ByteBuffer);
|
||||
|
||||
virtual bool ReadItem(cByteBuffer & a_ByteBuffer, cItem & a_Item, size_t a_KeepRemainingBytes) override;
|
||||
virtual void WriteItem(cPacketizer & a_Pkt, const cItem & a_Item) override;
|
||||
|
Loading…
Reference in New Issue
Block a user