PHP code example of cartograph / minecraft-nbt

1. Go to this page and download the library: Download cartograph/minecraft-nbt library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

cartograph / minecraft-nbt example snippets


use Cartograph\NBT\Nbt;

$tag = Nbt::compound([
    'name'  => Nbt::string('Bananrama'),
    'level' => Nbt::int(42),
]);

Nbt::writeFile($tag, 'player.nbt');

$tag = Nbt::readFile('player.nbt');

echo $tag->get('name')->value();      // "Bananrama"
echo $tag->get('level')->value();     // 42

use Cartograph\NBT\Nbt;

$level = Nbt::readFile('level.dat');

echo $level->get('Data')->get('LevelName')->value();

use Cartograph\NBT\Binary\Compression;
use Cartograph\NBT\Nbt;

Nbt::writeFile($tag, 'data.nbt');                                    // GZip
Nbt::writeFile($tag, 'data.zlib.nbt', '', Compression::Zlib);
Nbt::writeFile($tag, 'data.raw.nbt', '', Compression::None);

use Cartograph\NBT\Nbt;

$tag = Nbt::parseSnbt('{name: "Bananrama", level: 42b, scores: [1, 2, 3]}');

echo $tag->get('name')->value();           // "Bananrama"
echo $tag->get('level')->value();          //  42 (ByteTag)
echo $tag->get('scores')->get(1)->value(); //  2  (IntTag)

use Cartograph\NBT\Nbt;
use Cartograph\NBT\Snbt\SnbtOptions;

echo Nbt::renderSnbt($tag);
// {name:Bananrama,level:42b,scores:[1,2,3,],}

echo Nbt::renderSnbt($tag, new SnbtOptions(prettyPrint: true));
// {
//     name:Bananrama,
//     level:42b,
//     scores:[
//         1,
//         2,
//         3,
//     ],
// }

use Cartograph\NBT\Nbt;

$bytes = Nbt::writeNetworkBinary($tag);
$tag   = Nbt::readNetworkBinary($bytes);