Added worlds directive to pocketmine.yml to load extra worlds or use a plugin-provided generator

This commit is contained in:
Shoghi Cervantes
2014-08-01 12:24:08 +02:00
parent d10274ca7c
commit 26ec562fbf
3 changed files with 29 additions and 5 deletions

View File

@ -1034,7 +1034,7 @@ class Server{
*
* @return bool
*/
public function generateLevel($name, $seed = null, $generator = null, array $options = []){
public function generateLevel($name, $seed = null, $generator = null, $options = []){
if(trim($name) === "" or $this->isLevelGenerated($name)){
return false;
}
@ -1509,6 +1509,23 @@ class Server{
Generator::addGenerator("pocketmine\\level\\generator\\Normal", "normal");
Generator::addGenerator("pocketmine\\level\\generator\\Normal", "default");
foreach($this->getProperty("worlds", []) as $name => $worldSetting){
if($this->loadLevel($name) === false){
$seed = $this->getProperty("worlds.$name.seed", time());
$options = explode(":", $this->getProperty("worlds.$name.generator", Generator::getGenerator("default")));
$generator = Generator::getGenerator(array_shift($options));
if(count($options) > 0){
$options = [
"preset" => implode(":", $options),
];
}else{
$options = [];
}
$this->generateLevel($name, $seed, $generator, $options);
}
}
if($this->getDefaultLevel() === null){
$default = $this->getConfigString("level-name", "world");
if(trim($default) == ""){