NetworkBinaryStream: bail if finding unexpected trailing data on item extradata

this may help to discover additional bugs and/or missing data on items that we don't know about yet.
This commit is contained in:
Dylan K. Taylor 2021-04-11 16:02:41 +01:00
parent 3433406cff
commit 6c351357ab
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D

View File

@ -260,6 +260,11 @@ class NetworkBinaryStream extends BinaryStream{
if($netId === ItemTypeDictionary::getInstance()->fromStringId("minecraft:shield")){
$extraData->getLLong(); //"blocking tick" (ffs mojang)
}
if(!$extraData->feof()){
throw new \UnexpectedValueException("Unexpected trailing extradata for network item $netId");
}
if($nbt !== null){
if($nbt->hasTag(self::DAMAGE_TAG, IntTag::class)){
$meta = $nbt->getInt(self::DAMAGE_TAG);