2025-02-18 13:02:40 +01:00
|
|
|
class_name Message
|
|
|
|
|
2025-03-13 12:25:58 +00:00
|
|
|
enum Channels { CONNECTION, MATCHMAKING }
|
2025-02-18 13:02:40 +01:00
|
|
|
|
|
|
|
|
|
|
|
func get_message_id() -> String:
|
|
|
|
push_error("Not Implemented")
|
|
|
|
return ""
|
|
|
|
|
|
|
|
|
|
|
|
static func serialize(message: Message) -> String:
|
|
|
|
var msg: Dictionary = JsonClassConverter.class_to_json(message)
|
|
|
|
msg["$id"] = message.get_message_id()
|
|
|
|
return JSON.stringify(msg)
|
|
|
|
|
|
|
|
|
|
|
|
static func deserialize(payload: String, messages: Array[GDScript]) -> Message:
|
|
|
|
var json := JSON.new()
|
|
|
|
var err = json.parse(payload)
|
|
|
|
if err != OK:
|
|
|
|
return null
|
|
|
|
var data: Variant = json.data
|
|
|
|
if data == null:
|
|
|
|
return null
|
|
|
|
var msg_id: String = data.get("$id")
|
|
|
|
for msg in messages:
|
|
|
|
if msg_id != msg.new().get_message_id():
|
|
|
|
continue
|
|
|
|
return JsonClassConverter.json_to_class(msg, data)
|
|
|
|
return null
|