Simplify Steam Workshop UX and wire panel docs links
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/1575c81b-f8a7-433a-8f3b-e068c0992c18 Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
This commit is contained in:
parent
5fc301e632
commit
01ad93a11a
13 changed files with 566 additions and 528 deletions
|
|
@ -359,17 +359,54 @@ function sw_get_server_settings($db, $home_id)
|
|||
"SELECT * FROM " . sw_table('steam_workshop_server_settings') . "
|
||||
WHERE `home_id` = $home_id LIMIT 1"
|
||||
);
|
||||
if ($rows && isset($rows[0])) {
|
||||
return $rows[0];
|
||||
if ($rows && isset($rows[0]) && is_array($rows[0])) {
|
||||
$settings = $rows[0];
|
||||
|
||||
$legacyUpdateMap = array(
|
||||
'scheduled' => 'manual',
|
||||
);
|
||||
$legacyRestartMap = array(
|
||||
'if_empty' => 'if_stopped',
|
||||
'next_restart' => 'if_stopped',
|
||||
'immediate' => 'none',
|
||||
);
|
||||
$legacyScheduleMap = array(
|
||||
'hourly' => 'daily',
|
||||
);
|
||||
|
||||
if (isset($legacyUpdateMap[$settings['update_mode'] ?? ''])) {
|
||||
$settings['update_mode'] = $legacyUpdateMap[$settings['update_mode']];
|
||||
}
|
||||
if (isset($legacyRestartMap[$settings['restart_behavior'] ?? ''])) {
|
||||
$settings['restart_behavior'] = $legacyRestartMap[$settings['restart_behavior']];
|
||||
}
|
||||
if (isset($legacyScheduleMap[$settings['schedule_interval'] ?? ''])) {
|
||||
$settings['schedule_interval'] = $legacyScheduleMap[$settings['schedule_interval']];
|
||||
}
|
||||
|
||||
$validUpdateModes = array('manual', 'on_restart', 'before_start');
|
||||
$validRestartBehaviors = array('none', 'if_stopped');
|
||||
$validIntervals = array('disabled', 'daily', 'weekly');
|
||||
|
||||
if (!in_array($settings['update_mode'] ?? '', $validUpdateModes, true)) {
|
||||
$settings['update_mode'] = 'manual';
|
||||
}
|
||||
if (!in_array($settings['restart_behavior'] ?? '', $validRestartBehaviors, true)) {
|
||||
$settings['restart_behavior'] = 'none';
|
||||
}
|
||||
if (!in_array($settings['schedule_interval'] ?? '', $validIntervals, true)) {
|
||||
$settings['schedule_interval'] = 'disabled';
|
||||
}
|
||||
|
||||
return $settings;
|
||||
}
|
||||
// Safe defaults – manual only, no automatic restarts, hot-load off
|
||||
|
||||
// Safe defaults – manual only, no automatic restarts, schedule disabled
|
||||
return array(
|
||||
'home_id' => $home_id,
|
||||
'update_mode' => 'manual',
|
||||
'restart_behavior' => 'none',
|
||||
'hot_load' => 'disabled',
|
||||
'warning_minutes' => 10,
|
||||
'schedule_interval' => 'daily',
|
||||
'schedule_interval' => 'disabled',
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -378,43 +415,38 @@ function sw_get_server_settings($db, $home_id)
|
|||
*
|
||||
* @param OGPDatabase $db
|
||||
* @param int $home_id
|
||||
* @param array $data keys: update_mode, restart_behavior, hot_load,
|
||||
* warning_minutes, schedule_interval
|
||||
* @param array $data keys: update_mode, restart_behavior, schedule_interval
|
||||
* @return bool
|
||||
*/
|
||||
function sw_save_server_settings($db, $home_id, array $data)
|
||||
{
|
||||
$home_id = (int)$home_id;
|
||||
|
||||
$valid_update_modes = array('manual', 'on_restart', 'before_start', 'scheduled');
|
||||
$valid_restart_behaviors = array('none', 'if_empty', 'immediate', 'next_restart');
|
||||
$valid_hot_load = array('disabled', 'attempt');
|
||||
$valid_intervals = array('hourly', 'daily', 'weekly');
|
||||
$valid_update_modes = array('manual', 'on_restart', 'before_start');
|
||||
$valid_restart_behaviors = array('none', 'if_stopped');
|
||||
$valid_intervals = array('disabled', 'daily', 'weekly');
|
||||
|
||||
$update_mode = in_array($data['update_mode'] ?? '', $valid_update_modes, true) ? $data['update_mode'] : 'manual';
|
||||
$restart_behavior = in_array($data['restart_behavior'] ?? '', $valid_restart_behaviors, true) ? $data['restart_behavior'] : 'none';
|
||||
$hot_load = in_array($data['hot_load'] ?? '', $valid_hot_load, true) ? $data['hot_load'] : 'disabled';
|
||||
$warning_minutes = max(1, min(120, (int)($data['warning_minutes'] ?? 10)));
|
||||
$schedule_interval = in_array($data['schedule_interval'] ?? '', $valid_intervals, true) ? $data['schedule_interval'] : 'daily';
|
||||
$schedule_interval = in_array($data['schedule_interval'] ?? '', $valid_intervals, true) ? $data['schedule_interval'] : 'disabled';
|
||||
|
||||
$safe_um = $db->realEscapeSingle($update_mode);
|
||||
$safe_rb = $db->realEscapeSingle($restart_behavior);
|
||||
$safe_hl = $db->realEscapeSingle($hot_load);
|
||||
$safe_si = $db->realEscapeSingle($schedule_interval);
|
||||
|
||||
return (bool)$db->query(
|
||||
"INSERT INTO " . sw_table('steam_workshop_server_settings') . "
|
||||
(`home_id`, `update_mode`, `restart_behavior`, `hot_load`,
|
||||
`warning_minutes`, `schedule_interval`, `created_at`, `updated_at`)
|
||||
VALUES ($home_id, '$safe_um', '$safe_rb', '$safe_hl',
|
||||
$warning_minutes, '$safe_si', NOW(), NOW())
|
||||
`warning_minutes`, `schedule_interval`, `created_at`, `updated_at`)
|
||||
VALUES ($home_id, '$safe_um', '$safe_rb', 'disabled',
|
||||
0, '$safe_si', NOW(), NOW())
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`update_mode` = '$safe_um',
|
||||
`restart_behavior` = '$safe_rb',
|
||||
`hot_load` = '$safe_hl',
|
||||
`warning_minutes` = $warning_minutes,
|
||||
`schedule_interval` = '$safe_si',
|
||||
`updated_at` = NOW()"
|
||||
`update_mode` = '$safe_um',
|
||||
`restart_behavior` = '$safe_rb',
|
||||
`hot_load` = 'disabled',
|
||||
`warning_minutes` = 0,
|
||||
`schedule_interval` = '$safe_si',
|
||||
`updated_at` = NOW()"
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue