Show an error if no language files found during setup, mitigates #380

This commit is contained in:
Dylan K. Taylor 2017-02-25 11:21:32 +00:00
parent dc7b5b14d5
commit 11e0387e19
2 changed files with 25 additions and 11 deletions

View File

@ -34,21 +34,29 @@ class BaseLang{
$path = \pocketmine\PATH . "src/pocketmine/lang/locale/";
}
$files = array_filter(scandir($path), function($filename){
return substr($filename, -4) === ".ini";
});
if(is_dir($path)){
$allFiles = scandir($path);
$result = [];
if($allFiles !== false){
$files = array_filter($allFiles, function($filename){
return substr($filename, -4) === ".ini";
});
foreach($files as $file){
$strings = [];
self::loadLang($path . $file, $strings);
if(isset($strings["language.name"])){
$result[substr($file, 0, -4)] = $strings["language.name"];
$result = [];
foreach($files as $file){
$strings = [];
self::loadLang($path . $file, $strings);
if(isset($strings["language.name"])){
$result[substr($file, 0, -4)] = $strings["language.name"];
}
}
return $result;
}
}
return $result;
return [];
}
protected $langName;

View File

@ -45,8 +45,14 @@ class SetupWizard{
public function run(){
echo "[*] PocketMine-MP set-up wizard\n";
echo "[*] Please select a language:\n";
$langs = BaseLang::getLanguageList();
if(empty($langs)){
echo "[!] No language files found, please use provided builds or clone the repository recursively." . PHP_EOL;
return false;
}
echo "[*] Please select a language:\n";
foreach($langs as $short => $native){
echo " $native => $short\n";
}