prevent crash when no settings
This commit is contained in:
@ -863,36 +863,38 @@ class MatchManagerCore implements CallbackListener, CommandListener, TimerListen
|
|||||||
}
|
}
|
||||||
$allsettings = $this->maniaControl->getSettingManager()->getSettingsByClass($this);
|
$allsettings = $this->maniaControl->getSettingManager()->getSettingsByClass($this);
|
||||||
$settingsmode = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MATCH_SETTINGS_MODE);
|
$settingsmode = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MATCH_SETTINGS_MODE);
|
||||||
$modesettings = $this->getModeSettings($settingsmode);
|
if ($allsettings !== null && $settingsmode !== null) {
|
||||||
foreach ($allsettings as $key => $value) {
|
$modesettings = $this->getModeSettings($settingsmode);
|
||||||
$name = $value->setting;
|
|
||||||
if (array_key_exists($name,self::SETTINGS_MODE_LIST)) {
|
|
||||||
if (!isset($modesettings[$name])) {
|
|
||||||
if ($deletesettings) $this->maniaControl->getSettingManager()->deleteSetting($this, $name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach ($modesettings as $key => $value) {
|
|
||||||
$this->maniaControl->getSettingManager()->initSetting($this, $key, self::SETTINGS_MODE_LIST[$key]['default'], self::SETTINGS_MODE_LIST[$key]['description'], 50);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($settingsmode == 'Maps from file & Settings from plugin' || $settingsmode == 'All from the plugin') {
|
|
||||||
$gmsettings = $this->getGMSettings($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MATCH_GAMEMODE_BASE), $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MATCH_CUSTOM_GAMEMODE));
|
|
||||||
|
|
||||||
foreach ($allsettings as $key => $value) {
|
foreach ($allsettings as $key => $value) {
|
||||||
$name = $value->setting;
|
$name = $value->setting;
|
||||||
if (substr($name,0, 2) == "S_" && !isset($gmsettings[$name])) {
|
if (array_key_exists($name,self::SETTINGS_MODE_LIST)) {
|
||||||
if ($deletesettings) $this->maniaControl->getSettingManager()->deleteSetting($this, $name);
|
if (!isset($modesettings[$name])) {
|
||||||
|
if ($deletesettings) $this->maniaControl->getSettingManager()->deleteSetting($this, $name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach ($gmsettings as $key => $value) {
|
foreach ($modesettings as $key => $value) {
|
||||||
$this->maniaControl->getSettingManager()->initSetting($this, $key, $value['default'], $value['description'], 100);
|
$this->maniaControl->getSettingManager()->initSetting($this, $key, self::SETTINGS_MODE_LIST[$key]['default'], self::SETTINGS_MODE_LIST[$key]['description'], 50);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
foreach ($allsettings as $key => $value) {
|
if ($settingsmode == 'Maps from file & Settings from plugin' || $settingsmode == 'All from the plugin') {
|
||||||
$name = $value->setting;
|
$gmsettings = $this->getGMSettings($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MATCH_GAMEMODE_BASE), $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MATCH_CUSTOM_GAMEMODE));
|
||||||
if (substr($name,0, 2) == "S_") {
|
|
||||||
if ($deletesettings) $this->maniaControl->getSettingManager()->deleteSetting($this, $name);
|
foreach ($allsettings as $key => $value) {
|
||||||
|
$name = $value->setting;
|
||||||
|
if (substr($name,0, 2) == "S_" && !isset($gmsettings[$name])) {
|
||||||
|
if ($deletesettings) $this->maniaControl->getSettingManager()->deleteSetting($this, $name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($gmsettings as $key => $value) {
|
||||||
|
$this->maniaControl->getSettingManager()->initSetting($this, $key, $value['default'], $value['description'], 100);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
foreach ($allsettings as $key => $value) {
|
||||||
|
$name = $value->setting;
|
||||||
|
if (substr($name,0, 2) == "S_") {
|
||||||
|
if ($deletesettings) $this->maniaControl->getSettingManager()->deleteSetting($this, $name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user