1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-10 15:20:48 -05:00

update references from IP to ListenAddress

This commit is contained in:
RaidMax
2023-04-04 22:21:18 -05:00
parent cd98ddcb55
commit 53a6ef2ec3
9 changed files with 86 additions and 101 deletions

View File

@ -1,82 +1,62 @@
using Microsoft.AspNetCore.Mvc;
using SharedLibraryCore;
using SharedLibraryCore.Events;
using SharedLibraryCore.Interfaces;
using System.Linq;
namespace WebfrontCore.Controllers.API
namespace WebfrontCore.Controllers.API;
public class ApiController : BaseController
{
public class ApiController : BaseController
public ApiController(IManager manager) : base(manager)
{
public ApiController(IManager manager) : base(manager)
{
}
}
public IActionResult Index()
{
return Ok($"IW4MAdmin API");
}
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 Event()
{
return NotFound("This API endpoint is no longer supported");
}
[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)
[HttpGet]
public IActionResult Status(long? id)
{
var serverInfo = Manager.GetServers()
.Select(server => new
{
serverInfo = serverInfo.Where(server => server.Id == id);
}
Id = server.EndPoint,
IsOnline = !server.Throttled,
Name = server.ServerName,
MaxPlayers = server.MaxClients,
CurrentPlayers = server.GetClientsAsList().Count,
Map = server.CurrentMap,
GameMode = server.Gametype,
server.ListenAddress,
server.ListenPort,
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(),
})
});
return Json(serverInfo);
}
[HttpGet]
public IActionResult RestartApproved()
if (id != null)
{
var serverToRestart = Manager.GetServers().FirstOrDefault(_server => _server.RestartRequested);
if (serverToRestart != null)
{
serverToRestart.RestartRequested = false;
}
return serverToRestart != null ?
(IActionResult)Json(new
{
port = serverToRestart.Port
}) :
Unauthorized();
serverInfo = serverInfo.Where(server => server.Id == id);
}
return Json(serverInfo);
}
}

View File

@ -23,9 +23,9 @@ namespace WebfrontCore.Controllers.API
return new JsonResult(Manager.GetServers().Select(server => new
{
Id = server.EndPoint,
server.Hostname,
server.IP,
server.Port,
server.ServerName,
server.ListenAddress,
server.ListenPort,
Game = server.GameName.ToString(),
server.ClientNum,
server.MaxClients,
@ -52,9 +52,9 @@ namespace WebfrontCore.Controllers.API
return new JsonResult(new
{
Id = foundServer.EndPoint,
foundServer.Hostname,
foundServer.IP,
foundServer.Port,
foundServer.ServerName,
foundServer.ListenAddress,
foundServer.ListenPort,
Game = foundServer.GameName.ToString(),
foundServer.ClientNum,
foundServer.MaxClients,

View File

@ -28,7 +28,7 @@ namespace WebfrontCore.Controllers
: _appConfig.CommunityInformation.Name;
var activeServers = _appConfig.Servers.Where(server =>
Manager.GetServers().FirstOrDefault(s => s.IP == server.IPAddress && s.Port == server.Port) != null);
Manager.GetServers().FirstOrDefault(s => s.ListenAddress == server.IPAddress && s.ListenPort == server.Port) != null);
var info = new CommunityInfo
{
@ -36,9 +36,9 @@ namespace WebfrontCore.Controllers
ServerRules = activeServers.ToDictionary(
config =>
{
var server = Manager.GetServers().FirstOrDefault(server =>
server.IP == config.IPAddress && server.Port == config.Port);
return (server.Hostname, server.EndPoint);
var server = Manager.GetServers().First(server =>
server.ListenAddress == config.IPAddress && server.ListenPort == config.Port);
return (server.ServerName, server.EndPoint);
},
config => config.Rules),
CommunityInformation = _appConfig.CommunityInformation

View File

@ -143,8 +143,8 @@ namespace WebfrontCore.Controllers
ConnectProtocolUrl = ingameClient?.CurrentServer.EventParser.URLProtocolFormat.FormatExt(
ingameClient.CurrentServer.ResolvedIpEndPoint.Address.IsInternal()
? Program.Manager.ExternalIPAddress
: ingameClient.CurrentServer.IP,
ingameClient.CurrentServer.Port),
: ingameClient.CurrentServer.ListenAddress,
ingameClient.CurrentServer.ListenPort),
CurrentServerName = ingameClient?.CurrentServer?.Hostname,
GeoLocationInfo = await _geoLocationService.Locate(client.IPAddressString),
NoteMeta = string.IsNullOrWhiteSpace(note?.Note) ? null: note,