fix(multiplayer): validate ticket playlists

This commit is contained in:
Josh Creek
2026-09-01 22:02:01 +01:00
parent 0ce2a49419
commit 277ad4bf98
3 changed files with 16 additions and 0 deletions
+6
View File
@@ -51,6 +51,8 @@ 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 _valid_revision(update["revision"]) or not update.has("state"):
return _request_resync(self.ticket_id)
if update.has("playlist") and not _valid_playlist(String(update["playlist"])):
return _request_resync(self.ticket_id)
if ticket_id.is_empty() or String(update["ticket_id"]) != ticket_id:
return _request_resync(self.ticket_id)
var incoming_revision := int(update["revision"])
@@ -299,3 +301,7 @@ func _valid_revision(value: Variant) -> bool:
if value is float:
return is_finite(float(value)) and float(value) >= 0.0 and float(value) == floor(float(value))
return false
func _valid_playlist(value: String) -> bool:
return value == "casual" or value == "ranked"