This repository has been archived on 2026-10-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
nsl/api/end_server.php
T
2024-11-05 11:26:22 -08:00

55 lines
1.6 KiB
PHP

<?php
require_once $_SERVER['DOCUMENT_ROOT'] . "/mysql.php";
header('Content-Type: application/json; charset=utf-8');
$key = "verysecretomgomgskibiti";
$data = (object) [
'status' => 000,
'message' => ""
];
if (!isset($_GET['id'])) {
$data->status = 200;
$data->message = "Missing parameters";
echo json_encode($data);
http_response_code(200);
exit();
}
if (!isset($_SESSION['siteusername'])) {
$data->status = 200;
$data->message = "You need to be logged in";
echo json_encode($data);
http_response_code(200);
exit();
}
$stmt = $db->prepare("SELECT status FROM users WHERE username = :username");
$stmt->execute([':username' => $_SESSION['siteusername']]);
$status = $stmt->fetch(PDO::FETCH_ASSOC)['status'] != "admin";
$stmt = $db->prepare("SELECT * FROM servers WHERE id = :id");
$stmt->execute([':id' => $_GET['id']]);
$server = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$stmt->rowCount() && ($server['author'] != $_SESSION['siteusername']) && $server['hosting'] == 1 && $server['online'] == 0 && $status != "admin") {
$data->status = 403;
$data->message = "You are not authorized to commit this action";
echo json_encode($data);
http_response_code(403);
exit();
}
$stmt = $db->prepare("UPDATE servers SET online = 0, players = '[]', stopped = CURRENT_TIMESTAMP() WHERE id = :id");
$stmt->execute([':id' => $_GET['id']]);
$response = file_get_contents("https://api.novetusserverlist.com/stop?port=" . $server['port'] . "&key=" . $key);
$data->status = 200;
$data->message = $response;
echo json_encode($data);
http_response_code(200);
exit();