fix: pass Godot 4.7 multiplayer test suite

This commit is contained in:
Josh Creek
2026-09-01 08:24:33 +01:00
parent 76aad61191
commit c5678ce877
5 changed files with 13 additions and 12 deletions
+1 -1
View File
@@ -340,7 +340,7 @@ func _handle_websocket_packet(packet: PackedByteArray) -> void:
_on_resync_required(String(event["resource_id"]))
func _valid_websocket_event(event: Dictionary) -> bool:
static func _valid_websocket_event(event: Dictionary) -> bool:
if not event.has("event") or not event["event"] is String or String(event["event"]).is_empty():
return false
if not event.has("revision") or not (event["revision"] is int or event["revision"] is float):
+5 -5
View File
@@ -45,21 +45,21 @@ func begin_queue(new_ticket_id: String, new_playlist: String) -> bool:
func apply_ticket_update(update: Dictionary) -> bool:
if not _has_string(update, "ticket_id") or not update.has("revision") or not update.has("state"):
return _request_resync(ticket_id)
return _request_resync(self.ticket_id)
if ticket_id.is_empty() or String(update["ticket_id"]) != ticket_id:
return _request_resync(ticket_id)
return _request_resync(self.ticket_id)
var incoming_revision := int(update["revision"])
if incoming_revision < revision:
return false
if incoming_revision == revision:
if _ticket_differs(update):
return _request_resync(ticket_id)
return _request_resync(self.ticket_id)
return true
if incoming_revision > revision + 1:
return _request_resync(ticket_id)
return _request_resync(self.ticket_id)
var incoming_state := String(update["state"])
if not _is_ticket_state(incoming_state):
return _request_resync(ticket_id)
return _request_resync(self.ticket_id)
revision = incoming_revision
phase = incoming_state
if update.has("playlist"):
+1 -1
View File
@@ -262,7 +262,7 @@ func _validate() -> void:
errors.append("--arena-rotation must be sequential or random, got '%s'" % rotation)
if bool(values["allocated-mode"]):
for key in ["match-id", "server-id", "playlist-version", "client-build", "assignment-expiry-unix", "server-image-digest", "transport", "region"]:
if String(values[key]).is_empty():
if str(values[key]).is_empty():
errors.append("--allocated-mode requires --%s" % key)
if int(values["assignment-expiry-unix"]) <= int(Time.get_unix_time_from_system()):
errors.append("--assignment-expiry-unix must be in the future")