Fixed item in hand in creative mode, player files are now readable by Minecraft PC

This commit is contained in:
Shoghi Cervantes
2014-05-29 18:45:49 +02:00
parent a45f8782b1
commit 96445c4613
6 changed files with 36 additions and 44 deletions

View File

@ -68,32 +68,32 @@ class Binary{
public static function writeMetadata(array $data){
$m = "";
foreach($data as $bottom => $d){
$m .= chr(($d[0] << 5) | ($bottom & 0x1F));
switch($d[0]){
$m .= chr(($d["type"] << 5) | ($bottom & 0x1F));
switch($d["type"]){
case 0:
$m .= self::writeByte($d[1]);
$m .= self::writeByte($d["value"]);
break;
case 1:
$m .= self::writeLShort($d[1]);
$m .= self::writeLShort($d["value"]);
break;
case 2:
$m .= self::writeLInt($d[1]);
$m .= self::writeLInt($d["value"]);
break;
case 3:
$m .= self::writeLFloat($d[1]);
$m .= self::writeLFloat($d["value"]);
break;
case 4:
$m .= self::writeLShort(strlen($d[1])) . $d[1];
$m .= self::writeLShort(strlen($d["value"])) . $d["value"];
break;
case 5:
$m .= self::writeLShort($d[1][0]);
$m .= self::writeByte($d[1][1]);
$m .= self::writeLShort($d[1][2]);
$m .= self::writeLShort($d["value"][0]);
$m .= self::writeByte($d["value"][1]);
$m .= self::writeLShort($d["value"][2]);
break;
case 6:
$m .= self::writeLInt($d[1][0]);
$m .= self::writeLInt($d[1][1]);
$m .= self::writeLInt($d[1][2]);
$m .= self::writeLInt($d["value"][0]);
$m .= self::writeLInt($d["value"][1]);
$m .= self::writeLInt($d["value"][2]);
break;
}
}
@ -158,10 +158,12 @@ class Binary{
$offset += 4;
}
break;
default:
return [];
}
if($types === true){
$m[$bottom] = array($r, $type);
$m[$bottom] = array("value" => $r, "type" => $type);
}else{
$m[$bottom] = $r;
}