1,26 → 1,26 |
<?php /* <ViaThinkSoftSignature> |
VoLrukd2+1rHWc8YwnYyT7d2R4OI9x3gYpI9oiFWRkU32Yv9zQ9Yl2iHQD/2eq1vU |
HYHjdpEAWrMkSrpo9MNZ+mbyRwXXd0gK/cLQiLlYy5BCMypYdNJ54Yy/7jNto7O1u |
Wt3iBPVZeLhgmdoM3UCWSJW1c0Ngj8zv8hg7vrgU5tCqwucEvfDARDNfZs/wyQj0Z |
n8Kdj3FxhzBuM4Jm7BUgz5YJnPuKF3HVnnAMp/F68zr1ouQwzA67xPr02vd8Apbu5 |
WU2gpJzhxMvmAvNnWz5HgkSqSQb0W4ABi0M2HNzTx0f6Xr57phn8MkL6fPqGpiNE+ |
U/3IhdaSIGBqmhcg6O14MNHQzvdMcowSyEPEAz4nyGNjmobDjhSN9sYeW5zwotOfd |
Kwrz/0UlgGMhWeW3dwgxd0lUDgjvYjJtaru7Z0mkyyZNcTwKnE+BOFTZfADYe0PUm |
zY3CSSftjsfuUBap1aF1Jxy4/xVctgTVBWdKiK1Lk2C/iGEkeIFxWIk5wFVhJecr0 |
QCDzCc88s7HHNRmZwiGYGzN/2jjswOHc9KpgOczQWd1BLgX53b8rRmU1CT9u1EXli |
2ePh/QHB89fo9iaGaC5uWmFYpGdLh8CSI4evdPT4gC2hhjIpl3+t9LoR4T7i1wHKZ |
Uk1SVNvQdQUeDBZNkoqFMW8iwJcU1VgrMmr0tCqu88bxaNFAPnvOZq3W5YbPMwOvQ |
Q+G9W8dPafu0x8VjlcREkd3oHDMZFmRULPgOLhzj6Q9Ms/aBoKHRZH7T+2nzhJ1w3 |
OL7MY33Jr9WBZszPfcerOAPil65w4dS9LVzUq1mdufZ4udRMqr0DCARgk637KT7Tj |
tLntP877IW/ZaveUaLIEmFUPrK097tNi9d6og6Gb26aEeH6bd3KsVfmvgYAw7FSnM |
v9QvxjMYXrAp7X7mZ1DTad4lwAZBml8k1uQhNfeMxGXCF9Hs8wlnLCyQXM9HqhVof |
71yLzIGfS8DPIRoI6Mv8MZ0LLWqn8spNOyoazOPcNAcJaxz21J8f20F6cTjquhiaG |
oDpLH5pqjnJptdPJmZGCfzocHpAHqSsZ2zlghcoL/25iVa3sCwSVlW3/SXdrh7OIz |
smIG02GjCFa4n9/kAGewSb/UJvZmB+Z2UbMfbGKqRUoUmZvh99+qfnFHfH2cG59+b |
uviYgBLY37MEbnJ4rdyO8KtlZjcBsHzf8AyqDPthJS9hN9KGd/dq4/EneIlm+nnbo |
zQuo6Q7W2IahVsrI5Wnr9GYl9mZLBoZ1X2kn7xrprMT5K8RwohjKv2zeQaOlsBX7+ |
NkeaktqUt69FIza1BNJ5irvqGbWdkVLeeVv7W6oZYZkaQCLtgy3sujDDxCs+mIMrE |
g== |
2fWiqNt7gMw7rboV5l5dvB/ceP6jneWqHFYRNvge/NXbEoRDqossYdeNkXUGOZ1oQ |
PwqVwK/kkKISa1PTYeK33yJiiH8hBBc4LOTh4p08AEh2gBCrsS3J/Jk8+oiqg5yFi |
atnTF13ri4URJQTxC7AUNw3yDgWblNFaSSzMDIteljnDvMMb3EBCbeM87RTOxd8hw |
HqfcDqkgSRfBwDYi4NyNDSrk2ZZDkMlgH7XakxnP3GqsZgkujBVKYvhdLg86xu+1K |
qXBqfoQFhZBmL0l9iAbsFrLo0F+T6QsqsfVVyLZkuNJAGk0nRJudhaO+WwQmUealB |
ex4VsL3r18tyMri5fwft87GY1fLKjL2t3ABm03TczfGSMRQBNPdDMDziAbwBt7Vjy |
2pnW42l4jv6gsM6FEfU0LcsfXZiZvEVOqWf4RaoyUj8KjsfZTLKxkDql3qB7NEpDr |
pDasGsKk5VfBS73zqVuBaNt425atLVhqQM4ufTyZTBr+rfcTJzxraMAH4NDzilXkP |
hxGgDpG8VcYDBohmoOD1MqjNXESHp915u4y+/41lNmPAk8wKN5OXzz2WgT/8JjvP/ |
XBbpw03O+R95kTkNA6yhCDOs6FeO6962N1tmeYMp/+bw2CzPLtlUx4/vnLQk/A3Kd |
bXGlF2vKXgPLJckehzhU7Il4xbXbOL56R7DGLypuBcYTqRql/LlYKZwCctnboD0k9 |
VsZK/kP6Lp5ra66qKSrg3vT84dJs51mLBS4pUiFZ3mpcyDUhAbYYH0gGWVU/+FvJv |
uIfBialrJXttcAZ+ntXF21j+m/hVSaUocyvOQ82DUgXmRrFTvqXA19c5EI3Kg5yPE |
UL6td9X1vmUjDTXDMidWSrgbU1bLUc7WRRxPO2OVKhvAW5SUQgD144OQCnHny5NfG |
Hv8Pn6e9c5INrM0PToqBP0co2GrSjCBJj2H8oHZrpUnOyIKKLFBBajxRBZuEVySC/ |
AnKaSpJ/GgeBjQj8n+QzO+YTROnD0HPmhsPKFAXyQKp0AMGTeKEjvQ/BMY366+gnD |
tNhV5bW/Jg9HfmFCCc9HFl49mRODgfY/RPgXomkXXJoznI35gzuoEJ6oYa0l5/3x+ |
CPQVEwQD27aZ16THSuo7B15PDqlDqFK6oBEIIQo0wiKvG3ZKJ4o+/8dEFpuL7iojN |
DF6090cihGns5gccj5uwrBkqswwkZjGb9Q3b7L5kivXuuUDXkYF98EbndhDAhMCxZ |
kLVD0Wuc87Jv9C5sb9jSv+KVPbcp6PtIGuYiKFv1QTaEkpiTHDfgxRf10DGo1Ferw |
tyc9Ot1W9I5Grq0bFQVenj/si5x+CmjONBOCnByNt8aRmhl8jp88LcDnyV5FwCLYE |
A== |
</ViaThinkSoftSignature> */ ?> |
<?php |
|
29,7 → 29,7 |
* Developed by Daniel Marschall, ViaThinkSoft <www.viathinksoft.com> |
* Licensed under the terms of the Apache 2.0 license |
* |
* Revision 2023-05-02 |
* Revision 2023-06-12 |
*/ |
|
declare(ticks=1); |
54,46 → 54,14 |
} |
|
protected function get_latest_minecraft_version() { |
$headers = array( |
// These headers are important! Otherwise the request will be blocked by AkamaiGhost |
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36", |
"Accept-Language: de-DE,de;q=0.9,en-DE;q=0.8,en;q=0.7,en-US;q=0.6", |
"Accept-Encoding: none" |
); |
|
// TODO: Version is currently not shown anymore: https://bugs.mojang.com/browse/WEB-6497 |
/* |
$ch = curl_init(); |
curl_setopt($ch, CURLOPT_URL,"https://www.minecraft.net/en-us/download/server"); // TODO: make locale configurable? |
curl_setopt($ch, CURLOPT_POST, 0); |
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
$cont = curl_exec($ch); |
curl_close($ch); |
$cont = @file_get_contents('https://launchermeta.mojang.com/mc/game/version_manifest.json'); |
if (!$cont) throw new Exception("Cannot detect latest available Minecraft version (HTTPS request failed)"); |
preg_match_all('@minecraft_server\\.(.+)\\.jar@U', $cont, $m); |
if (!isset($m[1][0])) throw new Exception("Cannot detect latest available Minecraft version (regex pattern mismatch)"); |
return $m[1][0]; |
*/ |
|
for ($page=1; $page<=2; $page++) { |
$url = 'https://feedback.minecraft.net/hc/en-us/sections/360001186971-Release-Changelogs'; |
if ($page > 1) $url .= '?page='.$page; |
$url = 'https://webcache.googleusercontent.com/search?q=cache:'.urlencode($url); // Bypass CloudFlare... |
|
$ch = curl_init(); |
curl_setopt($ch, CURLOPT_URL, $url); |
curl_setopt($ch, CURLOPT_POST, 0); |
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
$cont = curl_exec($ch); |
curl_close($ch); |
if (!$cont) throw new Exception("Cannot detect latest available Minecraft version (HTTPS request failed)"); |
preg_match_all('@>Minecraft: Java Edition \\- (.+)</@U', $cont, $m); |
if (isset($m[1][0])) return $m[1][0]; |
$json = @json_decode($cont, true); |
if (!$json) throw new Exception("Cannot detect latest available Minecraft version (JSON invalid data)"); |
$version = $json['latest']['release'] ?? null; |
if (!$version) throw new Exception("Cannot detect latest available Minecraft version (JSON does not contain version)"); |
return $version; |
} |
throw new Exception("Cannot detect latest available Minecraft version (regex pattern mismatch)"); |
} |
|
protected function get_installed_minecraft_version($local_path) { |
if (substr($local_path,-4) == '.jar') { |