mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-09 03:06:55 +00:00
Sync NBT dependency
This commit is contained in:
@ -27,7 +27,7 @@ use pocketmine\level\format\io\exception\UnsupportedLevelFormatException;
|
||||
use pocketmine\level\generator\Flat;
|
||||
use pocketmine\level\generator\GeneratorManager;
|
||||
use pocketmine\level\Level;
|
||||
use pocketmine\nbt\LittleEndianNBTStream;
|
||||
use pocketmine\nbt\LittleEndianNbtSerializer;
|
||||
use pocketmine\nbt\tag\ByteTag;
|
||||
use pocketmine\nbt\tag\CompoundTag;
|
||||
use pocketmine\nbt\tag\FloatTag;
|
||||
@ -97,13 +97,13 @@ class BedrockLevelData extends BaseNbtLevelData{
|
||||
new StringTag("generatorOptions", $options["preset"] ?? "")
|
||||
]);
|
||||
|
||||
$nbt = new LittleEndianNBTStream();
|
||||
$nbt = new LittleEndianNbtSerializer();
|
||||
$buffer = $nbt->write($levelData);
|
||||
file_put_contents($path . "level.dat", Binary::writeLInt(self::CURRENT_STORAGE_VERSION) . Binary::writeLInt(strlen($buffer)) . $buffer);
|
||||
}
|
||||
|
||||
protected function load() : ?CompoundTag{
|
||||
$nbt = new LittleEndianNBTStream();
|
||||
$nbt = new LittleEndianNbtSerializer();
|
||||
$levelData = $nbt->read(substr(file_get_contents($this->dataPath), 8));
|
||||
|
||||
$version = $levelData->getInt("StorageVersion", INT32_MAX, true);
|
||||
@ -148,7 +148,7 @@ class BedrockLevelData extends BaseNbtLevelData{
|
||||
$this->compoundTag->setInt("NetworkVersion", ProtocolInfo::CURRENT_PROTOCOL);
|
||||
$this->compoundTag->setInt("StorageVersion", self::CURRENT_STORAGE_VERSION);
|
||||
|
||||
$nbt = new LittleEndianNBTStream();
|
||||
$nbt = new LittleEndianNbtSerializer();
|
||||
$buffer = $nbt->write($this->compoundTag);
|
||||
file_put_contents($this->dataPath, Binary::writeLInt(self::CURRENT_STORAGE_VERSION) . Binary::writeLInt(strlen($buffer)) . $buffer);
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ namespace pocketmine\level\format\io\data;
|
||||
|
||||
use pocketmine\level\generator\GeneratorManager;
|
||||
use pocketmine\level\Level;
|
||||
use pocketmine\nbt\BigEndianNBTStream;
|
||||
use pocketmine\nbt\BigEndianNbtSerializer;
|
||||
use pocketmine\nbt\tag\ByteTag;
|
||||
use pocketmine\nbt\tag\CompoundTag;
|
||||
use pocketmine\nbt\tag\FloatTag;
|
||||
@ -61,7 +61,7 @@ class JavaLevelData extends BaseNbtLevelData{
|
||||
new StringTag("LevelName", $name),
|
||||
new CompoundTag("GameRules", [])
|
||||
]);
|
||||
$nbt = new BigEndianNBTStream();
|
||||
$nbt = new BigEndianNbtSerializer();
|
||||
$buffer = $nbt->writeCompressed(new CompoundTag("", [
|
||||
$levelData
|
||||
]));
|
||||
@ -69,7 +69,7 @@ class JavaLevelData extends BaseNbtLevelData{
|
||||
}
|
||||
|
||||
protected function load() : ?CompoundTag{
|
||||
$nbt = new BigEndianNBTStream();
|
||||
$nbt = new BigEndianNbtSerializer();
|
||||
$levelData = $nbt->readCompressed(file_get_contents($this->dataPath));
|
||||
if($levelData->hasTag("Data", CompoundTag::class)){
|
||||
return $levelData->getCompoundTag("Data");
|
||||
@ -90,7 +90,7 @@ class JavaLevelData extends BaseNbtLevelData{
|
||||
}
|
||||
|
||||
public function save() : void{
|
||||
$nbt = new BigEndianNBTStream();
|
||||
$nbt = new BigEndianNbtSerializer();
|
||||
$this->compoundTag->setName("Data");
|
||||
$buffer = $nbt->writeCompressed(new CompoundTag("", [
|
||||
$this->compoundTag
|
||||
|
@ -31,7 +31,7 @@ use pocketmine\level\format\io\exception\UnsupportedChunkFormatException;
|
||||
use pocketmine\level\format\io\exception\UnsupportedLevelFormatException;
|
||||
use pocketmine\level\format\io\LevelData;
|
||||
use pocketmine\level\format\SubChunk;
|
||||
use pocketmine\nbt\LittleEndianNBTStream;
|
||||
use pocketmine\nbt\LittleEndianNbtSerializer;
|
||||
use pocketmine\nbt\tag\CompoundTag;
|
||||
use pocketmine\utils\Binary;
|
||||
use pocketmine\utils\BinaryStream;
|
||||
@ -239,7 +239,7 @@ class LevelDB extends BaseLevelProvider{
|
||||
throw new UnsupportedChunkFormatException("don't know how to decode chunk format version $chunkVersion");
|
||||
}
|
||||
|
||||
$nbt = new LittleEndianNBTStream();
|
||||
$nbt = new LittleEndianNbtSerializer();
|
||||
|
||||
/** @var CompoundTag[] $entities */
|
||||
$entities = [];
|
||||
@ -332,7 +332,7 @@ class LevelDB extends BaseLevelProvider{
|
||||
*/
|
||||
private function writeTags(array $targets, string $index) : void{
|
||||
if(!empty($targets)){
|
||||
$nbt = new LittleEndianNBTStream();
|
||||
$nbt = new LittleEndianNbtSerializer();
|
||||
$this->db->put($index, $nbt->writeMultiple($targets));
|
||||
}else{
|
||||
$this->db->delete($index);
|
||||
|
@ -27,7 +27,7 @@ use pocketmine\level\format\Chunk;
|
||||
use pocketmine\level\format\io\ChunkUtils;
|
||||
use pocketmine\level\format\io\exception\CorruptedChunkException;
|
||||
use pocketmine\level\format\SubChunk;
|
||||
use pocketmine\nbt\BigEndianNBTStream;
|
||||
use pocketmine\nbt\BigEndianNbtSerializer;
|
||||
use pocketmine\nbt\NBT;
|
||||
use pocketmine\nbt\tag\CompoundTag;
|
||||
use pocketmine\nbt\tag\IntArrayTag;
|
||||
@ -89,14 +89,14 @@ trait LegacyAnvilChunkTrait{
|
||||
|
||||
//TODO: TileTicks
|
||||
|
||||
$writer = new BigEndianNBTStream();
|
||||
$writer = new BigEndianNbtSerializer();
|
||||
return $writer->writeCompressed(new CompoundTag("", [$nbt]), ZLIB_ENCODING_DEFLATE, RegionLoader::$COMPRESSION_LEVEL);
|
||||
}
|
||||
|
||||
abstract protected function serializeSubChunk(SubChunk $subChunk) : CompoundTag;
|
||||
|
||||
protected function deserializeChunk(string $data) : Chunk{
|
||||
$nbt = new BigEndianNBTStream();
|
||||
$nbt = new BigEndianNbtSerializer();
|
||||
$chunk = $nbt->readCompressed($data);
|
||||
if(!$chunk->hasTag("Level")){
|
||||
throw new CorruptedChunkException("'Level' key is missing from chunk NBT");
|
||||
|
@ -27,7 +27,7 @@ use pocketmine\level\format\Chunk;
|
||||
use pocketmine\level\format\io\ChunkUtils;
|
||||
use pocketmine\level\format\io\exception\CorruptedChunkException;
|
||||
use pocketmine\level\format\SubChunk;
|
||||
use pocketmine\nbt\BigEndianNBTStream;
|
||||
use pocketmine\nbt\BigEndianNbtSerializer;
|
||||
use pocketmine\nbt\NBT;
|
||||
use pocketmine\nbt\tag\ByteArrayTag;
|
||||
use pocketmine\nbt\tag\CompoundTag;
|
||||
@ -95,7 +95,7 @@ class McRegion extends RegionLevelProvider{
|
||||
|
||||
$nbt->setTag(new ListTag("TileEntities", $tiles, NBT::TAG_Compound));
|
||||
|
||||
$writer = new BigEndianNBTStream();
|
||||
$writer = new BigEndianNbtSerializer();
|
||||
return $writer->writeCompressed(new CompoundTag("", [$nbt]), ZLIB_ENCODING_DEFLATE, RegionLoader::$COMPRESSION_LEVEL);
|
||||
}
|
||||
|
||||
@ -106,7 +106,7 @@ class McRegion extends RegionLevelProvider{
|
||||
* @throws CorruptedChunkException
|
||||
*/
|
||||
protected function deserializeChunk(string $data) : Chunk{
|
||||
$nbt = new BigEndianNBTStream();
|
||||
$nbt = new BigEndianNbtSerializer();
|
||||
$chunk = $nbt->readCompressed($data);
|
||||
if(!$chunk->hasTag("Level")){
|
||||
throw new CorruptedChunkException("'Level' key is missing from chunk NBT");
|
||||
|
Reference in New Issue
Block a user