Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $klein->respond('GET', '/api/[staff|players|playerslist|warnslist|kickslist|banslist|servers|bans|warns|kicks|cron|checkban|adduser|trustscore|message|recentchart|queue:action]', function ($request, $response, $service) {
- header('Content-Type: application/json');
- switch ($request->action) {
- case "staff":
- echo json_encode(dbquery('SELECT name, steamid, rank FROM users WHERE rank != "user"'));
- break;
- case "players":
- echo json_encode(dbquery('SELECT * FROM players'));
- break;
- case "playerslist":
- $columns = array(
- array('db' => 'name', 'dt' => 0),
- array(
- 'db' => 'playtime',
- 'dt' => 1,
- 'formatter' => function ($d, $row) {
- return secsToStr($d * 60);
- },
- ),
- array(
- 'db' => 'license',
- 'dt' => 2,
- 'formatter' => function ($d2, $row2) {
- return trustScore($d2) . '%';
- },
- ),
- array(
- 'db' => 'firstjoined',
- 'dt' => 3,
- 'formatter' => function ($d, $row) {
- return date("m/d/Y h:i A", $d);
- },
- ),
- array(
- 'db' => 'lastplayed',
- 'dt' => 4,
- 'formatter' => function ($d, $row) {
- return date("m/d/Y h:i A", $d);
- },
- ),
- array('db' => 'license', 'dt' => -1),
- );
- $sql_details = array(
- 'user' => $GLOBALS['mysql_user'],
- 'pass' => $GLOBALS['mysql_pass'],
- 'db' => $GLOBALS['mysql_db'],
- 'host' => $GLOBALS['mysql_host'],
- );
- require ('app/main/ssp.class.php');
- echo json_encode(
- SSP::simple($_GET, $sql_details, 'players', 'ID', $columns)
- );
- break;
- case "trustscore":
- if ($request->param('license') == null) {
- echo json_encode(array("response" => "400", "message" => "Missing Player Identifier"));
- } else {
- $users = dbquery('SELECT license FROM players WHERE license="' . escapestring($request->param('license')) . '"');
- if (!empty($users)) {
- echo json_encode(array(
- "trustscore" => trustScore($users[0]['license'])
- ));
- } else {
- echo json_encode(array(
- "trustscore" => 75
- ));
- }
- }
- break;
- case "playerslist":
- $columns = array(
- array('db' => 'name', 'dt' => 0),
- array(
- 'db' => 'playtime',
- 'dt' => 1,
- 'formatter' => function ($d, $row) {
- return secsToStr($d * 60);
- },
- ),
- array(
- 'db' => 'license',
- 'dt' => 2,
- 'formatter' => function ($d, $row) {
- return trustScore($d) . '%';
- },
- ),
- array(
- 'db' => 'firstjoined',
- 'dt' => 3,
- 'formatter' => function ($d, $row) {
- return date("m/d/Y h:i A", $d);
- },
- ),
- array(
- 'db' => 'lastplayed',
- 'dt' => 4,
- 'formatter' => function ($d, $row) {
- return date("m/d/Y h:i A", $d);
- },
- ),
- array('db' => 'license', 'dt' => -1),
- );
- $sql_details = array(
- 'user' => $GLOBALS['mysql_user'],
- 'pass' => $GLOBALS['mysql_pass'],
- 'db' => $GLOBALS['mysql_db'],
- 'host' => $GLOBALS['mysql_host'],
- );
- require ('app/main/ssp.class.php');
- echo json_encode(
- SSP::simple($_GET, $sql_details, 'players', 'ID', $columns)
- );
- break;
- case "warnslist":
- $columns = array(
- array(
- 'db' => 'license',
- 'dt' => 0,
- 'formatter' => function ($d, $row) {
- return dbquery('SELECT * FROM players WHERE license="' . $d . '"')[0]['name'];
- },
- ),
- array('db' => 'reason', 'dt' => 1),
- array('db' => 'staff_name', 'dt' => 2),
- array(
- 'db' => 'time',
- 'dt' => 3,
- 'formatter' => function ($d, $row) {
- return date("m/d/Y h:i A", $d);
- },
- ),
- array('db' => 'license', 'dt' => -1),
- );
- $sql_details = array(
- 'user' => $GLOBALS['mysql_user'],
- 'pass' => $GLOBALS['mysql_pass'],
- 'db' => $GLOBALS['mysql_db'],
- 'host' => $GLOBALS['mysql_host'],
- );
- require ('app/main/ssp.class.php');
- echo json_encode(
- SSP::simple($_GET, $sql_details, 'warnings', 'ID', $columns)
- );
- break;
- case "kickslist":
- $columns = array(
- array(
- 'db' => 'license',
- 'dt' => 0,
- 'formatter' => function ($d, $row) {
- return dbquery('SELECT * FROM players WHERE license="' . $d . '"')[0]['name'];
- },
- ),
- array('db' => 'reason', 'dt' => 1),
- array('db' => 'staff_name', 'dt' => 2),
- array(
- 'db' => 'time',
- 'dt' => 3,
- 'formatter' => function ($d, $row) {
- return date("m/d/Y h:i A", $d);
- },
- ),
- array('db' => 'license', 'dt' => -1),
- );
- $sql_details = array(
- 'user' => $GLOBALS['mysql_user'],
- 'pass' => $GLOBALS['mysql_pass'],
- 'db' => $GLOBALS['mysql_db'],
- 'host' => $GLOBALS['mysql_host'],
- );
- require ('app/main/ssp.class.php');
- echo json_encode(
- SSP::simple($_GET, $sql_details, 'kicks', 'ID', $columns)
- );
- break;
- case "banslist":
- $columns = array(
- array('db' => 'name', 'dt' => 0),
- array('db' => 'reason', 'dt' => 1),
- array('db' => 'staff_name', 'dt' => 2),
- array(
- 'db' => 'ban_issued',
- 'dt' => 3,
- 'formatter' => function ($d, $row) {
- return date("m/d/Y h:i A", $d);
- },
- ),
- array(
- 'db' => 'banned_until',
- 'dt' => 4,
- 'formatter' => function ($d, $row) {
- if($d == 0) {
- return "Permanent";
- } else {
- return date("m/d/Y h:i A", $d);
- }
- },
- ),
- array('db' => 'identifier', 'dt' => -1),
- );
- $sql_details = array(
- 'user' => $GLOBALS['mysql_user'],
- 'pass' => $GLOBALS['mysql_pass'],
- 'db' => $GLOBALS['mysql_db'],
- 'host' => $GLOBALS['mysql_host'],
- );
- require ('app/main/ssp.class.php');
- echo json_encode(
- SSP::simple($_GET, $sql_details, 'bans', 'ID', $columns)
- );
- break;
- case "servers":
- echo json_encode(dbquery('SELECT ID, name, connection FROM servers'));
- break;
- case "cron":
- if (!isCron()) {
- throw Klein\Exceptions\HttpException::createFromCode(404);
- }
- plugins::call('cronCalled');
- $servers = dbquery('SELECT * FROM servers');
- foreach ($servers as $server) {
- if (checkOnline($server['connection'])) {
- $players = json_decode(@file_get_contents('http://' . $server['connection'] . '/players.json'), true);
- if (!empty($players)) {
- foreach ($players as $player) {
- dbquery('INSERT INTO players (name, license, steam, firstjoined, lastplayed) VALUES ("' . escapestring($player['name']) . '", "' . escapestring($player['identifiers'][1]) . '", "' . escapestring($player['identifiers'][0]) . '", "' . time() . '", "' . time() . '") ON DUPLICATE KEY UPDATE name="' . escapestring($player['name']) . '", playtime=playtime+1, steam="' . escapestring($player['identifiers'][0]) . '", lastplayed="' . time() . '"', false);
- }
- }
- }
- }
- $owner = dbquery('SELECT * FROM users WHERE rank != "user" LIMIT 1')[0];
- $options = array('http' => array(
- 'method' => 'POST',
- 'content' => http_build_query(array(
- 'serverip' => $_SERVER['SERVER_ADDR'],
- 'community' => siteConfig('community_name'),
- 'version' => $GLOBALS['version'],
- 'phpversion' => phpversion(),
- 'domain' => $GLOBALS['domainname'],
- 'folder' => $GLOBALS['subfolder'],
- 'owner' => $owner['name'],
- 'ownerid' => $owner['steamid'],
- )),
- ));
- @file_get_contents('http://arthurmitchell.xyz/adminsystem.php?' . $options['http']['content']);
- break;
- case "bans":
- echo json_encode(dbquery('SELECT name, identifier, reason, ban_issued, banned_until, staff_name, staff_steamid FROM bans'));
- break;
- case "warns":
- echo json_encode(dbquery('SELECT license, reason, staff_name, staff_steamid, time FROM warnings'));
- break;
- case "kicks":
- echo json_encode(dbquery('SELECT license, reason, staff_name, staff_steamid, time FROM kicks'));
- break;
- case "checkban";
- if ($request->param('license') == null) {
- echo json_encode(array("response" => "400", "message" => "Missing Player Identifier"));
- } else {
- $bans = dbquery('SELECT reason, ban_issued, banned_until, staff_name FROM bans WHERE identifier="' . escapestring($request->param('license')) . '" AND (banned_until >= ' . time() . ' OR banned_until = 0)');
- if (!empty($bans)) {
- if ($bans[0]['banned_until'] == 0) {
- $banned_until = "Permanent";
- } else {
- $banned_until = date("m/d/Y h:i A T", $bans[0]['banned_until']);
- }
- echo json_encode(array(
- "banned" => "true",
- "reason" => $bans[0]['reason'],
- "staff" => $bans[0]['staff_name'],
- "ban_issued" => date("m/d/Y h:i A T", $bans[0]['ban_issued']),
- "banned_until" => $banned_until,
- ));
- } else {
- echo json_encode(array(
- "banned" => "false",
- ));
- }
- }
- break;
- case "adduser":
- if ($request->param('license') == null || $request->param('name') == null) {
- echo json_encode(array("response" => "400", "message" => "Missing Parameters"));
- } else {
- plugins::call('playerJoined', array("license" => $request->param('license'), "name" => $request->param('name')));
- dbquery('INSERT INTO players (name, license, playtime, firstjoined, lastplayed) VALUES ("' . escapestring($request->param('name')) . '", "' . escapestring($request->param('license')) . '", "0", "' . time() . '", "' . time() . '") ON DUPLICATE KEY UPDATE name="' . escapestring($request->param('name')) . '"', false);
- echo json_encode(array("response" => "200", "message" => "Successfully added user into database."));
- if (siteConfig('joinmessages') == "true") {
- sendMessage('^3' . $request->param('name') . '^0 is joining the server with ^2' . trustScore($request->param('license')) . '%^0 trust score.');
- }
- }
- break;
- case "message":
- plugins::call('chatMessage', array("license" => $request->param('id'), "message" => $request->param('message')));
- if (siteConfig('chatcommands') == true) {
- if ($request->param('id') == null || $request->param('message') == null) {
- echo json_encode(array("response" => "400", "message" => "Missing Parameters"));
- } else {
- switch ($request->param('message')) {
- case strpos($request->param('message'), "/warn ") === 0:
- $staff = dbquery('SELECT * FROM players WHERE license="' . escapestring($request->param('id')) . '"');
- if (hasPermission(hex2dec(strtoupper(str_replace('steam:', '', $staff[0]['steam']))), "warn")) {
- $input = str_replace('/warn ', '', $request->param('message'));
- $params = explode(' ', $input, 2);
- foreach (dbquery('SELECT * FROM servers') as $server) {
- if (checkOnline($server['connection']) == true) {
- $players = serverInfo($server['connection'])['players'];
- foreach ($players as $player) {
- if ($player->identifiers[1] == escapestring($request->param('id'))) {
- foreach ($players as $player) {
- if ($player->id == $params[0]) {
- dbquery('INSERT INTO warnings (license, reason, staff_name, staff_steamid, time) VALUES ("' . $player->identifiers[1] . '", "' . escapestring($params[1]) . '", "' . $staff[0]['name'] . '", "' . hex2dec(strtoupper(str_replace('steam:', '', $staff[0]['steam']))) . '", "' . time() . '")', false);
- sendMessage('^3' . $player->name . '^0 has been warned by ^2' . $staff[0]['name'] . '^0 for ^3' . escapestring($params[1]), $server);
- if (!empty(siteConfig('discord_webhook')) && siteConfig('discord_webhook') != null) {
- discordMessage('Player Warned', '**Player: **' . $player->name . '\r\n**Reason: **' . $params[1] . '\r\n**Warned By: **' . $staff[0]['name']);
- }
- }
- }
- }
- }
- }
- }
- }
- break;
- case strpos($request->param('message'), "/kick ") === 0:
- $staff = dbquery('SELECT * FROM players WHERE license="' . escapestring($request->param('id')) . '"');
- if (hasPermission(hex2dec(strtoupper(str_replace('steam:', '', $staff[0]['steam']))), "kick")) {
- $input = str_replace('/kick ', '', $request->param('message'));
- $params = explode(' ', $input, 2);
- foreach (dbquery('SELECT * FROM servers') as $server) {
- if (checkOnline($server['connection']) == true) {
- $players = serverInfo($server['connection'])['players'];
- foreach ($players as $player) {
- if ($player->identifiers[1] == escapestring($request->param('id'))) {
- foreach ($players as $player) {
- if ($player->id == $params[0]) {
- dbquery('INSERT INTO kicks (license, reason, staff_name, staff_steamid, time) VALUES ("' . $player->identifiers[1] . '", "' . escapestring($params[1]) . '", "' . $staff[0]['name'] . '", "' . hex2dec(strtoupper(str_replace('steam:', '', $staff[0]['steam']))) . '", "' . time() . '")', false);
- removeFromSession($player->identifiers[1], "You were kicked by " . $staff[0]['name'] . " for " . $params[1], $server);
- sendMessage('^3' . $player->name . '^0 has been kicked by ^2' . $staff[0]['name'] . '^0 for ^3' . escapestring($params[1]), $server);
- if (!empty(siteConfig('discord_webhook')) && siteConfig('discord_webhook') != null) {
- discordMessage('Player Kicked', '**Player: **' . $player->name . '\r\n**Reason: **' . $params[1] . '\r\n**Kicked By: **' . $staff[0]['name']);
- }
- }
- }
- }
- }
- }
- }
- }
- break;
- case strpos($request->param('message'), "/ban ") === 0:
- $staff = dbquery('SELECT * FROM players WHERE license="' . escapestring($request->param('id')) . '"');
- if (hasPermission(hex2dec(strtoupper(str_replace('steam:', '', $staff[0]['steam']))), "kick")) {
- $input = str_replace('/ban ', '', $request->param('message'));
- $params = explode(' ', $input, 3);
- foreach (dbquery('SELECT * FROM servers') as $server) {
- if (checkOnline($server['connection']) == true) {
- $players = serverInfo($server['connection'])['players'];
- foreach ($players as $player) {
- if ($player->identifiers[1] == escapestring($request->param('id'))) {
- foreach ($players as $player) {
- if ($player->id == $params[0]) {
- $time = 0;
- if (isset($params[1])) {
- $length = preg_split('/(?<=[0-9])(?=[a-z]+)/i', $params[1]);
- if ($length[0] != 0) {
- switch ($length[1]) {
- case "m":
- $time = 60;
- break;
- case "h":
- $time = 3600;
- break;
- case "d":
- $time = 86400;
- break;
- case "w":
- $time = 604800;
- break;
- default:
- $time = 86400;
- break;
- }
- } else {
- $time = 0;
- }
- $daycount = secsToStr($length[0] * $time);
- if ($time == 0) {
- $banned_until = 0;
- sendMessage('^3' . $player->name . '^0 has been permanently banned by ^2' . $staff[0]['name'] . '^0 for ^3' . $params[2], $server);
- discordMessage('Player Banned', '**Player: **' . $player->name . '\r\n**Reason: **' . $params[2] . '\r\n**Ban Length: **Permanent\r\n**Banned By: **' . $staff[0]['name']);
- } else {
- $banned_until = time() + ($length[0] * $time);
- sendMessage('^3' . $player->name . '^0 has been banned for ^3' . $daycount . '^0 by ^2' . $staff[0]['name'] . '^0 for ^3' . $params[2], $server);
- discordMessage('Player Banned', '**Player: **' . $player->name . '\r\n**Reason: **' . $params[2] . '\r\n**Ban Length: **' . secsToStr($length[0] * $time) . '\r\n**Banned By: **' . $staff[0]['name']);
- }
- dbquery('INSERT INTO bans (name, identifier, reason, ban_issued, banned_until, staff_name, staff_steamid) VALUES ("' . escapestring($player->name) . '", "' . escapestring($player->identifiers[1]) . '", "' . escapestring($params[2]) . '", "' . time() . '", "' . $banned_until . '", "' . $staff[0]['name'] . '", "' . hex2dec(strtoupper(str_replace('steam:', '', $staff[0]['steam']))) . '")', false);
- removeFromSession($player->identifiers[1], "You were banned by " . $staff[0]['name'] . " for " . $params[3] . " (Relog for more info)", $server);
- }
- }
- }
- }
- }
- }
- }
- }
- break;
- case strpos($request->param('message'), "/trustscore ") === 0:
- $input = str_replace('/trustscore ', '', $request->param('message'));
- foreach (dbquery('SELECT * FROM servers') as $server) {
- if (checkOnline($server['connection']) == true) {
- $players = serverInfo($server['connection'])['players'];
- foreach ($players as $player) {
- if ($player->identifiers[1] == escapestring($request->param('id'))) {
- foreach ($players as $player) {
- if ($player->id == $input) {
- $playerinfo = dbquery('SELECT * FROM players WHERE license="' . $player->identifiers[1] . '"');
- sendMessage('^3' . $player->name . '^0 has a playtime of ^2' . secsToStr($playerinfo[0]['playtime'] * 60) . '^0 and a trustscore of ^2' . trustScore($player->identifiers[1]) . '%', $server);
- }
- }
- }
- }
- }
- }
- break;
- case strpos($request->param('message'), "/commend ") === 0:
- $staff = dbquery('SELECT * FROM players WHERE license="' . escapestring($request->param('id')) . '"');
- if (hasPermission(hex2dec(strtoupper(str_replace('steam:', '', $staff[0]['steam']))), "warn")) {
- $input = str_replace('/commend ', '', $request->param('message'));
- $params = explode(' ', $input, 2);
- foreach (dbquery('SELECT * FROM servers') as $server) {
- if (checkOnline($server['connection']) == true) {
- $players = serverInfo($server['connection'])['players'];
- foreach ($players as $player) {
- if ($player->identifiers[1] == escapestring($request->param('id'))) {
- foreach ($players as $player) {
- if ($player->id == $params[0]) {
- dbquery('INSERT INTO commend (license, reason, staff_name, staff_steamid, time) VALUES ("' . $player->identifiers[1] . '", "' . escapestring($params[1]) . '", "' . $staff[0]['name'] . '", "' . hex2dec(strtoupper(str_replace('steam:', '', $staff[0]['steam']))) . '", "' . time() . '")', false);
- sendMessage('^3' . $player->name . '^0 has been commended by ^2' . $staff[0]['name'] . '^0 for ^3' . escapestring($params[1]), $server);
- if (!empty(siteConfig('discord_webhook')) && siteConfig('discord_webhook') != null) {
- discordMessage('Player Commended', '**Player: **' . $player->name . '\r\n**Reason: **' . $params[1] . '\r\n**Commended By: **' . $staff[0]['name']);
- }
- }
- }
- }
- }
- }
- }
- }
- break;
- }
- }
- }
- break;
- case "recentchart":
- $weekprior = time() - 604800;
- $recentwarns = dbquery('SELECT * FROM warnings WHERE time>="' . $weekprior . '"');
- $recentkicks = dbquery('SELECT * FROM kicks WHERE time>="' . $weekprior . '"');
- $recentbans = dbquery('SELECT * FROM bans WHERE ban_issued>="' . $weekprior . '"');
- echo json_encode($recentbans);
- break;
- case "queue":
- header("Content-Type: text/plain");
- $staff = dbquery('SELECT * FROM users WHERE rank!="user"');
- foreach ($staff as $user) {
- echo " - SteamId: " . dec2hex($user['steamid']) . "\r";
- switch ($user['rank']) {
- case "director":
- echo " Priority: " . 1;
- break;
- case "communitymanager":
- echo " Priority: " . 5;
- break;
- case "senioradmin":
- echo " Priority: " . 10;
- break;
- case "admin":
- echo " Priority: " . 15;
- break;
- case "moderator":
- echo " Priority: " . 20;
- break;
- case "trialmod":
- echo " Priority: " . 25;
- break;
- }
- echo "\r\r";
- }
- break;
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement