Config: don't catch-all in save()

This commit is contained in:
Dylan K. Taylor 2018-11-25 16:35:59 +00:00
parent c90d1faa81
commit b0060caaf7

View File

@ -23,9 +23,6 @@ declare(strict_types=1);
namespace pocketmine\utils; namespace pocketmine\utils;
use pocketmine\Server;
/** /**
* Config Class for simple config manipulation of multiple formats. * Config Class for simple config manipulation of multiple formats.
*/ */
@ -189,37 +186,29 @@ class Config{
*/ */
public function save() : bool{ public function save() : bool{
if($this->correct){ if($this->correct){
try{ $content = null;
$content = null; switch($this->type){
switch($this->type){ case Config::PROPERTIES:
case Config::PROPERTIES: $content = $this->writeProperties();
$content = $this->writeProperties(); break;
break; case Config::JSON:
case Config::JSON: $content = json_encode($this->config, $this->jsonOptions);
$content = json_encode($this->config, $this->jsonOptions); break;
break; case Config::YAML:
case Config::YAML: $content = yaml_emit($this->config, YAML_UTF8_ENCODING);
$content = yaml_emit($this->config, YAML_UTF8_ENCODING); break;
break; case Config::SERIALIZED:
case Config::SERIALIZED: $content = serialize($this->config);
$content = serialize($this->config); break;
break; case Config::ENUM:
case Config::ENUM: $content = implode("\r\n", array_keys($this->config));
$content = implode("\r\n", array_keys($this->config)); break;
break; default:
default: throw new \InvalidStateException("Config type is unknown, has not been set or not detected");
throw new \InvalidStateException("Config type is unknown, has not been set or not detected");
}
file_put_contents($this->file, $content);
}catch(\Throwable $e){
$logger = Server::getInstance()->getLogger();
$logger->critical("Could not save Config " . $this->file . ": " . $e->getMessage());
if(\pocketmine\DEBUG > 1){
$logger->logException($e);
}
} }
file_put_contents($this->file, $content);
$this->changed = false; $this->changed = false;
return true; return true;