mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-07 20:28:31 +00:00
Merge branch 'release/3.1'
This commit is contained in:
commit
73afa22f50
@ -1025,14 +1025,7 @@ class Server{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
try{
|
|
||||||
$level = new Level($this, $name, new $providerClass($path));
|
$level = new Level($this, $name, new $providerClass($path));
|
||||||
}catch(\Throwable $e){
|
|
||||||
|
|
||||||
$this->logger->error($this->getLanguage()->translateString("pocketmine.level.loadError", [$name, $e->getMessage()]));
|
|
||||||
$this->logger->logException($e);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->levels[$level->getId()] = $level;
|
$this->levels[$level->getId()] = $level;
|
||||||
|
|
||||||
@ -1070,9 +1063,11 @@ class Server{
|
|||||||
|
|
||||||
if(($providerClass = LevelProviderManager::getProviderByName($this->getProperty("level-settings.default-format", "pmanvil"))) === null){
|
if(($providerClass = LevelProviderManager::getProviderByName($this->getProperty("level-settings.default-format", "pmanvil"))) === null){
|
||||||
$providerClass = LevelProviderManager::getProviderByName("pmanvil");
|
$providerClass = LevelProviderManager::getProviderByName("pmanvil");
|
||||||
|
if($providerClass === null){
|
||||||
|
throw new \InvalidStateException("Default level provider has not been registered");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try{
|
|
||||||
$path = $this->getDataPath() . "worlds/" . $name . "/";
|
$path = $this->getDataPath() . "worlds/" . $name . "/";
|
||||||
/** @var LevelProvider $providerClass */
|
/** @var LevelProvider $providerClass */
|
||||||
$providerClass::generate($path, $name, $seed, $generator, $options);
|
$providerClass::generate($path, $name, $seed, $generator, $options);
|
||||||
@ -1081,11 +1076,6 @@ class Server{
|
|||||||
$this->levels[$level->getId()] = $level;
|
$this->levels[$level->getId()] = $level;
|
||||||
|
|
||||||
$level->setTickRate($this->baseTickRate);
|
$level->setTickRate($this->baseTickRate);
|
||||||
}catch(\Throwable $e){
|
|
||||||
$this->logger->error($this->getLanguage()->translateString("pocketmine.level.generationError", [$name, $e->getMessage()]));
|
|
||||||
$this->logger->logException($e);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->getPluginManager()->callEvent(new LevelInitEvent($level));
|
$this->getPluginManager()->callEvent(new LevelInitEvent($level));
|
||||||
|
|
||||||
|
@ -353,7 +353,7 @@ class ItemFactory{
|
|||||||
if(!isset($b[1])){
|
if(!isset($b[1])){
|
||||||
$meta = 0;
|
$meta = 0;
|
||||||
}elseif(is_numeric($b[1])){
|
}elseif(is_numeric($b[1])){
|
||||||
$meta = $b[1];
|
$meta = (int) $b[1];
|
||||||
}else{
|
}else{
|
||||||
throw new \InvalidArgumentException("Unable to parse \"" . $b[1] . "\" from \"" . $str . "\" as a valid meta value");
|
throw new \InvalidArgumentException("Unable to parse \"" . $b[1] . "\" from \"" . $str . "\" as a valid meta value");
|
||||||
}
|
}
|
||||||
|
@ -51,4 +51,29 @@ class ItemTest extends TestCase{
|
|||||||
self::assertEquals(BlockFactory::isRegistered($id), ItemFactory::isRegistered($id));
|
self::assertEquals(BlockFactory::isRegistered($id), ItemFactory::isRegistered($id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function itemFromStringProvider() : array{
|
||||||
|
return [
|
||||||
|
["dye:4", ItemIds::DYE, 4],
|
||||||
|
["351", ItemIds::DYE, 0],
|
||||||
|
["351:4", ItemIds::DYE, 4],
|
||||||
|
["stone:3", ItemIds::STONE, 3],
|
||||||
|
["minecraft:string", ItemIds::STRING, 0],
|
||||||
|
["diamond_pickaxe", ItemIds::DIAMOND_PICKAXE, 0],
|
||||||
|
["diamond_pickaxe:5", ItemIds::DIAMOND_PICKAXE, 5]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider itemFromStringProvider
|
||||||
|
* @param string $string
|
||||||
|
* @param int $id
|
||||||
|
* @param int $meta
|
||||||
|
*/
|
||||||
|
public function testFromStringSingle(string $string, int $id, int $meta) : void{
|
||||||
|
$item = ItemFactory::fromString($string);
|
||||||
|
|
||||||
|
self::assertEquals($id, $item->getId());
|
||||||
|
self::assertEquals($meta, $item->getDamage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user