From f511da6f2186c6fc8f5a1730126136388fb8b770 Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Wed, 31 Dec 2025 19:21:50 -0700 Subject: [PATCH] Make loadAccount.php work with new db method --- .../backported/1.4.0-beta1/loadAccount.php | 69 +++++++++++++++---- database/backported/1.5/loadAccount.php | 26 ------- database/loadAccount.php | 65 +++++++++++------ 3 files changed, 98 insertions(+), 62 deletions(-) delete mode 100644 database/backported/1.5/loadAccount.php diff --git a/database/backported/1.4.0-beta1/loadAccount.php b/database/backported/1.4.0-beta1/loadAccount.php index fcfbce3..088ff86 100644 --- a/database/backported/1.4.0-beta1/loadAccount.php +++ b/database/backported/1.4.0-beta1/loadAccount.php @@ -1,23 +1,62 @@ 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); - $icon = $savedata['bird']['icon'] ?? 1; - $overlay = $savedata['bird']['overlay'] ?? 0; - echo "1:" . $row['legacy_high_score'] . ":" . $icon . ":" . $overlay; -} else { - echo "-1"; +if ($result->num_rows != 1) { + echo (getClientVersion() == "1.5.0" || getClientVersion() == "1.5.1" || getClientVersion() == "1.5.2") ? encrypt("-1") : "-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 save_data, legacy_high_score FROM userdata WHERE id = ? AND token = ? LIMIT 1"); +$stmt2->bind_param("is", $id, $token); +$stmt2->execute(); +$result2 = $stmt2->get_result(); + +if ($result2->num_rows != 1) { + echo (getClientVersion() == "1.5.0" || getClientVersion() == "1.5.1" || getClientVersion() == "1.5.2") ? encrypt("-1") : "-1"; + $conn0->close(); + $conn1->close(); + exit; +} + +$user2 = $result2->fetch_assoc(); + +$savedata = json_decode($user2['save_data'], true); +$icon = $savedata['bird']['icon'] ?? 1; +$overlay = $savedata['bird']['overlay'] ?? 0; +if (getClientVersion() == "1.5.0" || getClientVersion() == "1.5.1" || getClientVersion() == "1.5.2") { + $birdColor = $savedata['settings']['colors']['icon'] ?? [255,255,255]; + $msg = "1:" . $user2['legacy_high_score'] . ":" . $icon . ":" . $overlay . ":0:0:0:0:0:0:" . ":" . $birdColor[0] . ":" . $birdColor[1] . ":" . $birdColor[2]; + if (getClientVersion() == "1.5.2") { + $overlayColor = $savedata['settings']['colors']['overlay'] ?? [255,255,255]; + $msg .= ":" . $overlayColor[0] . ":" . $overlayColor[1] . ":" . $overlayColor[2]; + } + echo encrypt($msg); +} else { + echo "1:" . $user2['legacy_high_score'] . ":" . $icon . ":" . $overlay; +} + +$conn0->close(); +$conn1->close(); \ No newline at end of file diff --git a/database/backported/1.5/loadAccount.php b/database/backported/1.5/loadAccount.php deleted file mode 100644 index d1166ec..0000000 --- a/database/backported/1.5/loadAccount.php +++ /dev/null @@ -1,26 +0,0 @@ -prepare("SELECT * FROM users WHERE token = ? AND username = ?"); -$stmt->bind_param("ss", $token, $username); -$stmt->execute(); -$result = $stmt->get_result(); - -if ($result->num_rows > 0) { - $row = $result->fetch_assoc(); - $savedata = json_decode($row['save_data'], true); - $icon = $savedata['bird']['icon'] ?? 1; - $overlay = $savedata['bird']['overlay'] ?? 0; - $birdColor = $savedata['settings']['colors']['icon'] ?? [255,255,255]; - $overlayColor = $savedata['settings']['colors']['overlay'] ?? [255,255,255]; - echo encrypt("1" . ":" . $row['legacy_high_score'] . ":" . $icon . ":" . $overlay . ":0:0:0:0:0:0:" . ":" . $birdColor[0] . ":" . $birdColor[1] . ":" . $birdColor[2] . ":" . $overlayColor[0] . ":" . $overlayColor[1] . ":" . $overlayColor[2]); -} else { - echo encrypt("-1"); -} - -$stmt->close(); -$conn->close(); \ No newline at end of file diff --git a/database/loadAccount.php b/database/loadAccount.php index d47ebe2..da6ff94 100644 --- a/database/loadAccount.php +++ b/database/loadAccount.php @@ -1,39 +1,62 @@ prepare("SELECT * FROM users WHERE token = ? AND username = ?"); -$stmt->bind_param("ss", $token, $username); +$stmt = $conn0->prepare("SELECT id, username 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['account']['id'] = $row['id']; - $savedata['account']['name'] = $row['username']; - $savedata['account']['session'] = $row['token']; - echo encrypt(json_encode([ - "success" => true, - "data" => $savedata - ])); -} 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"]; + +$stmt2 = $conn1->prepare("SELECT save_data, token 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(json_encode(["success" => false, "message" => "Invalid session token or username, please refresh login"])); + $conn0->close(); + $conn1->close(); + exit; +} + +$row2 = $result2->fetch_assoc(); + +$savedata = json_decode($row2['save_data'], true); +$savedata['account']['id'] = $id; +$savedata['account']['name'] = $row['username']; +$savedata['account']['session'] = $row2['token']; +echo encrypt(json_encode([ + "success" => true, + "data" => $savedata +])); + +$conn0->close(); +$conn1->close(); \ No newline at end of file