diff --git a/application/core/Configurators/ServerSettings.php b/application/core/Configurators/ServerSettings.php index 5d7f9c40..12fc5177 100644 --- a/application/core/Configurators/ServerSettings.php +++ b/application/core/Configurators/ServerSettings.php @@ -123,8 +123,13 @@ class ServerSettings implements ConfiguratorMenu, CallbackListener { return true; } + $serverOptions = ServerOptions::fromArray($savedSettings); + if (!$serverOptions->isValid()) { + $message = "Couldn't load server settings from database because of their invalid state."; + $this->maniaControl->chat->sendErrorToAdmins($message); + return false; + } try { - $serverOptions = ServerOptions::fromArray($savedSettings); return $this->maniaControl->client->setServerOptions($serverOptions); } catch (ServerOptionsException $exception) { $this->maniaControl->chat->sendExceptionToAdmins($exception); diff --git a/application/core/Libs/Maniaplanet/DedicatedServer/Structures/ServerOptions.php b/application/core/Libs/Maniaplanet/DedicatedServer/Structures/ServerOptions.php index 86ac17fb..131ee013 100755 --- a/application/core/Libs/Maniaplanet/DedicatedServer/Structures/ServerOptions.php +++ b/application/core/Libs/Maniaplanet/DedicatedServer/Structures/ServerOptions.php @@ -82,7 +82,8 @@ class ServerOptions extends AbstractStructure && is_string($this->comment) && is_string($this->password) && is_string($this->passwordForSpectator) - && VoteRatio::isRatio($this->callVoteRatio); + && VoteRatio::isRatio($this->callVoteRatio) + && is_int($this->nextCallVoteTimeOut); } /**