diff --git a/scripts/services/backend_service.gd b/scripts/services/backend_service.gd index 17b71ad..e5e58fc 100644 --- a/scripts/services/backend_service.gd +++ b/scripts/services/backend_service.gd @@ -65,12 +65,12 @@ func _initialize_steamworks_for_auth() -> void: push_error("BackendService: Failed to load Steamworks manager") func _initialize_nakama() -> void: - nakama_backend = NakamaManager + nakama_backend = get_node_or_null("/root/NakamaManager") if nakama_backend: _connect_nakama_signals() print("BackendService: Initialized Nakama backend") else: - push_error("BackendService: NakamaManager not found") + push_error("BackendService: NakamaManager not found at /root/NakamaManager") func _connect_nakama_signals() -> void: pass diff --git a/scripts/ui/leaderboard_panel.gd b/scripts/ui/leaderboard_panel.gd index 0ac9978..e6292c7 100644 --- a/scripts/ui/leaderboard_panel.gd +++ b/scripts/ui/leaderboard_panel.gd @@ -71,7 +71,7 @@ func show_panel() -> void: show() status_label.text = "Syncing scores..." # Bulk-sync all users' storage stats to native leaderboard (server-side operation) - if NakamaManager.session: + if NakamaManager.get("session"): var sync_result = await BackendService.sync_leaderboard() if sync_result.get("success", false) == false: push_error("[Leaderboard] sync_leaderboard RPC failed: " + str(sync_result.get("error", ""))) @@ -87,7 +87,7 @@ func _on_close_pressed() -> void: # Data # ------------------------------------------------------------------------- func _fetch_leaderboard_data() -> void: - if not NakamaManager.session: + if not NakamaManager.get("session"): status_label.text = "Not connected to Nakama" return @@ -115,7 +115,7 @@ func _fetch_leaderboard_data() -> void: func _fetch_native_leaderboard() -> Array: """Use the Nakama client API to list native leaderboard records directly.""" var result = await NakamaManager.client.list_leaderboard_records_async( - NakamaManager.session, + NakamaManager.get("session"), "global_high_score", [], # no specific owner filter null, # expiry = null (no filter) @@ -133,7 +133,7 @@ func _fetch_native_leaderboard() -> Array: var parsed = JSON.parse_string(record.metadata) if parsed is Dictionary: meta = parsed - if record.owner_id == NakamaManager.session.user_id: + if record.owner_id == NakamaManager.get("session").user_id: print("[Leaderboard] Local player meta: ", meta) data.append({ @@ -177,9 +177,9 @@ func _calculate_win_rates() -> void: entry["win_rate"] = float(won) / float(played) * 100.0 if played > 0 else 0.0 func _apply_local_overrides(data: Array) -> void: - if not NakamaManager.session: + if not NakamaManager.get("session"): return - var my_id = NakamaManager.session.user_id + var my_id = NakamaManager.get("session").user_id for entry in data: if entry.get("user_id") == my_id: entry["display_name"] = UserProfileManager.get_display_name(entry.get("display_name", "Unknown"))