Thursday, June 04, 2026 12:03:47 AM
> handlePlayer.php
<?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]]));
	}
?>
All opinions represented herein are my own
- © 2024 - 2026 itsthedevman
- build 4294fb2