Add saved servers and recent connections
This commit is contained in:
parent
918e75802a
commit
362273e834
7 changed files with 1250 additions and 168 deletions
88
network/saved_server_entry.gd
Normal file
88
network/saved_server_entry.gd
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
class_name SavedServerEntry
|
||||
extends RefCounted
|
||||
|
||||
enum Kind {
|
||||
SAVED,
|
||||
RECENT,
|
||||
}
|
||||
|
||||
var kind: Kind = Kind.SAVED
|
||||
var entry_id: String = ""
|
||||
var display_name: String = ""
|
||||
var route_kind: String = "DIRECT"
|
||||
var host: String = ""
|
||||
var normalized_host: String = ""
|
||||
var port: int = EndpointParser.DEFAULT_PORT
|
||||
var normalized_endpoint: String = ""
|
||||
var favorite: bool = false
|
||||
var created_at_unix: int = 0
|
||||
var updated_at_unix: int = 0
|
||||
var last_success_at_unix: int = 0
|
||||
var last_result_code: String = ""
|
||||
var last_observed_server_name: String = ""
|
||||
var last_observed_protocol_version: int = 0
|
||||
var last_observed_player_count: int = 0
|
||||
var last_observed_max_players: int = 0
|
||||
|
||||
|
||||
static func from_dictionary(
|
||||
data: Dictionary,
|
||||
entry_kind: Kind,
|
||||
) -> SavedServerEntry:
|
||||
var entry := SavedServerEntry.new()
|
||||
entry.kind = entry_kind
|
||||
entry.entry_id = str(data.get("entry_id", ""))
|
||||
entry.display_name = str(data.get("display_name", ""))
|
||||
entry.route_kind = str(data.get("route_kind", "DIRECT"))
|
||||
entry.host = str(data.get("host", ""))
|
||||
entry.normalized_host = str(data.get("normalized_host", entry.host))
|
||||
entry.port = int(data.get("port", EndpointParser.DEFAULT_PORT))
|
||||
entry.normalized_endpoint = str(data.get("normalized_endpoint", ""))
|
||||
entry.favorite = bool(data.get("favorite", false))
|
||||
entry.created_at_unix = int(data.get("created_at_unix", 0))
|
||||
entry.updated_at_unix = int(data.get("updated_at_unix", 0))
|
||||
entry.last_success_at_unix = int(data.get("last_success_at_unix", 0))
|
||||
entry.last_result_code = str(data.get("last_result_code", ""))
|
||||
entry.last_observed_server_name = str(
|
||||
data.get("last_observed_server_name", "")
|
||||
)
|
||||
entry.last_observed_protocol_version = int(
|
||||
data.get("last_observed_protocol_version", 0)
|
||||
)
|
||||
entry.last_observed_player_count = int(
|
||||
data.get("last_observed_player_count", 0)
|
||||
)
|
||||
entry.last_observed_max_players = int(
|
||||
data.get("last_observed_max_players", 0)
|
||||
)
|
||||
return entry
|
||||
|
||||
|
||||
func to_dictionary() -> Dictionary:
|
||||
return {
|
||||
"entry_id": entry_id,
|
||||
"display_name": display_name,
|
||||
"route_kind": route_kind,
|
||||
"host": host,
|
||||
"normalized_host": normalized_host,
|
||||
"port": port,
|
||||
"normalized_endpoint": normalized_endpoint,
|
||||
"favorite": favorite,
|
||||
"created_at_unix": created_at_unix,
|
||||
"updated_at_unix": updated_at_unix,
|
||||
"last_success_at_unix": last_success_at_unix,
|
||||
"last_result_code": last_result_code,
|
||||
"last_observed_server_name": last_observed_server_name,
|
||||
"last_observed_protocol_version": last_observed_protocol_version,
|
||||
"last_observed_player_count": last_observed_player_count,
|
||||
"last_observed_max_players": last_observed_max_players,
|
||||
}
|
||||
|
||||
|
||||
func get_endpoint() -> ConnectionEndpoint:
|
||||
var endpoint_text: String = (
|
||||
"[%s]:%d" % [host, port]
|
||||
if host.contains(":")
|
||||
else "%s:%d" % [host, port]
|
||||
)
|
||||
return EndpointParser.parse(endpoint_text)
|
||||
Loading…
Add table
Add a link
Reference in a new issue