Skip to content

Commit ede50cd

Browse files
committed
Create reload.php
1 parent 6e3c05b commit ede50cd

File tree

1 file changed

+185
-0
lines changed

1 file changed

+185
-0
lines changed

reload.php

Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
<?php
2+
//ini_set('display_errors', 1);
3+
//ini_set('display_startup_errors', 1);
4+
//error_reporting(E_ALL);
5+
$Timer = MicroTime(true);
6+
// Get all files
7+
require_once 'html/config.php';
8+
require 'query/SourceQuery/bootstrap.php';
9+
require 'query/minecraft/src/MinecraftPing.php';
10+
require 'query/minecraft/src/MinecraftPingException.php';
11+
require 'query/minecraft/src/MinecraftQuery.php';
12+
require 'query/minecraft/src/MinecraftQueryException.php';
13+
require 'html/type/minecraft/jsonconversion.php';
14+
require 'html/type/minecraft/minecraftcolor.php';
15+
require 'html/tailcustom.php';
16+
use xPaw\SourceQuery\SourceQuery;
17+
const SQ_TIMEOUT = 1;
18+
const SQ_ENGINE = SourceQuery::SOURCE;
19+
$ServerID = (int)$_GET['id'];
20+
21+
// start session
22+
session_start();
23+
$username = $_SESSION['username'] ?? 'public';
24+
// Get the allowed servers
25+
$conn = mysqli_connect($DB_SERVER, $DB_USERNAME, $DB_PASSWORD, $DB_NAME);
26+
$sql = "SELECT server FROM users WHERE username='$username'";
27+
$result = mysqli_query($conn, $sql);
28+
if (mysqli_num_rows($result) > 0) {
29+
while($row = mysqli_fetch_assoc($result)) {
30+
$id = $row["server"];
31+
}
32+
}
33+
$id = json_decode($id);
34+
if (!in_array($ServerID, $id)) {
35+
http_response_code(401);
36+
var_dump(http_response_code());
37+
exit;
38+
}
39+
$response['QueryTime1'] = Number_Format(MicroTime(true) - $Timer, 4, '.', '');
40+
// Get server information from database
41+
$sql = "SELECT IP, type, Queryport, GamePort, Name FROM serverconfig WHERE ID='$ServerID'";
42+
$result = mysqli_query($conn, $sql);
43+
if (mysqli_num_rows($result) > 0) {
44+
while($row = mysqli_fetch_assoc($result)) {
45+
$ip = $row['IP'];
46+
$type = $row['type'];
47+
$qport = $row['Queryport'];
48+
$gport = $row['GamePort'];
49+
$name = $row['Name'];
50+
}
51+
}
52+
mysqli_close($conn);
53+
// Convert OS to Full OS Name
54+
function convertos($Os) {
55+
$Opers = array(
56+
'l' => 'Linux',
57+
'w' => 'Windows',
58+
'm' => 'Mac'
59+
);
60+
return $Opers[$Os];
61+
}
62+
switch ($type) {
63+
case "csgo":
64+
case "valheim":
65+
case "protocol-valve":
66+
case "arkse":
67+
case "vrising":
68+
case "rust":
69+
include 'query/sourcequery.php';
70+
break;
71+
case "minecraft":
72+
include 'query/minecraftquery.php';
73+
break;
74+
}
75+
$serverstatus = json_decode($queryresult ?? false);
76+
include 'html/type/query.php';
77+
// Clean up query result.
78+
$response['Username'] = $username;
79+
$response['ID'] = $ServerID;
80+
$response['Status'] = $status;
81+
$response['Name'] = $title;
82+
$response['IP'] = $ip;
83+
$response['QueryPort'] = $qport;
84+
$response['GamePort'] = $gport;
85+
$response['Players'] = $countplayers;
86+
$response['MaxPlayers'] = $maxplayers;
87+
$response['raw']['Type'] = $type;
88+
$response['raw']['Logo'] = $img;
89+
$response['raw']['Version'] = $version;
90+
$response['raw']['ConnectLink'] = $connectlink;
91+
switch ($type) {
92+
case "csgo":
93+
case "valheim":
94+
case "protocol-valve":
95+
case "arkse":
96+
case "vrising":
97+
case "rust":
98+
//if ($password == "true") {$password = "True";} elseif ($password == "false") {$password = "False";}
99+
$response['raw']['OS'] = $Os;
100+
$response['raw']['Password'] = $password;
101+
$response['raw']['Map'] = $map;
102+
break;
103+
case "minecraft":
104+
$response['raw']['MOTD'] = $motd;
105+
break;
106+
}
107+
switch ($type) {
108+
case "arkse":
109+
include ('html/type/arkse/modlist.php');
110+
function get_title($url){
111+
$str = file_get_contents($url);
112+
if(strlen($str)>0){
113+
$str = trim(preg_replace('/\s+/', ' ', $str)); // supports line breaks inside <title>
114+
preg_match("/\<title\>(.*)\<\/title\>/i",$str,$title); // ignore case
115+
return $title[1];
116+
}
117+
}
118+
$response['raw']['Players'] = $playerlist;
119+
$response['raw']['InGameDay'] = $ingameday;
120+
$response['raw']['ClusterID'] = $clusterid;
121+
$response['raw']['Battleye'] = $battleye;
122+
$response['raw']['PVP'] = $pvp;
123+
$response['raw']['HasMods'] = $hasmods;
124+
if ($hasmods) {
125+
foreach ($mods as $mod) {
126+
if (!isset($count)){$count=0;}
127+
$response['raw']['Mods'][$count]['ModID'] = $mod;
128+
$response['raw']['Mods'][$count]['ModLink'] = 'https://steamcommunity.com/sharedfiles/filedetails/?id='.$mod;
129+
$convertedmod = $modlist['ArkModName'][$mod];
130+
if (!empty($convertedmod)) {
131+
$response['raw']['Mods'][$count]['ModName'] = $convertedmod;
132+
} else {
133+
// If mod is not in modlist, get the mod from the steamcommunity website and store the mod in the modlist file
134+
$convertedmod = substr(get_title("https://steamcommunity.com/sharedfiles/filedetails/?id=$mod"), 16);
135+
$response['raw']['Mods'][$count]['ModName'] = $convertedmod;
136+
$convertedmod = str_replace("'", "\'", $convertedmod);
137+
$convertedmod = '$modlist[\'ArkModName\']'."[$mod] = '$convertedmod';";
138+
file_put_contents("html/type/arkse/modlist.php", $convertedmod . "\n", FILE_APPEND);
139+
}
140+
$count++;
141+
}
142+
}
143+
$response['raw']['MapLink'] = $maplink;
144+
break;
145+
case "csgo":
146+
$response['raw']['Players'] = $playerlist;
147+
$response['raw']['MapLink'] = $maplink;
148+
if (isset($serverstatus->rules)) {
149+
$response['raw']['HasRules'] = 1;
150+
$response['raw']['Rules'] = $csgorule;
151+
}
152+
break;
153+
case "vrising":
154+
$response['raw']['Players'] = $playerlist;
155+
$response['raw']['Description'] = $description;
156+
$response['raw']['Bloodbound'] = $bloodbound;
157+
$response['raw']['CastleHeartDamageMode'] = $bloodbound;
158+
$response['raw']['InGameDay'] = $ingameday;
159+
$response['raw']['Tags'] = $GameTags;
160+
$response['raw']['MapLink'] = $maplink;
161+
break;
162+
case "rust":
163+
$mapurl = "https://rustmaps.com/map/".$worldsize."_".$seed."?embed=img_i_l";
164+
$metas = get_meta_tags($mapurl);
165+
if (isset($metas['twitter:image'])) {
166+
$metas = ($metas['twitter:image']);
167+
$maplink = str_replace('FullLabeledMap.png', 'Thumbnail.png', $metas);
168+
} else {
169+
$maplink = "html/img/map/rustgenerate.webp";
170+
}
171+
$response['raw']['Players'] = $playerlist;
172+
$response['raw']['Seed'] = $seed;
173+
$response['raw']['WorldSize'] = $worldsize;
174+
$response['raw']['RustUptime'] = $rustuptime;
175+
$response['raw']['MapLink'] = $maplink;
176+
$response['raw']['Website'] = $rustwebsite;
177+
$response['raw']['PVP'] = $pvp;
178+
$response['raw']['FPS'] = $rustfps;
179+
$rustdesc = str_replace("\\n", "<br>",$rustdesc);
180+
$response['raw']['Description'] = $rustdesc;
181+
$response['raw']['Tags'] = $GameTags;
182+
break;
183+
}
184+
$response['QueryTime'] = Number_Format(MicroTime(true) - $Timer, 4, '.', '');
185+
echo json_encode($response);

0 commit comments

Comments
 (0)