Pangamma

PHP proxy for downloading latest paper or waterfall jars

Feb 6th, 2021
1,765
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.41 KB | None | 0 0
  1. <?php
  2. ini_set('display_errors', 1);
  3. ini_set('display_startup_errors', 1);
  4. $project = 'paper'; // or waterfall
  5. $version = getLatestVersion($project);
  6. $build = getLatestBuild($project, $version);
  7. $fileName = getLatestDownload($project, $version, $build);
  8.  
  9. $downloadURL = "https://papermc.io/api/v2/projects/{$project}/versions/{$version}/builds/{$build}/downloads/{$fileName}";
  10. header("Content-Disposition: attachment; filename*=UTF-8''paper-latest.jar");
  11. header('Content-Type: application/java-archive');
  12. echo file_get_contents($downloadURL);
  13.  
  14.  
  15. function getLatestDownload($projectName, $version, $build){
  16.   $downloadStr = file_get_contents('https://papermc.io/api/v2/projects/'.$projectName.'/versions/'.$version.'/builds/'.$build);
  17.   $downloads = json_decode($downloadStr);
  18.   return $downloads->downloads->application->name;
  19. }
  20.  
  21. function getLatestBuild($projectName, $version){
  22.   $buildsStr = file_get_contents('https://papermc.io/api/v2/projects/'.$projectName.'/versions/'.$version);
  23.   $builds = json_decode($buildsStr);
  24.   $latestBuild = $builds->builds[count($builds->builds)-1];
  25.   return $latestBuild;
  26. }
  27.  
  28. function getLatestVersion($projectName){
  29.   $versions = file_get_contents('https://papermc.io/api/v2/projects/'.$projectName);
  30.   $versionJson = json_decode($versions);
  31.   $numVersions = count($versionJson->versions) - 1;
  32.   $latestVersion = $versionJson->versions[$numVersions];
  33.   return $latestVersion;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment