<?php
/*
Bryan
Exile Server Manager
*/
session_start();
require 'updateServers.php';
require 'steamauth/userInfo.php';
// Make sure this is legit request
if (!array_key_exists($_POST["index"], $SERVERS))
{
die(json_encode(["result" => RESULT_FAILED, "return" => INVALID_PERMS]));
}
$serverKey = $_POST["index"];
$tid = $_POST["tid"];
$puid = $_POST["uid"];
$option = $_POST["option"];
$steamID = $steamprofile['steamid'];
$server = $SERVERS[$serverKey];
$schema = $server["database_schema"];
$onlinePlayers = mysqli_fetch_assoc(mysqli_query($esm_db, "SELECT online_players FROM servers WHERE server_key = '$serverKey'"))["online_players"];
$query = mysqli_query($exile_db, "SELECT id, owner_uid, moderators, (SELECT name FROM $schema.account WHERE uid = '$puid') AS pname FROM $schema.territory WHERE id = $tid");
if (!$query) { die(json_encode(["result" => RESULT_FAILED, "return" => FAILED_QUERY])); }
// Get the results
$row = mysqli_fetch_assoc($query);
// Make sure we are the owner
if ($row["owner_uid"] !== $steamID && strpos($row["moderators"], $steamID) !== false) { die(json_encode(["result" => RESULT_FAILED, "return" => INVALID_PERMS])); }
// Make sure we aren't trying to kick/add ourselves
if ($puid === $steamID) { die(json_encode(["result" => RESULT_FAILED, "return" => ADD_REMOVE_SELF])); }
// Option 0 == kick, 1 == add
if ($option === "0")
{
// No kicky the owner
if ($row["owner_uid"] === $puid) { die(json_encode(["result" => RESULT_FAILED, "return" => KICKING_OWNER])); }
// Send request to arma server
if (!mysqli_query($esm_db, "INSERT INTO requests (recipient_key, function, parameter) VALUES ('$serverKey', 'ExileServerManager_system_territory_handlePlayer', '[kick,$tid,$steamID,$puid]')"))
{
die(json_encode(["result" => RESULT_FAILED, "return" => FAILED_QUERY]));
}
die(json_encode(["result" => RESULT_SUCCESS, "return" => ["name" => $row["pname"], "uid" => $puid, "online_players" => $onlinePlayers]]));
}
elseif ($option === "1")
{
// No addy the player if they are already a member
if (strpos($row["build_rights"], $puid) !== false) { die(json_encode(["result" => RESULT_FAILED, "return" => ALREADY_MEMBER])); }
// Send request to arma server
if (!mysqli_query($esm_db, "INSERT INTO requests (recipient_key, function, parameter) VALUES ('$serverKey', 'ExileServerManager_system_territory_handlePlayer', '[add,$tid,$steamID,$puid]')"))
{
die(json_encode(["result" => RESULT_FAILED, "return" => FAILED_QUERY]));
}
die(json_encode(["result" => RESULT_SUCCESS, "return" => ["name" => $row["pname"], "uid" => $puid, "online_players" => $onlinePlayers]]));
}
?>