public static function getArrowCollisionBlock(Projectile $p)
 {
     if ($p->isCollidedVertically) {
         $block = $p->getLevel()->getBlock($p->floor());
         if ($block->getId() === 0) {
             $block = $p->getLevel()->getBlock($p->floor()->add(0, 1));
         }
         if ($block->getId() === 0) {
             $block = $p->getLevel()->getBlock($p->floor()->subtract(1));
         }
         return $block->getId() === 0 ? null : $block;
     }
     if ($p->isCollidedHorizontally) {
         $floor = $p->floor();
         $pos = new Vector3($p->x - $floor->x >= 0.5 ? $floor->x + 1 : $floor->x - 1, $floor->y, $p->z - $floor->z >= 0.5 ? $floor->z + 1 : $floor->z - 1);
         $block = $p->getLevel()->getBlock($pos);
         return $block->getId() === 0 ? null : $block;
     }
     return null;
 }