Fixed #3963, closes #3979, added hash for non-numeric seeds

This commit is contained in:
PEMapModder
2016-02-22 19:37:52 +08:00
parent 41a847567c
commit ed9888a2cb
6 changed files with 34 additions and 15 deletions

View File

@ -2696,9 +2696,9 @@ class Level implements ChunkManager, Metadatable{
/**
* Gets the level seed
*
* @return int
* @return int|string int value of seed, or the string numeric representation of a long in 32-bit systems
*/
public function getSeed() : int{
public function getSeed(){
return $this->provider->getSeed();
}

View File

@ -194,7 +194,7 @@ interface LevelProvider{
public function setTime($value);
/**
* @return int
* @return int|string int, or the string numeric representation of a long in 32-bit systems
*/
public function getSeed();

View File

@ -51,7 +51,6 @@ abstract class BaseLevelProvider implements LevelProvider{
$levelData = $nbt->getData();
if($levelData->Data instanceof CompoundTag){
$this->levelData = $levelData->Data;
assert(is_int($this->levelData["RandomSeed"]));
}else{
throw new LevelException("Invalid level.dat");
}
@ -94,7 +93,7 @@ abstract class BaseLevelProvider implements LevelProvider{
}
public function setSeed($value){
$this->levelData->RandomSeed = new LongTag("RandomSeed", (int) $value);
$this->levelData->RandomSeed = new LongTag("RandomSeed", $value);
}
public function getSpawn(){

View File

@ -32,7 +32,6 @@ use pocketmine\nbt\tag\IntTag;
use pocketmine\nbt\tag\LongTag;
use pocketmine\nbt\tag\StringTag;
use pocketmine\tile\Spawnable;
use pocketmine\utils\BinaryStream;
use pocketmine\utils\ChunkException;
@ -92,7 +91,7 @@ class McRegion extends BaseLevelProvider{
"version" => new IntTag("version", 19133),
"DayTime" => new IntTag("DayTime", 0),
"LastPlayed" => new LongTag("LastPlayed", microtime(true) * 1000),
"RandomSeed" => new LongTag("RandomSeed", (int) $seed),
"RandomSeed" => new LongTag("RandomSeed", $seed),
"SizeOnDisk" => new LongTag("SizeOnDisk", 0),
"Time" => new LongTag("Time", 0),
"generatorName" => new StringTag("generatorName", Generator::getGeneratorName($generator)),