Files
legacy-server/database/launcher/versions.php
T
2026-04-18 12:57:12 -07:00

56 lines
1.9 KiB
PHP

<?php
require __DIR__ . '/../../incl/util.php';
header("Content-Type: application/json");
$conn = newConnection(0);
$stmt = $conn->prepare("SELECT versionName, downloads, place FROM launcherversionmanifest WHERE hidden = 0 AND game = 1 ORDER BY id DESC");
$stmt->execute();
$result_versions = $stmt->get_result();
$versions = array_map(function($row) use ($conn) {
$downloads = json_decode($row['downloads'], true);
$downloads = array_combine(
array_map(fn($k) => match($k) {
'windows-x86' => 'windows',
'windows-x64' => 'windows',
'linux-x64' => 'linux',
'macos-universal' => 'macos',
default => $k
}, array_keys($downloads)),
array_values($downloads)
);
$platforms = array_keys($downloads);
$downloadUrls = [];
foreach ($downloads as $platform => $fileId) {
$cdnStmt = $conn->prepare("SELECT path FROM files WHERE id = ?");
$cdnStmt->bind_param("i", $fileId);
$cdnStmt->execute();
$cdnResult = $cdnStmt->get_result()->fetch_assoc();
$downloadUrls[] = $cdnResult ? "https://games-r2.lncvrt.xyz/" . $cdnResult['path'] : null;
$cdnStmt->close();
}
return [
'id' => $row['place'],
'version' => $row['versionName'],
'displayName' => $row['versionName'],
'platforms' => $platforms,
'downloadUrls' => $downloadUrls,
'executables' => array_map(function($platform) use ($row) {
return match(true) {
in_array($platform, ['windows', 'windows-arm64']) => $row['place'] >= 16 ? 'Berry Dash.exe' : 'Foodie Dash.exe',
$platform === 'macos' => $row['place'] >= 16 ? 'Berry Dash.app' : 'Foodie Dash.app',
$platform === 'linux' => $row['place'] >= 16 ? 'Berry Dash.x86_64' : 'Foodie Dash.x86_64',
in_array($platform, ['android', 'ios']) => null,
default => null
};
}, $platforms)
];
}, $result_versions->fetch_all(MYSQLI_ASSOC));
echo json_encode($versions);
$conn->close();