change version to 1.1, and add support for custom ranks, and allow reqests based on GUID. #1
@ -1,8 +1,10 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using SharedLibraryCore;
|
||||
using SharedLibraryCore.Database.Models;
|
||||
using SharedLibraryCore.Interfaces;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace WebfrontCore.Controllers.API
|
||||
{
|
||||
@ -11,9 +13,11 @@ namespace WebfrontCore.Controllers.API
|
||||
public class GscApiController : BaseController
|
||||
{
|
||||
string rankName;
|
||||
public GscApiController(IManager manager) : base(manager)
|
||||
EFMeta customRankName;
|
||||
private readonly IMetaService _metaService;
|
||||
public GscApiController(IManager manager, IMetaService metaService) : base(manager)
|
||||
{
|
||||
|
||||
_metaService = metaService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -21,13 +25,12 @@ namespace WebfrontCore.Controllers.API
|
||||
/// </summary>
|
||||
/// <param name="clientname"></param>
|
||||
/// <returns></returns>
|
||||
|
||||
[HttpGet("{clientname}")]
|
||||
public IActionResult Clientname(string clientname)
|
||||
[HttpGet("{clientguid}")]
|
||||
public async Task<IActionResult> Clientguid(string clientguid)
|
||||
{
|
||||
|
||||
long decimalNetworkId = clientguid.ConvertGuidToLong(System.Globalization.NumberStyles.Integer);
|
||||
var clientInfo = Manager.GetActiveClients()
|
||||
.FirstOrDefault(c => c.Name == clientname);
|
||||
.FirstOrDefault(c => c.NetworkId == decimalNetworkId);
|
||||
|
||||
if (clientInfo != null)
|
||||
{
|
||||
@ -68,6 +71,86 @@ namespace WebfrontCore.Controllers.API
|
||||
break;
|
||||
}
|
||||
|
||||
customRankName = await _metaService.GetPersistentMeta("rank", clientInfo);
|
||||
if (customRankName == null)
|
||||
{
|
||||
await _metaService.AddPersistentMeta("rank", "none", clientInfo);
|
||||
customRankName = await _metaService.GetPersistentMeta("rank", clientInfo);
|
||||
}
|
||||
|
||||
if (!(customRankName.Value.Contains("none")) && !(customRankName.Value.Contains("None")) && !(customRankName.Value.Contains("NONE")))
|
||||
{
|
||||
rankName = customRankName.Value;
|
||||
|
||||
}
|
||||
|
||||
var sb = new StringBuilder();
|
||||
sb.AppendLine(rankName);
|
||||
|
||||
return Content(sb.ToString());
|
||||
}
|
||||
|
||||
return Content("Error: Client info is null");
|
||||
}
|
||||
[HttpGet("{clientname}")]
|
||||
public async Task<IActionResult> Clientname(string clientname)
|
||||
{
|
||||
|
||||
var clientInfo = Manager.GetActiveClients()
|
||||
.FirstOrDefault(c => c.Name == clientname);
|
||||
|
||||
|
||||
if (clientInfo != null)
|
||||
{
|
||||
|
||||
switch ((int)clientInfo.Level)
|
||||
{
|
||||
case -1:
|
||||
rankName = "Banned"; //this typically won't be seen.
|
||||
break;
|
||||
case 0:
|
||||
rankName = "User";
|
||||
break;
|
||||
case 1:
|
||||
rankName = "User"; //1 = flagged, but don't want to show this in game.
|
||||
break;
|
||||
case 2:
|
||||
rankName = "Trusted";
|
||||
break;
|
||||
case 3:
|
||||
rankName = "Mod";
|
||||
break;
|
||||
case 4:
|
||||
rankName = "Admin";
|
||||
break;
|
||||
case 5:
|
||||
rankName = "SrAdmin";
|
||||
break;
|
||||
case 6:
|
||||
rankName = "Owner";
|
||||
break;
|
||||
case 7:
|
||||
rankName = "Creator";
|
||||
break;
|
||||
case 8:
|
||||
rankName = "Console";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
customRankName = await _metaService.GetPersistentMeta("rank", clientInfo);
|
||||
if (customRankName == null)
|
||||
{
|
||||
await _metaService.AddPersistentMeta("rank", "none", clientInfo);
|
||||
customRankName = await _metaService.GetPersistentMeta("rank", clientInfo);
|
||||
}
|
||||
|
||||
if (!(customRankName.Value.Contains("none")) || !(customRankName.Value.Contains("None")) || !(customRankName.Value.Contains("NONE")))
|
||||
{
|
||||
rankName = customRankName.Value;
|
||||
|
||||
}
|
||||
|
||||
var sb = new StringBuilder();
|
||||
sb.AppendLine(rankName);
|
||||
|
@ -16,13 +16,13 @@ namespace ClanTagRankApi
|
||||
|
||||
public string Name => "ClanTagRankApi";
|
||||
|
||||
public float Version => 1.01f;
|
||||
public float Version => 1.1f;
|
||||
|
||||
public string Author => "INSANEMODE";
|
||||
|
||||
private readonly IMetaService _metaService;
|
||||
|
||||
public Plugin(IMetaService metaService, IConfigurationHandlerFactory configurationHandlerFactory)
|
||||
public Plugin(IMetaService metaService, IConfigurationHandlerFactory configurationHandlerFactory)
|
||||
{
|
||||
_metaService = metaService;
|
||||
_configurationHandler = (IConfigurationHandler<Configuration>)configurationHandlerFactory.GetConfigurationHandler<Configuration>("ClanTagRankApi");
|
||||
|
Loading…
x
Reference in New Issue
Block a user