diff --git a/src/API/BlockAPI.php b/src/API/BlockAPI.php index 284538834..36f429793 100644 --- a/src/API/BlockAPI.php +++ b/src/API/BlockAPI.php @@ -397,9 +397,15 @@ class BlockAPI{ switch($data["block"]){ case 44: //Slabs if($data["face"] === 0){ - break; + if($target[0] === 44 and ($target[1] & 0x08) === 0x08 and ($target[1] & 0x07) === ($data["meta"] & 0x07)){ + $replace = true; + $data["block"] = 43; + $data["meta"] = $data["meta"] & 0x07; + }else{ + $data["meta"] |= 0x08; + } }elseif($data["face"] === 1){ - if(($target[1] & 0x07) === ($data["meta"] & 0x07) and $target[0] === 44){ + if($target[0] === 44 and ($target[1] & 0x08) === 0 and ($target[1] & 0x07) === ($data["meta"] & 0x07)){ $replace = true; $data["block"] = 43; $data["meta"] = $data["meta"] & 0x07; @@ -408,11 +414,16 @@ class BlockAPI{ $data2 = $data; BlockFace::setPosition($data2, $data["face"]); $b = $this->server->api->level->getBlock($data2["x"], $data2["y"], $data2["z"]); - if($b[0] === 44 and ($b[1] & 0x07) === ($data["meta"] & 0x07) and $b[0] === 44){ + if($b[0] === 44 and ($b[1] & 0x07) === ($data["meta"] & 0x07)){ $data = $data2; $replace = true; $data["block"] = 43; $data["meta"] = $data["meta"] & 0x07; + }else{ + $data["meta"] = $data["meta"] & 0x07; + if($data["fy"] > 0.5){ + $data["meta"] |= 0x08; + } } } break;