MCPcopy Create free account
hub / github.com/cuberite/cuberite / ParseItem

Method ParseItem

src/Protocol/Protocol132.cpp:701–736  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

699
700
701int cProtocol132::ParseItem(cItem & a_Item)
702{
703 HANDLE_PACKET_READ(ReadBEShort, short, ItemType);
704
705 if (ItemType <= -1)
706 {
707 a_Item.Empty();
708 return PARSE_OK;
709 }
710 a_Item.m_ItemType = ItemType;
711
712 HANDLE_PACKET_READ(ReadChar, char, ItemCount);
713 HANDLE_PACKET_READ(ReadBEShort, short, ItemDamage);
714 a_Item.m_ItemCount = ItemCount;
715 a_Item.m_ItemDamage = ItemDamage;
716 if (ItemCount <= 0)
717 {
718 a_Item.Empty();
719 }
720
721 HANDLE_PACKET_READ(ReadBEShort, short, MetadataLength);
722 if (MetadataLength <= 0)
723 {
724 return PARSE_OK;
725 }
726
727 // Read the metadata
728 AString Metadata;
729 Metadata.resize((size_t)MetadataLength);
730 if (!m_ReceivedData.ReadBuf((void *)Metadata.data(), (size_t)MetadataLength))
731 {
732 return PARSE_INCOMPLETE;
733 }
734
735 return ParseItemMetadata(a_Item, Metadata);
736}
737
738
739

Callers

nothing calls this directly

Calls 3

EmptyMethod · 0.80
resizeMethod · 0.80
ReadBufMethod · 0.80

Tested by

no test coverage detected