diff --git a/ClanTagRankCommands.csproj b/ClanTagRankCommands.csproj
index 8b51261..752c993 100644
--- a/ClanTagRankCommands.csproj
+++ b/ClanTagRankCommands.csproj
@@ -2,11 +2,11 @@
Library
- netcoreapp3.1
+ net6.0
Debug;Release;Prerelease
- 7.1
+ 10
diff --git a/Commands/GetRankCommand.cs b/Commands/GetRankCommand.cs
new file mode 100644
index 0000000..d6d1cf0
--- /dev/null
+++ b/Commands/GetRankCommand.cs
@@ -0,0 +1,94 @@
+using SharedLibraryCore;
+using SharedLibraryCore.Commands;
+using SharedLibraryCore.Configuration;
+using SharedLibraryCore.Database.Models;
+using SharedLibraryCore.Interfaces;
+using System.Threading.Tasks;
+
+
+namespace ClanTagRankCommands.Commands
+{
+
+ ///
+ /// Example script command
+ ///
+ ///
+
+ public class GetRankCommand : Command
+ {
+ readonly string rank = "rank";
+ string rank_string;
+ private readonly IMetaService _metaService;
+ private readonly IConfigurationHandler _configurationHandler;
+ private Configuration Config;
+
+
+ public GetRankCommand(CommandConfiguration config, ITranslationLookup lookup, IMetaService metaService, IConfigurationHandlerFactory configurationHandlerFactory) : base(config, lookup)
+ {
+ _metaService = metaService;
+ _configurationHandler = configurationHandlerFactory.GetConfigurationHandler("ClanTagRankCommands");
+ if (_configurationHandler.Configuration() == null)
+ {
+ _configurationHandler.Set((Configuration)new Configuration().Generate());
+ _configurationHandler.Save();
+ }
+ Config = _configurationHandler.Configuration();
+
+ Name = "GetRank";
+ Description = "Get a user's clan tag Rank (does not give permissions)";
+ Alias = "Gr";
+ Permission = EFClient.Permission.Trusted;
+ RequiresTarget = true;
+ Arguments = new[]
+ {
+ new CommandArgument()
+ {
+ }
+ };
+
+ }
+
+ public override async Task ExecuteAsync(GameEvent E)
+ {
+ //var S = E.Owner;
+ rank_string = "none";
+ if(E.Target is not null)
+ {
+ 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 has been reset");
+ rank_string = E.Target.Level.ClanTag(Config);
+ E.Origin.Tell("[" + rank_string + "]" + E.Target.Name );
+
+ }
+
+ else
+ {
+ rank_string = rank_player_var.Value;
+ E.Origin.Tell("[" + rank_player_var.Value + "]" + E.Target.Name);
+
+ }
+ }
+
+
+
+
+
+ }
+
+ }
+ }
+}
diff --git a/Commands/PermaperkCommand.cs b/Commands/PermaperkCommand.cs
index a1821ea..bac88cf 100644
--- a/Commands/PermaperkCommand.cs
+++ b/Commands/PermaperkCommand.cs
@@ -5,6 +5,8 @@ using SharedLibraryCore.Database.Models;
using SharedLibraryCore.Interfaces;
using System.Threading.Tasks;
using ClanTagRankCommands;
+using System;
+using System.Runtime;
namespace ClanTagRankCommands.Commands
{
@@ -49,9 +51,9 @@ namespace ClanTagRankCommands.Commands
await _metaService.AddPersistentMeta("speedtoggle", "0", E.Origin);
speedtoggle = await _metaService.GetPersistentMeta("speedtoggle", E.Origin);
}
- await E.Owner.SetDvarAsync("sv_iw4madmin_options", "speedtoggle;" + E.Origin.ClientNumber.ToString() + ";" + speedtoggle.Value.ToString());
+ //await E.Owner.SetDvarAsync("sv_iw4madmin_options", "speedtoggle;" + E.Origin.ClientNumber.ToString() + ";" + speedtoggle.Value.ToString());
- if (E.Origin.CurrentServer == E.Owner && E.Origin is object && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)
+ if (E.Origin is not null && E.Origin.CurrentServer == E.Owner && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)
{
var rank_player_var = await _metaService.GetPersistentMeta("rank", E.Origin);
var rankName = E.Origin.Level.ClanTag(Config);
@@ -69,10 +71,20 @@ namespace ClanTagRankCommands.Commands
rankName = rank_player_var.Value;
}
- if (E.Origin.CurrentServer == E.Owner && E.Origin is object && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)// && (E.Origin.Level > EFClient.Permission.Trusted || rankName != Config.User))
+ if (E.Origin is not null && E.Origin.CurrentServer == E.Owner && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)// && (E.Origin.Level > EFClient.Permission.Trusted || rankName != Config.User))
{
- await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
- await E.Owner.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Origin.ClientNumber.ToString() + ";" + rankName.ToString());
+ if(string.IsNullOrWhiteSpace(rankName))
+ {
+
+ }
+ else
+ {
+ await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
+ await E.Owner.ExecuteCommandAsync("setrole" + " " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
+ E.Origin.Tell("Setting permaperks");
+ }
+
+ //await E.Owner.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Origin.ClientNumber.ToString() + ";" + rankName.ToString());
}
}
diff --git a/Commands/ResetRankCommand.cs b/Commands/ResetRankCommand.cs
index c28a6e3..7bfec1d 100644
--- a/Commands/ResetRankCommand.cs
+++ b/Commands/ResetRankCommand.cs
@@ -51,16 +51,26 @@ namespace ClanTagRankCommands.Commands
{
//var S = E.Owner;
rank_string = "none";
- if(E.Target is object)
+ if(E.Target is not null)
{
await _metaService.AddPersistentMeta(rank, rank_string, E.Target);
rank_string = E.Target.Level.ClanTag(Config);
E.Origin.Tell(E.Target.Name + "'s rank has been reset to: " + rank_string);
- if (E.Target.IsIngame && E.Target is object)
+ if (E.Target is not null && E.Target.IsIngame )
{
- await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
- //await E.Owner.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Target.ClientNumber.ToString() + ";" + rank_string.ToString());
- await E.Owner.ExecuteCommandAsync("setrole " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
+ if (string.IsNullOrWhiteSpace(rank_string))
+ {
+ await E.Owner.ExecuteCommandAsync("resetclantag" + " " + E.Target.ClientNumber.ToString());
+
+ await E.Owner.ExecuteCommandAsync("resetrole " + E.Target.ClientNumber.ToString());
+
+ }
+ else
+ {
+ await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
+ //await E.Owner.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Target.ClientNumber.ToString() + ";" + rank_string.ToString());
+ await E.Owner.ExecuteCommandAsync("setrole " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
+ }
}
diff --git a/Commands/SetRankCommand.cs b/Commands/SetRankCommand.cs
index b286b79..78c2762 100644
--- a/Commands/SetRankCommand.cs
+++ b/Commands/SetRankCommand.cs
@@ -55,7 +55,7 @@ namespace ClanTagRankCommands.Commands
rank_string = "none";
if (E.Data != null)
rank_string = E.Data;
- if(E.Target is object)
+ if(E.Target is not null)
{
var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
if (rank_player_var == null)
@@ -90,11 +90,21 @@ namespace ClanTagRankCommands.Commands
E.Origin.Tell($"invalid rank length (between 1-8 characters), set rank to none, or use !ResetRank to reset");
}
- if(E.Target.IsIngame && E.Target is object)
+ if(E.Target is not null && E.Target.IsIngame)
{
- await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
- //await E.Owner.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Target.ClientNumber.ToString() + ";" + rank_string.ToString());
- await E.Owner.ExecuteCommandAsync("setrole " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
+ if (string.IsNullOrWhiteSpace(rank_string))
+ {
+ await E.Owner.ExecuteCommandAsync("resetclantag" + " " + E.Target.ClientNumber.ToString());
+
+ await E.Owner.ExecuteCommandAsync("resetrole " + E.Target.ClientNumber.ToString());
+
+ }
+ else
+ {
+ await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
+
+ await E.Owner.ExecuteCommandAsync("setrole " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
+ }
}
diff --git a/Plugin.cs b/Plugin.cs
index 44e5858..fe6b568 100644
--- a/Plugin.cs
+++ b/Plugin.cs
@@ -59,7 +59,7 @@ namespace ClanTagRankCommands
{
//Console.WriteLine("RC: " + E.Origin.Name);
- if (E.Origin.CurrentServer == S && E.Origin is object && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)
+ if (E.Origin is not null && E.Origin.CurrentServer == S && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)
{
var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Origin);
rankName = E.Origin.Level.ClanTag(Config);
@@ -77,46 +77,69 @@ namespace ClanTagRankCommands
rankName = rank_player_var.Value;
}
- if (E.Origin.CurrentServer == S && E.Origin is object && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)// && (E.Origin.Level > EFClient.Permission.Trusted || rankName != Config.User))
+ if (E.Origin is not null && E.Origin.CurrentServer == S && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)// && (E.Origin.Level > EFClient.Permission.Trusted || rankName != Config.User))
{
- await S.ExecuteCommandAsync("setclantag" + " " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
- await S.ExecuteCommandAsync("setrole " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
+ if (string.IsNullOrWhiteSpace(rankName))
+ {
+ //await S.ExecuteCommandAsync("resetclantag" + " " + E.Origin.ClientNumber.ToString());
+
+ //await S.ExecuteCommandAsync("resetrole " + E.Origin.ClientNumber.ToString());
+
+ }
+ else
+ {
+ await S.ExecuteCommandAsync("setclantag" + " " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
+ await S.ExecuteCommandAsync("setrole " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
+ }
+
//await S.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Origin.ClientNumber.ToString() + ";" + rankName.ToString());
}
}
}
- if ((E.Type == GameEvent.EventType.Connect))
- {
- //Console.WriteLine("RC: " + E.Origin.Name);
+ //if ((E.Type == GameEvent.EventType.Connect))
+ //{
+ // //Console.WriteLine("RC: " + E.Origin.Name);
- if (E.Origin.CurrentServer == S && E.Origin is object && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)
- {
- var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Origin);
- rankName = E.Origin.Level.ClanTag(Config);
+ // if (E.Origin.CurrentServer == S && E.Origin is object && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)
+ // {
+ // var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Origin);
+ // rankName = E.Origin.Level.ClanTag(Config);
- rank_player_var = await _metaService.GetPersistentMeta("rank", E.Origin);
- if (rank_player_var == null)
- {
+ // rank_player_var = await _metaService.GetPersistentMeta("rank", E.Origin);
+ // if (rank_player_var == null)
+ // {
- await _metaService.AddPersistentMeta("rank", "none", E.Origin);
- rank_player_var = await _metaService.GetPersistentMeta("rank", E.Origin);
- }
+ // await _metaService.AddPersistentMeta("rank", "none", E.Origin);
+ // rank_player_var = await _metaService.GetPersistentMeta("rank", E.Origin);
+ // }
- if (!(rank_player_var.Value.Contains("none")) && !(rank_player_var.Value.Contains("None")) && !(rank_player_var.Value.Contains("NONE")))
- {
- rankName = rank_player_var.Value;
+ // if (!(rank_player_var.Value.Contains("none")) && !(rank_player_var.Value.Contains("None")) && !(rank_player_var.Value.Contains("NONE")))
+ // {
+ // rankName = rank_player_var.Value;
- }
- if (E.Origin.CurrentServer == S && E.Origin is object && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)// && (E.Origin.Level > EFClient.Permission.Trusted || rankName != Config.User))
- {
- await S.ExecuteCommandAsync("setclantag" + " " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
- await S.ExecuteCommandAsync("setrole " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
- //await S.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Origin.ClientNumber.ToString() + ";" + rankName.ToString());
- }
- }
+ // }
+ // if (E.Origin.CurrentServer == S && E.Origin is object && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)// && (E.Origin.Level > EFClient.Permission.Trusted || rankName != Config.User))
+ // {
+ // if (string.IsNullOrWhiteSpace(rankName) || rankName.Length < 1)
+ // {
+ // //await S.ExecuteCommandAsync("resetclantag" + " " + E.Origin.ClientNumber.ToString());
- }
+ // //await S.ExecuteCommandAsync("resetrole " + E.Origin.ClientNumber.ToString());
+
+ // }
+ // else
+ // {
+ // await S.ExecuteCommandAsync("setclantag" + " " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
+
+ // await S.ExecuteCommandAsync("setrole " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
+ // }
+
+ // //await S.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Origin.ClientNumber.ToString() + ";" + rankName.ToString());
+ // }
+ // }
+
+ //}
//if ((E.Type == GameEvent.EventType.Other) && E.Subtype.Contains("YADB-Embed"))
//{
// Console.WriteLine(E.Extra);