3defd3f486
* don't run build commands in release
* fix test file
* Set up CI with Azure Pipelines
[skip ci]
* Include fonts and fix automessage hidden command
* more project changes
* migration from bower to libman
* more lib man changes
* project update for sneaky commands
* add missing canvas.js dep
update projects not to have stupid extra dlls
include in previous
* update pipeline file
* update post publish script and pipeline definition
* fix broken yaml
* move encoding conversion to seperate script
* remove extra uneeded rank icons
remove garbage language files being created
remove frontend lib when done
* fix publish script path
* grab localizations through powershell
* fix broken batch 🤷
* actually fixed
* only include runtime compilation in debug mode for webfront
* don't deploy un minified css
use full jquery version
* add step to download the scss for open iconic
change the font path
* update mkdir for iconic path
* don't include old iconic css
* correct font path for real now
* copy script plugins
* lots of changes for deployment
* build the projects
* use projectdir instead of solution dir
* nerf script commands plugin
fix live radar left over command
* actually kill script command post build
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* fix the font file copy (I think)
* maybe fix delete folder issue
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
82 lines
2.4 KiB
C#
82 lines
2.4 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using SharedLibraryCore;
|
|
using SharedLibraryCore.Events;
|
|
using SharedLibraryCore.Interfaces;
|
|
using System.Linq;
|
|
|
|
namespace WebfrontCore.Controllers.API
|
|
{
|
|
public class ApiController : BaseController
|
|
{
|
|
public ApiController(IManager manager) : base(manager)
|
|
{
|
|
|
|
}
|
|
public IActionResult Index()
|
|
{
|
|
return Ok($"IW4MAdmin API");
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult Event(bool shouldConsume = true)
|
|
{
|
|
var events = EventApi.GetEvents(shouldConsume);
|
|
return Json(events);
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult Status(long? id)
|
|
{
|
|
var serverInfo = Manager.GetServers()
|
|
.Select(server => new
|
|
{
|
|
Id = server.EndPoint,
|
|
IsOnline = !server.Throttled,
|
|
Name = server.Hostname,
|
|
MaxPlayers = server.MaxClients,
|
|
CurrentPlayers = server.GetClientsAsList().Count,
|
|
Map = server.CurrentMap,
|
|
GameMode = server.Gametype,
|
|
server.Port,
|
|
Game = server.GameName.ToString(),
|
|
Players = server.GetClientsAsList()
|
|
.Select(player => new
|
|
{
|
|
player.Name,
|
|
player.Score,
|
|
player.Ping,
|
|
State = player.State.ToString(),
|
|
player.ClientNumber,
|
|
ConnectionTime = player.ConnectionLength,
|
|
Level = player.Level.ToLocalizedLevelName(),
|
|
})
|
|
});
|
|
|
|
if (id != null)
|
|
{
|
|
serverInfo = serverInfo.Where(server => server.Id == id);
|
|
}
|
|
|
|
return Json(serverInfo);
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult RestartApproved()
|
|
{
|
|
var serverToRestart = Manager.GetServers().FirstOrDefault(_server => _server.RestartRequested);
|
|
|
|
if (serverToRestart != null)
|
|
{
|
|
serverToRestart.RestartRequested = false;
|
|
}
|
|
|
|
return serverToRestart != null ?
|
|
(IActionResult)Json(new
|
|
{
|
|
port = serverToRestart.Port
|
|
}) :
|
|
Unauthorized();
|
|
}
|
|
}
|
|
}
|