feat: directly retrieve files to restore missing functions from commit
This commit is contained in:
+22
-19
@@ -1,11 +1,10 @@
|
||||
extends Node
|
||||
|
||||
# Standard Nakama Configuration
|
||||
var nakama_server_key = "defaultkey"
|
||||
var nakama_host = "thunderobot.tapir-atria.ts.net"
|
||||
var nakama_port = 7350
|
||||
var nakama_scheme = "https"
|
||||
var nakama_port_funnel = 443
|
||||
var nakama_server_key = OS.get_environment("NAKAMA_SERVER_KEY") if OS.has_environment("NAKAMA_SERVER_KEY") else ProjectSettings.get_setting("network/nakama/server_key", "defaultkey")
|
||||
var nakama_host = OS.get_environment("NAKAMA_HOST") if OS.has_environment("NAKAMA_HOST") else ProjectSettings.get_setting("network/nakama/host", "tektondash.vps.webdock.cloud")
|
||||
var nakama_port = OS.get_environment("NAKAMA_PORT").to_int() if OS.has_environment("NAKAMA_PORT") else ProjectSettings.get_setting("network/nakama/port", 7350)
|
||||
var nakama_scheme = OS.get_environment("NAKAMA_SCHEME") if OS.has_environment("NAKAMA_SCHEME") else ProjectSettings.get_setting("network/nakama/scheme", "http")
|
||||
|
||||
# Core Nakama Variables
|
||||
var client: NakamaClient
|
||||
@@ -30,10 +29,7 @@ func _ready():
|
||||
set_process(true)
|
||||
|
||||
func _init_client():
|
||||
if nakama_host == "thunderobot.tapir-atria.ts.net":
|
||||
client = Nakama.create_client(nakama_server_key, nakama_host, 443, "https")
|
||||
else:
|
||||
client = Nakama.create_client(nakama_server_key, nakama_host, nakama_port, nakama_scheme)
|
||||
client = Nakama.create_client(nakama_server_key, nakama_host, nakama_port, nakama_scheme)
|
||||
|
||||
func set_server(host: String, port: int = 7350):
|
||||
# Clean up the host string
|
||||
@@ -127,8 +123,16 @@ func connect_to_nakama_async(email: String = "", password: String = "") -> bool:
|
||||
return false
|
||||
elif socket_result.is_exception():
|
||||
var err = socket_result.get_exception()
|
||||
printerr("[NakamaManager] Socket Error: %s (Code: %s)" % [err.message, err.status_code])
|
||||
emit_signal("connection_failed", err.message)
|
||||
var err_msg = "Socket connection failed"
|
||||
if err and not err.message.is_empty():
|
||||
err_msg = err.message
|
||||
elif err and err.status_code >= 0:
|
||||
err_msg = "Socket connection failed with code %s" % err.status_code
|
||||
printerr("[NakamaManager] Socket Error: %s (Code: %s)" % [err_msg, err.status_code if err else -1])
|
||||
emit_signal("connection_failed", err_msg)
|
||||
if socket:
|
||||
socket.close()
|
||||
socket = null
|
||||
return false
|
||||
|
||||
# 3. Initialize Multiplayer Bridge
|
||||
@@ -184,8 +188,10 @@ func host_game(room_meta: Dictionary = {}):
|
||||
printerr("Cannot host: Bridge not initialized")
|
||||
return
|
||||
print("Hosting match via Nakama Bridge...")
|
||||
await bridge.create_match()
|
||||
# Errors are emitted via bridge's match_join_error signal
|
||||
var result = await bridge.create_match()
|
||||
if result and result.is_exception():
|
||||
emit_signal("match_join_error", result.get_exception().message)
|
||||
return
|
||||
# Store room metadata in Nakama storage so other players can see it in listings
|
||||
if session and current_match_id and room_meta.size() > 0:
|
||||
var meta_json = JSON.stringify(room_meta)
|
||||
@@ -211,13 +217,10 @@ func join_game(match_id: String):
|
||||
# Wait a bit for cleanup
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
if not bridge:
|
||||
printerr("Cannot join: Bridge became null while waiting")
|
||||
return
|
||||
|
||||
print("Joining match: ", match_id)
|
||||
await bridge.join_match(match_id)
|
||||
# Errors are emitted via bridge's match_join_error signal
|
||||
var result = await bridge.join_match(match_id)
|
||||
if result and result.is_exception():
|
||||
emit_signal("match_join_error", result.get_exception().message)
|
||||
|
||||
# --- Callbacks ---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user