113 lines
2.8 KiB
JavaScript
113 lines
2.8 KiB
JavaScript
window.address = location.hostname + (location.port ? ':' + location.port : '');
|
|
window.origin = location.protocol + '//' + window.address;
|
|
|
|
function toBool (data)
|
|
{
|
|
if (data > 0)
|
|
{
|
|
return "Yes";
|
|
}
|
|
|
|
return "No";
|
|
}
|
|
|
|
function getFfType (data)
|
|
{
|
|
switch(data)
|
|
{
|
|
case 0:
|
|
return "Disabled";
|
|
break;
|
|
case 1:
|
|
return "Enabled";
|
|
break;
|
|
case 2:
|
|
return "Reflected";
|
|
break;
|
|
case 3:
|
|
return "Shared";
|
|
break;
|
|
default:
|
|
return "Disabled";
|
|
}
|
|
}
|
|
|
|
function getServerInfo(status, countPlayers)
|
|
{
|
|
var friendlyFire = status.scr_team_fftype;
|
|
var mod = status.fs_game;
|
|
|
|
if (!mod)
|
|
{
|
|
mod = "";
|
|
}
|
|
|
|
var row = "<tr>";
|
|
row += "<td><b>Map:</b> " + status.mapname + "</td><td><b>Gametype:</b> " + status.g_gametype + "</td><td><b>Players:</b> " + countPlayers + "/" + status.sv_maxclients + "</td>";
|
|
row += "</tr><tr>"
|
|
row += "<td><b>Mod:</b> " + mod.replace(/^mods\//g, "") + "</td><td><b>Security Level:</b> " + status.sv_securityLevel + "</td><td><b>Password Protected:</b> " + toBool(status.isPrivate) + "</td>";
|
|
row += "</tr><tr>"
|
|
row += "<td><b>Hardcore Mode:</b> " + toBool(status.g_hardcore) + "</td><td><b>KillCam:</b> " + toBool(status.scr_game_allowkillcam) + "</td><td><b>Friendly Fire:</b> " + getFfType(status.scr_team_fftype) + "</td>";
|
|
row += "</tr>"
|
|
|
|
$("#serverinfo").append(row);
|
|
}
|
|
|
|
function buildPlayerList(players)
|
|
{
|
|
for (var i = 0; i < players.length; ++i)
|
|
{
|
|
var row = "<tr>";
|
|
row += "<td>" + players[i].name + "</td>";
|
|
row += "<td>" + players[i].score + "</td>";
|
|
row += "<td>" + players[i].ping + "</td>";
|
|
row += "</tr>";
|
|
|
|
$("#players").append(row);
|
|
}
|
|
|
|
if (players.length == 0)
|
|
{
|
|
$("#playertable").fadeOut(1);
|
|
}
|
|
}
|
|
|
|
function buildPage(data)
|
|
{
|
|
// Get dvar sv_hostname and remove color codes
|
|
var hostname = (data["status"]["sv_hostname"]).replace(/\^[0-9:;c]/g, "");
|
|
|
|
// Set title
|
|
document.title = hostname
|
|
$("#servername").text(document.title);
|
|
|
|
//$("#info").text(JSON.stringify(data));
|
|
|
|
getServerInfo(data["status"], data["players"].length);
|
|
buildPlayerList(data["players"]);
|
|
|
|
$('body').fadeIn(300);
|
|
}
|
|
|
|
$(document).ready(function()
|
|
{
|
|
$("#connect").click(function()
|
|
{
|
|
location.replace("iw4x://" + window.address);
|
|
});
|
|
|
|
$.getJSON(origin + "/info", function(data)
|
|
{
|
|
console.log(data);
|
|
setTimeout(buildPage.bind(undefined, data), 10);
|
|
}).fail(function()
|
|
{
|
|
alert("An error occured while updating the server information!");
|
|
});
|
|
|
|
$("#footer").click(function()
|
|
{
|
|
location.replace("https://iw4xcachep26muba.onion.to");
|
|
});
|
|
});
|