From 999990756c54e9d92cda28f2a9d7fa0ea05f9dba Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Mon, 7 Apr 2014 16:43:16 +0200 Subject: [PATCH] Fixed invalid string type in writeMetadata() --- src/pocketmine/utils/Binary.php | 12 ++++++++---- src/pocketmine/utils/Random.php | 11 ++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/pocketmine/utils/Binary.php b/src/pocketmine/utils/Binary.php index a6013da07..2dc4ff761 100644 --- a/src/pocketmine/utils/Binary.php +++ b/src/pocketmine/utils/Binary.php @@ -26,6 +26,11 @@ namespace pocketmine\utils; use pocketmine\item\Item; + +/** + * WARNING: This class is available on the PocketMine-MP Zephir project. + * If this class is modified, remember to modify the PHP C extension. + */ class Binary{ const BIG_ENDIAN = 0x00; const LITTLE_ENDIAN = 0x01; @@ -59,11 +64,11 @@ class Binary{ * Writes a coded metadata string * TODO: Replace and move this to entity * - * @param $data + * @param array $data * * @return string */ - public static function writeMetadata($data){ + public static function writeMetadata(array $data){ $m = ""; foreach($data as $bottom => $d){ $m .= chr(($d[0] << 5) | ($bottom & 0b00011111)); @@ -81,8 +86,7 @@ class Binary{ $m .= self::writeLFloat($d[1]); break; case 4: - $m .= self::writeLShort(strlen($d[1])); - $m .= $data[1]; + $m .= self::writeLShort(strlen($d[1])) . $d[1]; break; case 5: $m .= self::writeLShort($d[1][0]); diff --git a/src/pocketmine/utils/Random.php b/src/pocketmine/utils/Random.php index 618f8d910..8a5382d93 100644 --- a/src/pocketmine/utils/Random.php +++ b/src/pocketmine/utils/Random.php @@ -24,22 +24,23 @@ namespace pocketmine\utils; /** * Unsecure Random Number Generator, used for fast seeded values + * WARNING: This class is available on the PocketMine-MP Zephir project. + * If this class is modified, remember to modify the PHP C extension. */ class Random{ private $z, $w; /** - * @param int|bool $seed Integer to be used as seed. If false, generates a Random one + * @param int $seed Integer to be used as seed. */ - public function __construct($seed = false){ + public function __construct($seed = 0){ $this->setSeed($seed); } /** - * @param int|bool $seed Integer to be used as seed. If false, generates a Random one + * @param int $seed Integer to be used as seed. */ - public function setSeed($seed = false){ - $seed = $seed !== false ? (int) $seed : Binary::readInt(Utils::getRandomBytes(4, false)); + public function setSeed($seed){ $this->z = $seed ^ 0xdeadbeef; $this->w = $seed ^ 0xc0de1337; }