From 96211e016a9d25af63f932742dd115f0c80070d8 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 29 Aug 2025 15:53:32 -0400 Subject: [Client] Added textclient --- client/Archipelago/manager.gd | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'client/Archipelago/manager.gd') diff --git a/client/Archipelago/manager.gd b/client/Archipelago/manager.gd index 6b34bdf..10c4096 100644 --- a/client/Archipelago/manager.gd +++ b/client/Archipelago/manager.gd @@ -51,6 +51,7 @@ func _ready(): client.SCRIPT_uuid = SCRIPT_uuid client.connect("item_received", _process_item) + client.connect("message_received", _process_message) client.connect("could_not_connect", _client_could_not_connect) client.connect("connect_status", _client_connect_status) client.connect("client_connected", _client_connected) @@ -171,6 +172,8 @@ func _process_item(item, index, from, flags): func _process_message(message): + parse_printjson_for_textclient(message) + if ( !message.has("receiving") or !message.has("item") @@ -215,6 +218,45 @@ func _process_message(message): global.get_node("Messages").showMessage(sentMsg) +func parse_printjson_for_textclient(message): + var parts = [] + for message_part in message["data"]: + if !message_part.has("type") and message_part.has("text"): + parts.append(message_part["text"]) + elif message_part["type"] == "player_id": + if int(message_part["text"]) == client._slot: + parts.append( + "[color=#ee00ee]%s[/color]" % client._player_name_by_slot[client._slot] + ) + else: + var from = float(message_part["text"]) + parts.append("[color=#fafad2]%s[/color]" % client._player_name_by_slot[from]) + elif message_part["type"] == "item_id": + var item_name = "Unknown" + var item_player_game = client._game_by_player[message_part["player"]] + if client._item_id_to_name[item_player_game].has(int(message_part["text"])): + item_name = client._item_id_to_name[item_player_game][int(message_part["text"])] + + parts.append( + "[color=%s]%s[/color]" % [colorForItemType(message_part["flags"]), item_name] + ) + elif message_part["type"] == "location_id": + var location_name = "Unknown" + var location_player_game = client._game_by_player[message_part["player"]] + if client._location_id_to_name[location_player_game].has(int(message_part["text"])): + location_name = client._location_id_to_name[location_player_game][int( + message_part["text"] + )] + + parts.append("[color=#00ff7f]%s[/color]" % location_name) + elif message_part.has("text"): + parts.append(message_part["text"]) + + var textclient_node = global.get_node("Textclient") + if textclient_node != null: + textclient_node.parse_printjson("".join(parts)) + + func _client_could_not_connect(): emit_signal("could_not_connect") -- cgit 1.4.1