Client/scripts/channel/message.gd

31 lines
734 B
GDScript3
Raw Normal View History

class_name Message
enum Channels { CONNECTION, MATCHMAKING }
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