<!--
Bryan
Exile Server Manager
-->
<?php
session_start();
if(!isset($_SESSION['steamid']))
{
header("location:login/index.php");
}
else
{
require 'updateServers.php';
include ('steamauth/userInfo.php');
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Exile Server Manager</title>
<link rel="icon" href="<?= COMMUNITY_LOGO ?>">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<script src="js/jquery.toast.min.js"></script>
<link href="css/jquery.toast.min.css" rel="stylesheet">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet/less" type="text/css" href="css/styles.less" />
<script src="//cdnjs.cloudflare.com/ajax/libs/less.js/2.7.2/less.min.js"></script>
<script>const PLAYER_UID = "<?= $steamID = $steamprofile['steamid'] ?>"; </script>
<script src="js/loader.js"></script>
<script src="js/util.js"></script>
<script src="js/functions.js"></script>
</head>
<body id="page_main">
<!-- Top Navigation Menu -->
<nav class="navbar navbar-inverse navbar-fixed-top navigation" role="navigation">
<!-- Community logo and name -->
<div class="navbar-header">
<a class="navbar-brand" href="index.php">
<span><img class="navigation-logo" src="<?= COMMUNITY_LOGO ?>"></span>
<div class="community-title"><?= COMMUNITY_NAME?></div>
</a>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#id_Navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<!-- Username with dropdown -->
<div class="collapse navbar-collapse" id="id_Navbar">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a class="dropdown-toggle drop-username fake-link" data-toggle="dropdown"><?= $steamprofile['personaname']?><span class="caret"></span></a>
<ul class="dropdown-menu drop-user-menu">
<li><a href="logout.php">Log Out</a></li>
</ul>
</li>
</ul>
</div>
</nav>
<!-- Top Navigation Menu -->
<!-- Main Container -->
<div class="container-fluid">
<div id="canvasloader-container" class="wrapper"></div>
<div class="side-bar-arrow" id="btn_ToggleSideBar"><i id="ico_SideBar" class="fa fa-chevron-right fa-2x"></i></div>
<!-- Side Bar Menu -->
<div class="col-md-2 sidebar" id="id_SideBar">
<!-- Connected servers title and add a server button -->
<div class="row">
<div class="col-md-12">
<h3>
Available Servers
<i class="fa fa-refresh fa-fw fake-link" aria-hidden="true" onClick="refreshServers(this)"></i>
</h3>
</div>
</div>
<div class="sidenav-servers" id="id_ServerContainer">
<?php
if (count($SERVERS) > 0):
foreach($SERVERS as $k => $v):
$steamID = $steamprofile['steamid'];
$dbSchema = $SERVERS[$k]["database_schema"];
$pExists = false;
$tExists = false;
// Make sure the database schema exists
$check = mysqli_query($exile_db, "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$dbSchema'");
$dbExists = (mysqli_num_rows($check) > 0);
// If we have a database schema, continue
if ($dbExists)
{
// Check if we have an account
$result = mysqli_query($exile_db, "SELECT uid FROM $dbSchema.account WHERE uid = '$steamID'");
$aExists = (mysqli_num_rows($result) > 0);
// Check if we have a player spawned
$result = mysqli_query($exile_db, "SELECT thirst FROM $dbSchema.player WHERE account_uid = '$steamID'");
$pExists = (mysqli_num_rows($result) > 0);
// Check to see if we have a manageable territory
$result = mysqli_query($exile_db, "SELECT t.id FROM $dbSchema.territory t WHERE t.owner_uid = '$steamID' OR t.moderators LIKE '%$steamID%'");
$tExists = (mysqli_num_rows($result) > 0);
}
?>
<div class="row">
<div class="col-md-11 server">
<div class="panel">
<!-- Server Title -->
<h4 class="fake-link" data-toggle="collapse" data-parent="#id_ServerContainer" href="<?= $SERVERS[$k]["status"] == 1 ? '#collapse' . $k : '' ?>" data-toggle="tooltip" title="<?= $SERVERS[$k]["name"] ?>"><?= $SERVERS[$k]["name"] ?></h4>
<!-- Server Info -->
<div class="server-info">
Status: <?= $SERVERS[$k]["status"] == 1 ? "<span style='color: #B2EC00;'>Online</span>" : "<span style='color: #EA0000;'>Offline</span>"; ?>
<br>IP Address: <?= $SERVERS[$k]["ip"] . ":" . $SERVERS[$k]["port"] ?>
<br> Online Players: <?= $SERVERS[$k]["online_players"] . "/" . $SERVERS[$k]["max_players"] ?>
</div>
<?php
if ($SERVERS[$k]["status"] == 1):
?>
<!-- Server Options -->
<div id="collapse<?=$k?>" class="collapse">
<ul>
<h5 class="fake-link" data-toggle="modal" data-target="#server_information" data-serverinfo='<?= json_encode(['ip' => $SERVERS[$k]['ip'], 'port' => $SERVERS[$k]['port'], 'mods' => $SERVERS[$k]['mods'], 'restart_schedule' => $SERVERS[$k]['restart_schedule'], 'rules' => $SERVERS[$k]['rules'],'name' => $SERVERS[$k]['name'],'map' => $SERVERS[$k]['map'],'online_players' => $SERVERS[$k]['online_players'],'max_players' => $SERVERS[$k]['max_players'],'password_protected' => $SERVERS[$k]['password_protected'],'server_version' => $SERVERS[$k]['server_version']])?>'>Server Information</h5>
<?php if ($dbExists && $aExists && $pExists): ?>
<h5 onClick='showMyStats("<?=$k?>")' class="fake-link">My Stats</h5>
<?php endif; ?>
<?php if ($dbExists): ?>
<h5 onClick='showServerLeaderboard("<?=$k?>")' class="fake-link">Server Leaderboard</h5>
<?php endif; ?>
<?php if ($dbExists && $aExists && $tExists): ?>
<h5 onClick='showTerritoryManagement("<?=$k?>")' class="fake-link">Territory Management</h5>
<?php endif; ?>
</ul>
</div>
<?php endif;?>
</div>
</div>
</div>
<?php endforeach; endif; ?>
</div>
</div>
<!-- Side Bar Menu -->
<!-- My Stats Panel -->
<div class="container-fluid hidden" id="id_Panel_MyStats">
<div class="col-md-9 server-panel">
<div class="row server-panel-info">
<!-- Player Name and Player UID -->
<h1 id="id_title">
<span id="id_PlayerName"></span>
<small id="id_PlayerUID" class="text-muted player-uid"><?= $steamprofile['steamid']?></small>
</h1>
<div class="blue-horizontal-divider" id="id_divider"></div>
<!-- A bunch of player information -->
<div class="col-md-3 player-info">
<!-- Money and Respect -->
<h3>Money & Respect</h3>
<div class="blue-horizontal-divider full-width"></div>
<div class="table-responsive">
<table class="table table-striped table-condensed">
<tbody>
<tr>
<td>Locker:</td>
<td><span id="id_PlayerLocker"></span><img class="poptabs-inline" src="img/poptabs.png"></td>
</tr>
<tr>
<td>Wallet:</td>
<td><span id="id_PlayerWallet"></span><img class="poptabs-inline" src="img/poptabs.png"></td>
</tr>
<tr>
<td>Respect:</td>
<td><span id="id_PlayerRespect"></span></td>
</tr>
</tbody>
</table>
</div>
<!-- Player Stats -->
<h3>Player Stats</h3>
<div class="blue-horizontal-divider full-width"></div>
<div class="table-responsive">
<table class="table table-striped table-condensed">
<tbody>
<tr>
<td>Health:</td>
<td id="id_PlayerHealth"></td>
</tr>
<tr>
<td>Hunger:</td>
<td id="id_PlayerHunger"></td>
</tr>
<tr>
<td>Thirst:</td>
<td id="id_PlayerThirst"></td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Territories -->
<div class="col-md-4 col-md-offset-1">
<h3>My Territories</h3>
<div class="table-responsive">
<table class="table table-striped table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Members</th>
</tr>
</thead>
<tbody id="id_PlayerTerritories"></tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<!-- My Stats Panel -->
<!-- Server Leaderboard Panel -->
<div class="container-fluid hidden" id="id_Panel_ServerLeaderboard">
<div class="col-md-9 server-panel">
<div class="row server-panel-info">
<!-- Title -->
<h1>Server Leaderboard</h1>
<div class="blue-horizontal-divider" id="id_divider"></div>
<br>
<!-- Information that will be pulled from the database -->
<div class="table-responsive server-leaderboard">
<table id="id_Leaderboard" class="table table-striped">
<thead>
<tr>
<th>Player Name <i class="fa fa-angle-down fa-lg fake-link" aria-hidden="true"></i></th>
<th>Kills <i class="fa fa-angle-down fa-lg fake-link" aria-hidden="true"></i></th>
<th>Deaths <i class="fa fa-angle-down fa-lg fake-link" aria-hidden="true"></i></th>
<th>K/D <i class="fa fa-angle-down fa-lg fake-link" aria-hidden="true"></i></th>
<th>Locker <i class="fa fa-angle-down fa-lg fake-link" aria-hidden="true"></i></th>
<th>Respect <i class="fa fa-angle-down fa-lg fake-link" aria-hidden="true"></i></th>
<th>Clan <i class="fa fa-angle-down fa-lg fake-link" aria-hidden="true"></i></th>
</tr>
</thead>
<tbody id="id_ServerLeaderboard"></tbody>
</table>
</div>
</div>
</div>
</div>
<!-- Server Leaderboard Panel -->
<!-- Territory Management Panel -->
<div class="container-fluid hidden" id="id_Panel_TerritoryManagement">
<div class="col-md-9 server-panel">
<div class="row server-panel-info">
<!-- Title -->
<h1 id="id_title">Territory Management</h1>
<div class="blue-horizontal-divider" id="id_divider"></div>
<br>
<!-- List of territories they can manage (Owner or moderator) -->
<div class="col-md-3">
<h3>Territories</h3>
<div class="list-group" id="id_ManagableTerritories"></div>
</div>
<div id="loader-territory" class="wrapper"></div>
<!-- Territory that is selected in the list -->
<div class="hidden" id="id_ManagableTerritoryInfo">
<div class="col-md-9">
<!-- Territory Title -->
<h2 class="text-center" id="id_TerritoryName"></h2>
<div class="blue-horizontal-divider full-width"></div>
<br>
<!-- Everyone List -->
<div class="col-md-5">
<h3>Territory Members</h3>
<div class="list-group playerList" id="id_territoryMembers"></div>
<button type="button" class="button full-width" id="btn_PromotePlayer">Promote Player</button>
<div class="row">
<div class="col-md-6">
<button type="button" class="button full-width" id="btn_DemotePlayer">Demote Player</button>
</div>
<div class="col-md-6">
<button type="button" class="button full-width" id="btn_KickPlayer">Kick Player</button>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<select class="form-control" id="id_OnlinePlayersList"></select>
<button type="button" class="button full-width" id="btn_AddPlayer">Add Player</button>
</div>
</div>
</div>
<!-- Statistics about the territory -->
<div class="col-md-7">
<h3>Stats</h3>
<div class="blue-horizontal-divider full-width"></div>
<div class="table-responsive">
<table class="table table-striped table-condensed">
<tbody>
<tr>
<td>Protection Due Before:</td>
<td id="id_ProtectionDueDate"></td>
</tr>
<tr>
<td>Territory Build Size:</td>
<td id="id_TerritoryBuildSize"></td>
</tr>
<tr>
<td>Objects:</td>
<td id="id_TerritoryObjects"></td>
</tr>
<tr>
<td>Protection Cost:</td>
<td id="id_ProtectionCost"></td>
</tr>
<tr>
<td>Upgrade Cost:</td>
<td id="id_UpgradeCost"></td>
</tr>
</tbody>
</table>
</div>
<!-- Upgrade Territory Button -->
<div class="col-md-6">
<button id="btn_UpgradeTerritory" type="button" class="button full-width">Upgrade Territory</button>
</div>
<!-- Make a Payment Button -->
<div class="col-md-6">
<button id="btn_MakePayment" type="button" class="button full-width">Make a Payment</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Territory Management -->
</div>
<!-- Main Container -->
<!-- Upgrade Territory Modal -->
<div class="modal custom fade" id="upgrade_territory" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-body">
<!-- Modal Title -->
<h1 class="modal-title">Upgrade Territory</h1>
<!-- Modal information -->
<div class="row">
<div class="col-md-6">
<h3>Current Territory</h3>
<div class="blue-horizontal-divider full-width"></div>
<div class="table-responsive">
<table class="table table-striped table-condensed">
<tbody>
<tr>
<td>Territory Build Size:</td>
<td id="id_upgradeFromBuildSize"></td>
</tr>
<tr>
<td>Max Objects:</td>
<td id="id_upgradeFromMaxObjects"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="col-md-6">
<h3>Upgraded Territory</h3>
<div class="blue-horizontal-divider full-width"></div>
<div class="table-responsive">
<table class="table table-striped table-condensed">
<tbody>
<tr>
<td>Territory Build Size:</td>
<td id="id_upgradeToBuildSize"></td>
</tr>
<tr>
<td>Max Objects:</td>
<td id="id_upgradeToMaxObjects"></td>
</tr>
<tr>
<td>Upgrade Cost:</td>
<td id="id_upgradeToCost"></td>
</tr>
</tbody>
</table>
</div>
<p class="text-right"><span id="id_upgradePlayerMoneyStart"></span><br><span id="id_upgradeTotalCost"></span><br><span id="id_upgradePlayerMoneyEnd"></span></p>
<button type="button" class="button full-width" id="btn_upgradeConfirm">Confirm Upgrade</button>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="button" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
<!-- Upgrade Territory Modal -->
<!-- Make a Payment Modal -->
<div class="modal custom fade" id="make_payment" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-body">
<!-- Modal Title -->
<h1 class="modal-title">Make a Payment</h1>
<p>Note:
<br>If you try to make a payment on or after the due date, there is no guarantee your base will be protected. No refunds or compensations will be given!</p>
<!-- Modal information -->
<div class="row">
<div class="col-md-12">
<h3>Territory Protection</h3>
<div class="blue-horizontal-divider full-width"></div>
<div class="table-responsive">
<table class="table table-striped table-condensed">
<tbody>
<tr>
<td>Current Due Date:</td>
<td id="id_paymentCurrentDueDate"></td>
</tr>
<tr>
<td>Next Due Date:</td>
<td id="id_paymentNextDueDate"></td>
</tr>
</tbody>
</table>
</div>
<p class="text-right"><span id="id_paymentPlayerMoneyStart"></span><br><span id="id_paymentPaymentCost"></span><br><span id="id_paymentPlayerMoneyEnd"></span></p>
<button type="button" class="button full-width" id="btn_paymentConfirm">Confirm Payment</button>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="button" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
<!-- Make a Payment Modal -->
<!-- Server Modal -->
<div class="modal custom fade" id="server_information" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-body">
<!-- Modal Title -->
<h1 class="modal-title" id="server_name"></h1>
<!-- Modal information -->
<div class="row">
<div class="col-md-12">
<h4 id="server_ip_port"></h4>
<div class="blue-horizontal-divider full-width"></div>
<div class="table-responsive">
<table class="table table-striped table-condensed">
<tbody>
<tr>
<td>Map:</td>
<td id="server_map"></td>
</tr>
<tr>
<td>Players Online:</td>
<td id="server_players_online"></td>
</tr>
<tr>
<td>Password Protected:</td>
<td id="server_password_protected"></td>
</tr>
<tr>
<td>Server Version:</td>
<td id="server_version"></td>
</tr>
<tr>
<td>Restart Schedule:</td>
<td id="server_restart_schedule"></td>
</tr>
<tr>
<td>Required Mods:</td>
<td id="server_required_mods"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="button" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
<!-- Server Info Modal -->
</body>
</html>