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
86 lines
3.1 KiB
C#
86 lines
3.1 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Newtonsoft.Json;
|
|
using SharedLibraryCore;
|
|
using SharedLibraryCore.Dtos;
|
|
using SharedLibraryCore.Interfaces;
|
|
using System.Linq;
|
|
|
|
namespace LiveRadar.Web.Controllers
|
|
{
|
|
public class RadarController : BaseController
|
|
{
|
|
private static readonly JsonSerializerSettings _serializerSettings = new JsonSerializerSettings()
|
|
{
|
|
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
|
|
ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver()
|
|
};
|
|
|
|
private readonly IManager _manager;
|
|
|
|
public RadarController(IManager manager) : base(manager)
|
|
{
|
|
_manager = manager;
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("Radar/{serverId}")]
|
|
public IActionResult Index(long? serverId = null)
|
|
{
|
|
ViewBag.IsFluid = true;
|
|
ViewBag.Title = Utilities.CurrentLocalization.LocalizationIndex["WEBFRONT_RADAR_TITLE"];
|
|
ViewBag.ActiveServerId = serverId ?? _manager.GetServers().FirstOrDefault()?.EndPoint;
|
|
ViewBag.Servers = _manager.GetServers()
|
|
.Where(_server => _server.GameName == Server.Game.IW4)
|
|
.Select(_server => new ServerInfo()
|
|
{
|
|
Name = _server.Hostname,
|
|
ID = _server.EndPoint
|
|
});
|
|
|
|
return View();
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("Radar/{serverId}/Map")]
|
|
public IActionResult Map(long? serverId = null)
|
|
{
|
|
var server = serverId == null ? _manager.GetServers().FirstOrDefault() : _manager.GetServers().FirstOrDefault(_server => _server.EndPoint == serverId);
|
|
var map = Plugin.Config.Configuration().Maps.FirstOrDefault(_map => _map.Name == server.CurrentMap.Name);
|
|
|
|
if (map != null)
|
|
{
|
|
map.Alias = server.CurrentMap.Alias;
|
|
return Json(map);
|
|
}
|
|
|
|
// occurs if we don't recognize the map
|
|
return StatusCode(500);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("Radar/{serverId}/Data")]
|
|
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
|
public IActionResult Data(long? serverId = null)
|
|
{
|
|
var server = serverId == null ? _manager.GetServers()[0] : _manager.GetServers().First(_server => _server.EndPoint == serverId);
|
|
var radarInfo = server.GetClientsAsList().Select(_client => _client.GetAdditionalProperty<RadarEvent>("LiveRadar")).ToList();
|
|
return Json(radarInfo);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("Radar/Update")]
|
|
public IActionResult Update(string payload)
|
|
{
|
|
var radarUpdate = RadarEvent.Parse(payload);
|
|
var client = _manager.GetActiveClients().FirstOrDefault(_client => _client.NetworkId == radarUpdate.Guid);
|
|
|
|
if (client != null)
|
|
{
|
|
radarUpdate.Name = client.Name.StripColors();
|
|
client.SetAdditionalProperty("LiveRadar", radarUpdate);
|
|
}
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
} |