Preserve data across the Straywild transition
This commit is contained in:
parent
737d1cf2e0
commit
98a27e2f53
28 changed files with 577 additions and 94 deletions
|
|
@ -31,8 +31,10 @@ static func from_runtime() -> DedicatedServerConfig:
|
|||
result.discovery_url = str(ProjectSettings.get_setting(
|
||||
"network/discovery/base_url", ""
|
||||
)).strip_edges()
|
||||
var config_path: String = OS.get_environment(
|
||||
"straywild_SERVER_CONFIG"
|
||||
var config_path: String = _environment_string(
|
||||
"straywild_SERVER_CONFIG",
|
||||
"NETFISHING_SERVER_CONFIG",
|
||||
"",
|
||||
).strip_edges()
|
||||
for argument: String in OS.get_cmdline_user_args():
|
||||
if argument.begins_with("--config="):
|
||||
|
|
@ -87,36 +89,44 @@ func _load_file(path: String) -> bool:
|
|||
|
||||
func _apply_environment() -> void:
|
||||
server_name = _environment_string(
|
||||
"straywild_SERVER_NAME", server_name
|
||||
"straywild_SERVER_NAME", "NETFISHING_SERVER_NAME", server_name
|
||||
)
|
||||
bind_address = _environment_string(
|
||||
"straywild_SERVER_BIND", bind_address
|
||||
"straywild_SERVER_BIND", "NETFISHING_SERVER_BIND", bind_address
|
||||
)
|
||||
port = _environment_int(
|
||||
"straywild_SERVER_PORT", "NETFISHING_SERVER_PORT", port
|
||||
)
|
||||
port = _environment_int("straywild_SERVER_PORT", port)
|
||||
max_players = _environment_int(
|
||||
"straywild_SERVER_MAX_PLAYERS", max_players
|
||||
"straywild_SERVER_MAX_PLAYERS",
|
||||
"NETFISHING_SERVER_MAX_PLAYERS",
|
||||
max_players,
|
||||
)
|
||||
world_seed = _environment_int(
|
||||
"straywild_WORLD_SEED", world_seed
|
||||
"straywild_WORLD_SEED", "NETFISHING_WORLD_SEED", world_seed
|
||||
)
|
||||
public_listing = _environment_bool(
|
||||
"straywild_SERVER_PUBLIC", public_listing
|
||||
"straywild_SERVER_PUBLIC", "NETFISHING_SERVER_PUBLIC", public_listing
|
||||
)
|
||||
discovery_url = _environment_string(
|
||||
"straywild_DISCOVERY_URL", discovery_url
|
||||
"straywild_DISCOVERY_URL", "NETFISHING_DISCOVERY_URL", discovery_url
|
||||
)
|
||||
data_directory = _environment_string(
|
||||
"straywild_DATA_DIR", data_directory
|
||||
"straywild_DATA_DIR", "NETFISHING_DATA_DIR", data_directory
|
||||
)
|
||||
chat_logging = _environment_bool(
|
||||
"straywild_CHAT_LOGGING", chat_logging
|
||||
"straywild_CHAT_LOGGING", "NETFISHING_CHAT_LOGGING", chat_logging
|
||||
)
|
||||
chat_log_path = _environment_string(
|
||||
"straywild_CHAT_LOG_PATH", chat_log_path
|
||||
"straywild_CHAT_LOG_PATH", "NETFISHING_CHAT_LOG_PATH", chat_log_path
|
||||
)
|
||||
if OS.has_environment("straywild_SERVER_OPERATORS"):
|
||||
var operators_variable: String = _available_environment_variable(
|
||||
"straywild_SERVER_OPERATORS",
|
||||
"NETFISHING_SERVER_OPERATORS",
|
||||
)
|
||||
if not operators_variable.is_empty():
|
||||
operator_fingerprints = _parse_fingerprint_list(
|
||||
OS.get_environment("straywild_SERVER_OPERATORS")
|
||||
OS.get_environment(operators_variable)
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -211,21 +221,45 @@ static func _safe_text(value: String) -> bool:
|
|||
return true
|
||||
|
||||
|
||||
static func _environment_string(name: String, fallback: String) -> String:
|
||||
return OS.get_environment(name) if OS.has_environment(name) else fallback
|
||||
static func _available_environment_variable(
|
||||
name: String,
|
||||
legacy_name: String,
|
||||
) -> String:
|
||||
if OS.has_environment(name):
|
||||
return name
|
||||
return legacy_name if OS.has_environment(legacy_name) else ""
|
||||
|
||||
|
||||
static func _environment_int(name: String, fallback: int) -> int:
|
||||
static func _environment_string(
|
||||
name: String,
|
||||
legacy_name: String,
|
||||
fallback: String,
|
||||
) -> String:
|
||||
var variable: String = _available_environment_variable(name, legacy_name)
|
||||
return OS.get_environment(variable) if not variable.is_empty() else fallback
|
||||
|
||||
|
||||
static func _environment_int(
|
||||
name: String,
|
||||
legacy_name: String,
|
||||
fallback: int,
|
||||
) -> int:
|
||||
var variable: String = _available_environment_variable(name, legacy_name)
|
||||
return (
|
||||
_parse_int(OS.get_environment(name), fallback)
|
||||
if OS.has_environment(name) else fallback
|
||||
_parse_int(OS.get_environment(variable), fallback)
|
||||
if not variable.is_empty() else fallback
|
||||
)
|
||||
|
||||
|
||||
static func _environment_bool(name: String, fallback: bool) -> bool:
|
||||
if not OS.has_environment(name):
|
||||
static func _environment_bool(
|
||||
name: String,
|
||||
legacy_name: String,
|
||||
fallback: bool,
|
||||
) -> bool:
|
||||
var variable: String = _available_environment_variable(name, legacy_name)
|
||||
if variable.is_empty():
|
||||
return fallback
|
||||
var value: String = OS.get_environment(name).strip_edges().to_lower()
|
||||
var value: String = OS.get_environment(variable).strip_edges().to_lower()
|
||||
return value in ["1", "true", "yes", "on"]
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue