diff --git a/database/backported/1.3-beta2/getTopPlayers.php b/database/backported/1.3-beta2/getTopPlayers.php index 6ee62f6..4b2d243 100644 --- a/database/backported/1.3-beta2/getTopPlayers.php +++ b/database/backported/1.3-beta2/getTopPlayers.php @@ -1,25 +1,8 @@ prepare("SELECT username, legacy_high_score, id, save_data FROM users WHERE legacy_high_score > 0 AND banned = 0 AND leaderboardsBanned = 0 ORDER BY legacy_high_score DESC LIMIT ?"); -$stmt->bind_param("i", $request_limit); +$stmt = $conn0->prepare("SELECT username, id FROM users WHERE leaderboards_banned = 0"); $stmt->execute(); $result = $stmt->get_result(); @@ -28,18 +11,48 @@ if ($result->num_rows > 0) { $topPlayers = []; while ($row = $result->fetch_assoc()) { - $savedata = json_decode($row['save_data'], true); + $id = $row["id"]; + $stmt2 = $conn1->prepare("SELECT legacy_high_score, save_data FROM userdata WHERE id = ? AND legacy_high_score > 0 ORDER BY legacy_high_score DESC LIMIT 1"); + $stmt2->bind_param("i", $id); + $stmt2->execute(); + $result2 = $stmt2->get_result(); + + if ($result2->num_rows != 1) { + continue; + } + + $user2 = $result2->fetch_assoc(); + + $savedata = json_decode($user2['save_data'], true); $icon = $savedata['bird']['icon'] ?? 1; $overlay = $savedata['bird']['overlay'] ?? 0; - $topPlayers[] = $row["username"] . ":" . $row["legacy_high_score"] . ":" . $icon . ":" . $overlay . ":" . $row["id"]; + if (getClientVersion() == "1.3-beta2" || getClientVersion() == "1.3" || getClientVersion() == "1.33") { + $topPlayers[] = $row["username"] . ":" . $user2["legacy_high_score"] . ":" . $icon . ":" . $overlay . ":" . $id; + } else if (getClientVersion() == "0") { + $topPlayers[] = base64_encode($row["username"]) . ":" . $user2["legacy_high_score"] . ":" . $icon . ":" . $overlay . ":" . $id; + } else if (getClientVersion() == "1.5.0" || getClientVersion() == "1.5.1" || getClientVersion() == "1.5.2") { + $birdColor = $savedata['settings']['colors']['icon'] ?? [255,255,255]; + $overlayColor = $savedata['settings']['colors']['overlay'] ?? [255,255,255]; + $topPlayers[] = base64_encode($row["username"]) . ":" . $user2["legacy_high_score"] . ":" . $icon . ":" . $overlay . ":" . $id . ":" . $birdColor[0] . ":" . $birdColor[1] . ":" . $birdColor[2] . ":" . $overlayColor[0] . ":" . $overlayColor[1] . ":" . $overlayColor[2]; + } + } + + if (getClientVersion() == "1.3-beta2" || getClientVersion() == "1.3" || getClientVersion() == "1.33") { + echo implode("::", $topPlayers); + } else if (getClientVersion() == "0") { + echo implode(";", $topPlayers); + } else if (getClientVersion() == "1.5.0" || getClientVersion() == "1.5.1" || getClientVersion() == "1.5.2") { + echo encrypt(implode(";", $topPlayers)); } - - $output = implode("::", $topPlayers); - - echo $output; } else { - echo -2; + if (getClientVersion() == "1.3-beta2" || getClientVersion() == "1.3" || getClientVersion() == "1.33") { + echo "-2"; + } else if (getClientVersion() == "0") { + echo "-1"; + } else if (getClientVersion() == "1.5.0" || getClientVersion() == "1.5.1" || getClientVersion() == "1.5.2") { + echo encrypt("-1"); + } } -$conn->close(); -?> \ No newline at end of file +$conn0->close(); +$conn1->close(); \ No newline at end of file diff --git a/database/backported/1.4.0-beta1/getTopPlayers.php b/database/backported/1.4.0-beta1/getTopPlayers.php deleted file mode 100644 index 15cee1f..0000000 --- a/database/backported/1.4.0-beta1/getTopPlayers.php +++ /dev/null @@ -1,43 +0,0 @@ -prepare("SELECT username, legacy_high_score, id, save_data FROM users WHERE legacy_high_score > 0 AND banned = 0 AND leaderboardsBanned = 0 ORDER BY legacy_high_score DESC LIMIT ?"); -$stmt->bind_param("i", $request_limit); -$stmt->execute(); - -$result = $stmt->get_result(); - -if ($result->num_rows > 0) { - $topPlayers = []; - - while ($row = $result->fetch_assoc()) { - $savedata = json_decode($row['save_data'], true); - $icon = $savedata['bird']['icon'] ?? 1; - $overlay = $savedata['bird']['overlay'] ?? 0; - $topPlayers[] = base64_encode($row["username"]) . ":" . $row["legacy_high_score"] . ":" . $icon . ":" . $overlay . ":" . $row["id"]; - } - - echo implode(";", $topPlayers); -} else { - echo "-1"; -} - -$conn->close(); -?> \ No newline at end of file diff --git a/database/backported/1.5/getTopPlayers.php b/database/backported/1.5/getTopPlayers.php deleted file mode 100644 index dd1faa7..0000000 --- a/database/backported/1.5/getTopPlayers.php +++ /dev/null @@ -1,47 +0,0 @@ -prepare("SELECT username, legacy_high_score, id, save_data FROM users WHERE legacy_high_score > 0 AND banned = 0 AND leaderboardsBanned = 0 ORDER BY legacy_high_score DESC LIMIT ?"); -$stmt->bind_param("i", $request_limit); -$stmt->execute(); - -$result = $stmt->get_result(); - -if ($result->num_rows > 0) { - $topPlayers = []; - - while ($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]; - $topPlayers[] = base64_encode($row["username"]) . ":" . $row["legacy_high_score"] . ":" . $icon . ":" . $overlay . ":" . $row["id"] . ":" . $birdColor[0] . ":" . $birdColor[1] . ":" . $birdColor[2] . ":" . $overlayColor[0] . ":" . $overlayColor[1] . ":" . $overlayColor[2]; - } - - $output = implode(";", $topPlayers); - - echo encrypt($output); -} else { - echo encrypt("-1"); -} - -$conn->close(); -?> \ No newline at end of file diff --git a/database/getTopPlayers.php b/database/getTopPlayers.php index 3f2f5f1..f324a0d 100644 --- a/database/getTopPlayers.php +++ b/database/getTopPlayers.php @@ -1,21 +1,22 @@ prepare("SELECT username, id, save_data, legacy_high_score - FROM users - WHERE banned = 0 AND leaderboardsBanned = 0"); +$stmt = $conn0->prepare("SELECT username, id FROM users WHERE leaderboards_banned = 0"); $stmt->execute(); $result = $stmt->get_result(); @@ -46,7 +45,19 @@ $rows = $result->fetch_all(MYSQLI_ASSOC); $mapped = []; $icons = []; foreach ($rows as $row) { - $savedata = json_decode($row['save_data'], true); + $id = $row["id"]; + $stmt2 = $conn1->prepare("SELECT legacy_high_score, save_data FROM userdata WHERE id = ? LIMIT 1"); + $stmt2->bind_param("i", $id); + $stmt2->execute(); + $result2 = $stmt2->get_result(); + + if ($result2->num_rows != 1) { + continue; + } + + $user2 = $result2->fetch_assoc(); + + $savedata = json_decode($user2['save_data'], true); if (!$savedata) continue; if ($request_type == "4") { @@ -54,14 +65,14 @@ foreach ($rows as $row) { $value = 0; foreach ($berries as $b) $value += (int)($savedata['gameStore'][$b] ?? 0); } else { - $value = $request_type != 2 ? $request_type != 3 ? ($savedata['gameStore'][$request_value] ?? 0) : ($row['legacy_high_score'] ?? 0) : ($savedata['bird']['customIcon']['balance'] ?? 0); + $value = $request_type != 2 ? $request_type != 3 ? ($savedata['gameStore'][$request_value] ?? 0) : ($user2['legacy_high_score'] ?? 0) : ($savedata['bird']['customIcon']['balance'] ?? 0); } if ($value <= 0) continue; $customIcon = $savedata['bird']['customIcon']['selected'] ?? null; if ($customIcon != null && strlen($customIcon) == 36 && $icons[$customIcon] == null) { - $stmt = $conn->prepare("SELECT data FROM marketplaceicons WHERE uuid = ?"); + $stmt = $conn1->prepare("SELECT data FROM marketplaceicons WHERE uuid = ?"); $stmt->bind_param("s", $customIcon); $stmt->execute(); $result = $stmt->get_result(); @@ -74,7 +85,7 @@ foreach ($rows as $row) { $mapped[] = [ 'username' => $row['username'], - 'userid' => $row['id'], + 'userid' => $id, 'value' => $value, 'icon' => $savedata['bird']['icon'] ?? 1, 'overlay' => $savedata['bird']['overlay'] ?? 0, @@ -93,4 +104,5 @@ if (getClientVersion() == "1.6" || (getClientVersion() == "1.6.1" && $request_ty echo encrypt(json_encode(["entries" => $limited, "customIcons" => $icons == [] ? new stdClass() : $icons])); } -$conn->close(); \ No newline at end of file +$conn0->close(); +$conn1->close(); \ No newline at end of file diff --git a/database/getTopPlayersAPI.php b/database/getTopPlayersAPI.php deleted file mode 100644 index a61486f..0000000 --- a/database/getTopPlayersAPI.php +++ /dev/null @@ -1,34 +0,0 @@ -prepare("SELECT username, id, save_data - FROM users - WHERE banned = 0 AND leaderboardsBanned = 0"); -$stmt->execute(); - -$result = $stmt->get_result(); -$rows = $result->fetch_all(MYSQLI_ASSOC); - -$mapped = []; -foreach ($rows as $row) { - $savedata = json_decode($row['save_data'], true); - if (!$savedata) continue; - - $value = $savedata['gameStore']['highScore'] ?? 0; - if ($value <= 0) continue; - - $mapped[] = [ - 'username' => $row['username'], - 'score' => (int)$value, - 'scoreFormatted' => number_format($value) - ]; -} - -usort($mapped, fn($a,$b) => $b['score'] <=> $a['score']); -$limited = array_slice($mapped, 0, 500); - -echo json_encode($limited); - -$conn->close(); \ No newline at end of file