feat: fix gatcha, and login flow connection
This commit is contained in:
@@ -73,7 +73,8 @@ func _try_restore_session() -> void:
|
||||
session = refreshed
|
||||
_save_session(session, saved_auth_mode)
|
||||
else:
|
||||
print("[AuthManager] Session refresh failed, need to re-login")
|
||||
var err_msg: String = refreshed.get_exception().message
|
||||
print("[AuthManager] Session refresh failed (%s) — need to re-login" % err_msg)
|
||||
return
|
||||
else:
|
||||
print("[AuthManager] Session expired, need to re-login")
|
||||
@@ -85,12 +86,18 @@ func _try_restore_session() -> void:
|
||||
is_guest = auth_mode == AuthMode.GUEST
|
||||
|
||||
var socket_success := await _connect_socket()
|
||||
if socket_success:
|
||||
await _load_user_profile()
|
||||
is_authenticated = true
|
||||
emit_signal("session_restored")
|
||||
emit_signal("auth_completed", true, current_user)
|
||||
print("[AuthManager] Session restored successfully")
|
||||
if not socket_success:
|
||||
# Clean up so manual login starts from a blank slate
|
||||
push_warning("[AuthManager] Session restore failed — socket could not connect. Resetting state.")
|
||||
NakamaManager.session = null
|
||||
NakamaManager.socket = null
|
||||
return
|
||||
|
||||
await _load_user_profile()
|
||||
is_authenticated = true
|
||||
emit_signal("session_restored")
|
||||
emit_signal("auth_completed", true, current_user)
|
||||
print("[AuthManager] Session restored successfully")
|
||||
|
||||
func _save_session(session: NakamaSession, mode: AuthMode) -> void:
|
||||
var file := FileAccess.open_encrypted_with_pass(SESSION_FILE, FileAccess.WRITE, ENCRYPTION_KEY)
|
||||
|
||||
@@ -405,11 +405,17 @@ func _reload_wallet() -> void:
|
||||
|
||||
func save_wallet() -> void:
|
||||
"""Persist wallet deductions and fragment counts to Nakama storage."""
|
||||
if not NakamaManager.session: return
|
||||
if not NakamaManager.session:
|
||||
print("[UserProfileManager] save_wallet: no session, saved in-memory only.")
|
||||
return
|
||||
var write_objs: Array = [
|
||||
NakamaWriteStorageObject.new(PROFILE_COLLECTION, "fragments", 1, 1, JSON.stringify(fragments), "")
|
||||
]
|
||||
await NakamaManager.client.write_storage_objects_async(NakamaManager.session, write_objs)
|
||||
var result = await NakamaManager.client.write_storage_objects_async(NakamaManager.session, write_objs)
|
||||
if result.is_exception():
|
||||
push_warning("[UserProfileManager] save_wallet failed: " + result.get_exception().message)
|
||||
else:
|
||||
print("[UserProfileManager] Fragments saved.")
|
||||
|
||||
# =============================================================================
|
||||
# Stats Management
|
||||
|
||||
Reference in New Issue
Block a user