Clean up BaseLang error handling, throw exceptions instead

This commit is contained in:
Dylan K. Taylor
2018-07-30 17:00:52 +01:00
parent cab2d52ff8
commit d26631d8e0
4 changed files with 71 additions and 22 deletions

View File

@@ -46,6 +46,7 @@ use pocketmine\item\enchantment\Enchantment;
use pocketmine\item\Item;
use pocketmine\item\ItemFactory;
use pocketmine\lang\BaseLang;
use pocketmine\lang\LanguageNotFoundException;
use pocketmine\lang\TextContainer;
use pocketmine\level\biome\Biome;
use pocketmine\level\format\io\LevelProvider;
@@ -1442,7 +1443,19 @@ class Server{
define('pocketmine\DEBUG', (int) $this->getProperty("debug.level", 1));
$this->forceLanguage = (bool) $this->getProperty("settings.force-language", false);
$this->baseLang = new BaseLang($this->getProperty("settings.language", BaseLang::FALLBACK_LANGUAGE));
$selectedLang = $this->getProperty("settings.language", BaseLang::FALLBACK_LANGUAGE);
try{
$this->baseLang = new BaseLang($selectedLang);
}catch(LanguageNotFoundException $e){
$this->logger->error($e->getMessage());
try{
$this->baseLang = new BaseLang(BaseLang::FALLBACK_LANGUAGE);
}catch(LanguageNotFoundException $e){
$this->logger->emergency("Fallback language \"" . BaseLang::FALLBACK_LANGUAGE . "\" not found");
return;
}
}
$this->logger->info($this->getLanguage()->translateString("language.selected", [$this->getLanguage()->getName(), $this->getLanguage()->getLang()]));
if(\pocketmine\IS_DEVELOPMENT_BUILD){