Строчные ссылки на файлы модов и своё ожидание готовности
Игра приводит путь к вложенным файлам анимаций в нижний регистр целиком, вместе с именем папки мода. На Linux такие файлы не находятся, и сервер сыплет в лог сотнями FileNotFoundException. Кнопка на вкладке «Моды» раскладывает рядом строчные симлинки: файлы модов не меняются, повторный запуск после докачки безопасен, а на файловых системах без различия регистра кнопка честно говорит, что делать нечего. Ожидание строки о готовности стало настройкой профиля со значением по умолчанию 30 минут вместо общих 15. Сборке на три сотни модов пятнадцати не хватает, и панель объявляла бы работающим сервер, который ещё никого не пустит. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -41,6 +41,27 @@ type Profile struct {
|
||||
|
||||
// ExtraArgs — дополнительные аргументы start-server.sh.
|
||||
ExtraArgs []string `yaml:"extra_args"`
|
||||
|
||||
// StartupTimeout — сколько ждать строку о готовности сервера, прежде чем
|
||||
// считать его работающим. Сборка на три сотни модов грузит мир десятками
|
||||
// минут, и общего значения на все профили не подобрать: слишком малое
|
||||
// объявит рабочим сервер, который ещё никого не пустит. Ноль означает
|
||||
// DefaultStartupTimeout.
|
||||
StartupTimeout Duration `yaml:"startup_timeout"`
|
||||
}
|
||||
|
||||
// DefaultStartupTimeout — запас на загрузку мира, когда профиль своего не
|
||||
// задал. Ванильный сервер поднимается за минуту, сборка с сотнями модов —
|
||||
// заметно дольше, поэтому запас с большим запасом.
|
||||
const DefaultStartupTimeout = 30 * time.Minute
|
||||
|
||||
// StartupWait возвращает время ожидания готовности с учётом значения по
|
||||
// умолчанию.
|
||||
func (p Profile) StartupWait() time.Duration {
|
||||
if p.StartupTimeout <= 0 {
|
||||
return DefaultStartupTimeout
|
||||
}
|
||||
return p.StartupTimeout.Duration()
|
||||
}
|
||||
|
||||
// Name возвращает название для интерфейса: заголовок, а если его нет — ID.
|
||||
|
||||
Reference in New Issue
Block a user