diff --git a/GscApiController.cs b/GscApiController.cs
index 87a39af..460f892 100644
--- a/GscApiController.cs
+++ b/GscApiController.cs
@@ -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;
}
///
@@ -21,13 +25,12 @@ namespace WebfrontCore.Controllers.API
///
///
///
-
- [HttpGet("{clientname}")]
- public IActionResult Clientname(string clientname)
+ [HttpGet("{clientguid}")]
+ public async Task 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 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);
diff --git a/Plugin.cs b/Plugin.cs
index 437e6b6..f9acac3 100644
--- a/Plugin.cs
+++ b/Plugin.cs
@@ -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)configurationHandlerFactory.GetConfigurationHandler("ClanTagRankApi");