From 2d78565f775598b98cf8894c49e6e2b068070977 Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Wed, 31 Dec 2025 21:13:34 -0700 Subject: [PATCH] Make saveAccount.php work with new db method --- database/backported/1.2-beta2/syncAccount.php | 43 +++++++---- .../backported/1.4.0-beta1/saveAccount.php | 56 +++++++++----- database/backported/1.5/saveAccount.php | 75 ++++++++++++------- database/saveAccount.php | 45 +++++++---- 4 files changed, 145 insertions(+), 74 deletions(-) diff --git a/database/backported/1.2-beta2/syncAccount.php b/database/backported/1.2-beta2/syncAccount.php index 094d7f8..874938e 100644 --- a/database/backported/1.2-beta2/syncAccount.php +++ b/database/backported/1.2-beta2/syncAccount.php @@ -1,25 +1,40 @@ prepare("SELECT * FROM users WHERE token = ? AND id = ?"); -$stmt->bind_param("ss", $request_session, $request_uid); +$stmt = $conn0->prepare("SELECT * FROM users WHERE id = ?"); +$stmt->bind_param("s", $request_uid); $stmt->execute(); $result = $stmt->get_result(); -if ($result->num_rows > 0) { - $updateStmt = $conn->prepare("UPDATE users SET legacy_high_score = ? WHERE token = ? AND id = ?"); - $updateStmt->bind_param("isi", $request_score, $request_session, $request_uid); - $updateStmt->execute(); - echo "1"; - $updateStmt->close(); -} else { - echo "-3"; +if ($result->num_rows != 1) { + echo (getClientVersion() == "1.3-beta2" || getClientVersion() == "1.3" || getClientVersion() == "1.33") ? "-2" : "-3"; + $conn0->close(); + $conn1->close(); + exit; } -$stmt->close(); -$conn->close(); -?> \ No newline at end of file +$request_uid = $result->fetch_assoc()["id"]; + +$stmt2 = $conn1->prepare("SELECT * FROM userdata WHERE token = ? AND id = ?"); +$stmt2->bind_param("si", $request_session, $request_uid); +$stmt2->execute(); +$result2 = $stmt2->get_result(); + +if ($result2->num_rows != 1) { + echo (getClientVersion() == "1.3-beta2" || getClientVersion() == "1.3" || getClientVersion() == "1.33") ? "-2" : "-3"; + $conn0->close(); + $conn1->close(); + exit; +} + +$updateStmt = $conn1->prepare("UPDATE userdata SET legacy_high_score = ? WHERE token = ? AND id = ?"); +$updateStmt->bind_param("isi", $request_score, $request_session, $request_uid); +$updateStmt->execute(); +$updateStmt->close(); + +echo "1"; \ No newline at end of file diff --git a/database/backported/1.4.0-beta1/saveAccount.php b/database/backported/1.4.0-beta1/saveAccount.php index e06ead1..485f2d3 100644 --- a/database/backported/1.4.0-beta1/saveAccount.php +++ b/database/backported/1.4.0-beta1/saveAccount.php @@ -1,5 +1,6 @@ prepare("SELECT * FROM users WHERE token = ? AND username = ?"); -$stmt->bind_param("ss", $request_gameSession, $request_userName); +$stmt = $conn0->prepare("SELECT * FROM users WHERE username = ?"); +$stmt->bind_param("s", $request_userName); $stmt->execute(); $result = $stmt->get_result(); -if ($result->num_rows > 0) { - $row = $result->fetch_assoc(); - $savedata = json_decode($row['save_data'], true); - $savedata['bird']['icon'] = $request_icon; - $savedata['bird']['overlay'] = $request_overlay; - $savedata = json_encode($savedata); - - $updateStmt = $conn->prepare("UPDATE users SET legacy_high_score = ?, save_data = ? WHERE token = ? AND username = ?"); - $updateStmt->bind_param("isss", $request_highScore, $savedata, $request_gameSession, $request_userName); - $updateStmt->execute(); - echo "1"; - $updateStmt->close(); -} else { - echo "-3"; +if ($result->num_rows != 1) { + echo "-2"; + $conn0->close(); + $conn1->close(); + exit; } -$stmt->close(); -$conn->close(); -?> \ No newline at end of file +$request_uid = $result->fetch_assoc()["id"]; + +$stmt2 = $conn1->prepare("SELECT * FROM userdata WHERE token = ? AND id = ?"); +$stmt2->bind_param("si", $request_gameSession, $request_uid); +$stmt2->execute(); +$result2 = $stmt2->get_result(); + +if ($result2->num_rows != 1) { + echo (getClientVersion() == "1.3-beta2" || getClientVersion() == "1.3" || getClientVersion() == "1.33") ? "-2" : "-3"; + $conn0->close(); + $conn1->close(); + exit; +} + +$row2 = $result2->fetch_assoc(); + +$savedata = json_decode($row2['save_data'], true); +$savedata['bird']['icon'] = $request_icon; +$savedata['bird']['overlay'] = $request_overlay; +$savedata = json_encode($savedata); + +$updateStmt = $conn1->prepare("UPDATE userdata SET legacy_high_score = ?, save_data = ? WHERE token = ? AND id = ?"); +$updateStmt->bind_param("issi", $request_highScore, $savedata, $request_gameSession, $request_uid); +$updateStmt->execute(); +$updateStmt->close(); + +echo "1"; \ No newline at end of file diff --git a/database/backported/1.5/saveAccount.php b/database/backported/1.5/saveAccount.php index 81bd995..942d45c 100644 --- a/database/backported/1.5/saveAccount.php +++ b/database/backported/1.5/saveAccount.php @@ -8,40 +8,61 @@ $overlay = (int)$post['overlay'] ?? 0; $birdR = (int)$post['birdR'] ?? 255; $birdG = (int)$post['birdG'] ?? 255; $birdB = (int)$post['birdB'] ?? 255; -$overlayR = (int)$post['overlayR'] ?? 255; -$overlayG = (int)$post['overlayG'] ?? 255; -$overlayB = (int)$post['overlayB'] ?? 255; +if (getClientVersion() == "1.5.2") { + $overlayR = (int)$post['overlayR'] ?? 255; + $overlayG = (int)$post['overlayG'] ?? 255; + $overlayB = (int)$post['overlayB'] ?? 255; +} $birdColor = [$birdR, $birdG, $birdB]; $overlayColor = [$overlayR, $overlayG, $overlayB]; -$conn = newConnection(); +$conn0 = newConnection(0); +$conn1 = newConnection(1); -$stmt = $conn->prepare("SELECT * FROM users WHERE token = ? AND username = ?"); -$stmt->bind_param("ss", $token, $username); +$stmt = $conn0->prepare("SELECT * FROM users WHERE username = ?"); +$stmt->bind_param("s", $username); $stmt->execute(); $result = $stmt->get_result(); -if ($result->num_rows > 0) { - $row = $result->fetch_assoc(); - $savedata = json_decode($row['save_data'], true); - $savedata['bird']['icon'] = $icon; - $savedata['bird']['overlay'] = $overlay; - $savedata['settings']['colors']['icon'] = $birdColor; - $savedata['settings']['colors']['overlay'] = $overlayColor; - $savedata = json_encode($savedata); - $updateStmt = $conn->prepare("UPDATE users SET legacy_high_score = ?, save_data = ? WHERE token = ? AND username = ?"); - $updateStmt->bind_param("isss", - $highScore, - $savedata, - $token, - $username - ); - $updateStmt->execute(); - $updateStmt->close(); - echo encrypt("1"); -} else { +if ($result->num_rows != 1) { echo encrypt("-1"); + $conn0->close(); + $conn1->close(); + exit; } -$stmt->close(); -$conn->close(); \ No newline at end of file +$row = $result->fetch_assoc(); +$id = $row["id"]; + +$stmt2 = $conn1->prepare("SELECT * FROM userdata WHERE id = ? AND token = ?"); +$stmt2->bind_param("is", $id, $token); +$stmt2->execute(); +$result2 = $stmt2->get_result(); + +if ($result2->num_rows != 1) { + echo encrypt("-1"); + $conn0->close(); + $conn1->close(); + exit; +} + +$row2 = $result2->fetch_assoc(); +$savedata = json_decode($row2['save_data'], true); +$savedata['bird']['icon'] = $icon; +$savedata['bird']['overlay'] = $overlay; +$savedata['settings']['colors']['icon'] = $birdColor; +if (getClientVersion() == "1.5.2") $savedata['settings']['colors']['overlay'] = $overlayColor; +$savedata = json_encode($savedata); +$updateStmt = $conn1->prepare("UPDATE userdata SET legacy_high_score = ?, save_data = ? WHERE id = ? AND token = ?"); +$updateStmt->bind_param("isis", + $highScore, + $savedata, + $id, + $token +); +$updateStmt->execute(); +$updateStmt->close(); +echo encrypt("1"); + +$conn0->close(); +$conn1->close(); \ No newline at end of file diff --git a/database/saveAccount.php b/database/saveAccount.php index 6c3e0f5..e9ab527 100644 --- a/database/saveAccount.php +++ b/database/saveAccount.php @@ -13,7 +13,7 @@ if ( require __DIR__ . '/backported/1.2-beta2/syncAccount.php'; exit; } -if (getClientVersion() == "1.4.0-beta1") { +if (getClientVersion() == "1.4.0-beta1" || getClientVersion() == "1.4.0" || getClientVersion() == "1.4.1") { require __DIR__ . '/backported/1.4.0-beta1/saveAccount.php'; exit; } @@ -37,22 +37,41 @@ try { echo encrypt(json_encode(["success" => false, "message" => "Couldn't parse save data"])); } -$conn = newConnection(); +$conn0 = newConnection(0); +$conn1 = newConnection(1); -$stmt = $conn->prepare("SELECT * FROM users WHERE token = ? AND username = ?"); -$stmt->bind_param("ss", $token, $username); +$stmt = $conn0->prepare("SELECT * FROM users WHERE username = ?"); +$stmt->bind_param("s", $username); $stmt->execute(); $result = $stmt->get_result(); -if ($result->num_rows > 0) { - $updateStmt = $conn->prepare("UPDATE users SET save_data = ? WHERE token = ? AND username = ?"); - $updateStmt->bind_param("sss", $savedata, $token, $username); - $updateStmt->execute(); - $updateStmt->close(); - echo encrypt(json_encode(["success" => true])); -} else { +if ($result->num_rows != 1) { echo encrypt(json_encode(["success" => false, "message" => "Invalid session token or username, please refresh login"])); + $conn0->close(); + $conn1->close(); + exit; } -$stmt->close(); -$conn->close(); \ No newline at end of file +$row = $result->fetch_assoc(); +$id = $row["id"]; + +$stmt = $conn1->prepare("SELECT id FROM userdata WHERE token = ? AND id = ?"); +$stmt->bind_param("si", $token, $id); +$stmt->execute(); +$result = $stmt->get_result(); + +if ($result->num_rows != 1) { + echo encrypt(json_encode(["success" => false, "message" => "Invalid session token or username, please refresh login"])); + $conn0->close(); + $conn1->close(); + exit; +} + +$updateStmt = $conn1->prepare("UPDATE userdata SET save_data = ? WHERE token = ? AND id = ?"); +$updateStmt->bind_param("ssi", $savedata, $token, $id); +$updateStmt->execute(); +$updateStmt->close(); +echo encrypt(json_encode(["success" => true])); + +$conn0->close(); +$conn1->close(); \ No newline at end of file