diff --git a/Commands/SetRankCommand.cs b/Commands/SetRankCommand.cs
new file mode 100644
index 0000000..cb89a65
--- /dev/null
+++ b/Commands/SetRankCommand.cs
@@ -0,0 +1,69 @@
+using SharedLibraryCore;
+using SharedLibraryCore.Commands;
+using SharedLibraryCore.Configuration;
+using SharedLibraryCore.Database.Models;
+using SharedLibraryCore.Interfaces;
+using System.Threading.Tasks;
+
+
+
+namespace IW4ScriptCommands.Commands
+{
+ ///
+ /// Example script command
+ ///
+ public class SetRankCommand : Command
+ {
+ readonly string rank = "rank";
+ string rank_string;
+ private readonly IMetaService _metaService;
+
+ public SetRankCommand(CommandConfiguration config, ITranslationLookup lookup, IMetaService metaService) : base(config, lookup)
+ {
+ _metaService = metaService;
+ Name = "SetRank";
+ Description = "set a user's clan tag Rank (does not give permissions)";
+ Alias = "sr";
+ Permission = EFClient.Permission.Administrator;
+ RequiresTarget = true;
+ Arguments = new[]
+ {
+ new CommandArgument()
+ {
+ Name = "rank",
+ Required = true
+ }
+ };
+ }
+
+ public override async Task ExecuteAsync(GameEvent E)
+ {
+ //var S = E.Owner;
+ rank_string = "none";
+ if (E.Data != null)
+ rank_string = E.Data;
+ var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
+ if (rank_player_var == null)
+ {
+ await _metaService.AddPersistentMeta(rank, "none", E.Target);
+ rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
+ }
+
+ if (rank_string.Length > 0 && rank_string.Length < 9)
+ {
+
+ await _metaService.AddPersistentMeta(rank, rank_string, E.Target);
+ rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
+ if(rank_player_var.Value == "none" || rank_player_var.Value == "None" || rank_player_var.Value == "NONE")
+ E.Origin.Tell(E.Target.Name + "'s Rank reset to none");
+
+ E.Origin.Tell("New rank set: [" + rank_player_var.Value + "]" + E.Target.Name);
+ }
+ else
+ {
+ //rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
+ E.Origin.Tell($"invalid rank length (between 1-8 characters), set rank to none to reset");
+ }
+ }
+ }
+}
diff --git a/GscApiController.cs b/GscApiController.cs
index 9e0b894..ca17dcf 100644
--- a/GscApiController.cs
+++ b/GscApiController.cs
@@ -25,14 +25,14 @@ namespace WebfrontCore.Controllers.API
[HttpGet("{clientname}")]
public IActionResult Clientname(string clientname)
{
-
+
var clientInfo = Manager.GetActiveClients()
.FirstOrDefault(c => c.Name == clientname);
if (clientInfo != null)
{
- switch((int)clientInfo.Level)
+ switch ((int)clientInfo.Level)
{
case 0:
rankName = "User";
@@ -50,7 +50,7 @@ namespace WebfrontCore.Controllers.API
rankName = "Admin";
break;
case 5:
- rankName = "Sr.Admin";
+ rankName = "SrAdmin";
break;
case 6:
rankName = "Owner";
diff --git a/Plugin.cs b/Plugin.cs
index de0907f..f7bd628 100644
--- a/Plugin.cs
+++ b/Plugin.cs
@@ -10,7 +10,7 @@ namespace ClanTagRankApi
{
private readonly IConfigurationHandler _configurationHandler;
private Configuration Config;
-
+ readonly string rank = "rank";
@@ -41,8 +41,19 @@ namespace ClanTagRankApi
return Task.CompletedTask;
}
- public Task OnEventAsync(GameEvent E, Server S) => Task.CompletedTask;
-
+ public async Task OnEventAsync(GameEvent E, Server S)// => Task.CompletedTask;
+ {
+ if (E.Type == GameEvent.EventType.Join)
+ {
+ var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
+ if (rank_player_var == null)
+ {
+ await _metaService.AddPersistentMeta(rank, "none", E.Target);
+ rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
+ }
+ }
+ //return Task.CompletedTask;
+ }
public Task OnTickAsync(Server S)// =>
{