diff --git a/ClanTag.cs b/ClanTag.cs
index fbd4f46..238a012 100644
--- a/ClanTag.cs
+++ b/ClanTag.cs
@@ -20,7 +20,7 @@ namespace ClanTagRankCommands
switch ((int)level)
{
case -1:
- rankName = "Banned"; //this typically won't be seen.
+ rankName = "Flagged"; //this typically won't be seen.
break;
case 0:
rankName = Config.User;
diff --git a/ClanTagRankCommands.csproj b/ClanTagRankCommands.csproj
index 752c993..fbf8e4f 100644
--- a/ClanTagRankCommands.csproj
+++ b/ClanTagRankCommands.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/Commands/GetRankCommand.cs b/Commands/GetRankCommand.cs
index db442cf..b035ae9 100644
--- a/Commands/GetRankCommand.cs
+++ b/Commands/GetRankCommand.cs
@@ -1,93 +1,93 @@
-using SharedLibraryCore;
-using SharedLibraryCore.Commands;
-using SharedLibraryCore.Configuration;
-using SharedLibraryCore.Database.Models;
-using SharedLibraryCore.Interfaces;
-using System.Threading.Tasks;
+//using SharedLibraryCore;
+//using SharedLibraryCore.Commands;
+//using SharedLibraryCore.Configuration;
+//using SharedLibraryCore.Database.Models;
+//using SharedLibraryCore.Interfaces;
+//using System.Threading.Tasks;
-namespace ClanTagRankCommands.Commands
-{
+//namespace ClanTagRankCommands.Commands
+//{
- ///
- /// Example script command
- ///
- ///
+// ///
+// /// 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 class GetRankCommand : Command
+// {
+// readonly string rank = "rank";
+// string rank_string;
+// private readonly IMetaServiceV2 _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();
+// public GetRankCommand(CommandConfiguration config, ITranslationLookup lookup, IMetaServiceV2 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()
- {
- }
- };
+// 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)
- {
- 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);
- }
+// public override async Task ExecuteAsync(GameEvent E)
+// {
+// rank_string = "none";
+// if(E.Target is not null)
+// {
+// var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target.ClientId);
+// if (rank_player_var == null)
+// {
+// await _metaService.SetPersistentMeta(rank, "none", E.Target.ClientId);
+// rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target.ClientId);
+// }
- if (rank_string.Length > 0 && rank_string.Length < 9)
- {
+// 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")
- {
+// //await _metaService.AddPersistentMeta(rank, rank_string, E.Target);
+// rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target.ClientId);
+// 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 );
+// //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);
+// else
+// {
+// rank_string = rank_player_var.Value;
+// E.Origin.Tell("[" + rank_player_var.Value + "]" + E.Target.Name);
- }
- }
+// }
+// }
- }
+// }
- }
- }
-}
+// }
+// }
+//}
diff --git a/Commands/InviteGuestCommand.cs b/Commands/InviteGuestCommand.cs
new file mode 100644
index 0000000..74a83e4
--- /dev/null
+++ b/Commands/InviteGuestCommand.cs
@@ -0,0 +1,53 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Data.Models;
+using Data.Models.Client;
+using SharedLibraryCore;
+using SharedLibraryCore.Commands;
+using SharedLibraryCore.Configuration;
+using SharedLibraryCore.Dtos;
+using SharedLibraryCore.Interfaces;
+
+
+namespace ClanTagRankCommands.Commands
+{
+ public class InviteGuestCommand : Command
+ {
+ private readonly IMetaServiceV2 _metaService;
+
+
+ public InviteGuestCommand(CommandConfiguration config, ITranslationLookup layout, IMetaServiceV2 metaService) :
+ base(config, layout)
+ {
+ Name = "inviteGuest";
+ Description = "invite a guest to play on donator server (use !find to get @id to invite)";
+ Alias = "guest";
+ Permission = EFClient.Permission.Trusted;
+ RequiresTarget = true;
+ Arguments = new[]
+ {
+ new CommandArgument
+ {
+ Name = "Player",
+ Required = true
+ }
+ };
+
+ _metaService = metaService;
+ }
+
+ public override async Task ExecuteAsync(GameEvent gameEvent)
+ {
+ var token = gameEvent.Owner.Manager.CancellationToken;
+
+ var availableTags = await _metaService.GetPersistentMetaValue>>(EFMeta.ClientTagNameV2, token);
+ var matchingTag = availableTags.FirstOrDefault(tag => tag.Value == "Guest".Trim());
+
+ gameEvent.Target.Tag = matchingTag.Value;
+ await _metaService.SetPersistentMetaForLookupKey(EFMeta.ClientTagV2, EFMeta.ClientTagNameV2, matchingTag.Id,
+ gameEvent.Target.ClientId, token);
+ gameEvent.Origin.Tell($"Temporarily set {gameEvent.Target.Name} to Guest");
+ }
+ }
+}
diff --git a/Commands/PermaperkCommand.cs b/Commands/PermaperkCommand.cs
index bac88cf..6e43921 100644
--- a/Commands/PermaperkCommand.cs
+++ b/Commands/PermaperkCommand.cs
@@ -1,98 +1,98 @@
-using SharedLibraryCore;
-using SharedLibraryCore.Commands;
-using SharedLibraryCore.Configuration;
-using SharedLibraryCore.Database.Models;
-using SharedLibraryCore.Interfaces;
-using System.Threading.Tasks;
-using ClanTagRankCommands;
-using System;
-using System.Runtime;
+//using SharedLibraryCore;
+//using SharedLibraryCore.Commands;
+//using SharedLibraryCore.Configuration;
+//using SharedLibraryCore.Database.Models;
+//using SharedLibraryCore.Interfaces;
+//using System.Threading.Tasks;
+//using ClanTagRankCommands;
+//using System;
+//using System.Runtime;
-namespace ClanTagRankCommands.Commands
-{
- ///
- /// Example script command
- ///
- public class PermaperkCommand : Command
- {
- private readonly IMetaService _metaService;
- private readonly IConfigurationHandler _configurationHandler;
- private Configuration Config;
- public PermaperkCommand(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 = "Permaperk";
- Description = "force permaperks, clan tag, and speed if they don't set correctly.";
- Alias = "perma";
- Permission = EFClient.Permission.Trusted;
- RequiresTarget = false;
- Arguments = new[]
- {
- new CommandArgument()
- {
- }
- };
- }
+//namespace ClanTagRankCommands.Commands
+//{
+// ///
+// /// Example script command
+// ///
+// public class PermaperkCommand : Command
+// {
+// private readonly IMetaService _metaService;
+// private readonly IConfigurationHandler _configurationHandler;
+// private Configuration Config;
+// public PermaperkCommand(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 = "Permaperk";
+// Description = "force permaperks, clan tag, and speed if they don't set correctly.";
+// Alias = "perma";
+// Permission = EFClient.Permission.Trusted;
+// RequiresTarget = false;
+// Arguments = new[]
+// {
+// new CommandArgument()
+// {
+// }
+// };
+// }
- public override async Task ExecuteAsync(GameEvent E)
- {
- //await yadb.notifyYADB("Kicked player @{target} after a successful vote started from @{origin}", $"testing", E.Data,":pencil:", E.Owner, E.Origin, E.Origin);
- var speedtoggle = await _metaService.GetPersistentMeta("speedtoggle", E.Origin);
- if (speedtoggle == null)
- {
- // speedtoggle == 1 means slower, unmodified speed)
- 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());
+// public override async Task ExecuteAsync(GameEvent E)
+// {
+// //await yadb.notifyYADB("Kicked player @{target} after a successful vote started from @{origin}", $"testing", E.Data,":pencil:", E.Owner, E.Origin, E.Origin);
+// var speedtoggle = await _metaService.GetPersistentMeta("speedtoggle", E.Origin);
+// if (speedtoggle == null)
+// {
+// // speedtoggle == 1 means slower, unmodified speed)
+// 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());
- 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);
+// 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);
- 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 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))
- {
- if(string.IsNullOrWhiteSpace(rankName))
- {
+// }
+// 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))
+// {
+// 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");
- }
+// }
+// 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());
- }
- }
+// //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 7bfec1d..2046f4a 100644
--- a/Commands/ResetRankCommand.cs
+++ b/Commands/ResetRankCommand.cs
@@ -1,81 +1,81 @@
-using SharedLibraryCore;
-using SharedLibraryCore.Commands;
-using SharedLibraryCore.Configuration;
-using SharedLibraryCore.Database.Models;
-using SharedLibraryCore.Interfaces;
-using System;
-using System.Threading.Tasks;
+//using SharedLibraryCore;
+//using SharedLibraryCore.Commands;
+//using SharedLibraryCore.Configuration;
+//using SharedLibraryCore.Database.Models;
+//using SharedLibraryCore.Interfaces;
+//using System;
+//using System.Threading.Tasks;
-namespace ClanTagRankCommands.Commands
-{
- ///
- /// Example script command
- ///
- public class ResetRankCommand : Command
- {
- readonly string rank = "rank";
- string rank_string;
- private readonly IMetaService _metaService;
- private readonly IConfigurationHandler _configurationHandler;
- private Configuration Config;
+//namespace ClanTagRankCommands.Commands
+//{
+// ///
+// /// Example script command
+// ///
+// public class ResetRankCommand : Command
+// {
+// readonly string rank = "rank";
+// string rank_string;
+// private readonly IMetaServiceV2 _metaService;
+// private readonly IConfigurationHandler _configurationHandler;
+// private Configuration Config;
- public ResetRankCommand(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();
+// public ResetRankCommand(CommandConfiguration config, ITranslationLookup lookup, IMetaServiceV2 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 = "ResetRank";
- Description = "set a user's clan tag Rank (does not give permissions)";
- Alias = "rr";
- Permission = EFClient.Permission.Administrator;
- RequiresTarget = true;
- Arguments = new[]
- {
- new CommandArgument()
- {
- //Name = "rank",
- //Required = false
- }
- };
- }
+// Name = "ResetRank";
+// Description = "set a user's clan tag Rank (does not give permissions)";
+// Alias = "rr";
+// Permission = EFClient.Permission.Administrator;
+// RequiresTarget = true;
+// Arguments = new[]
+// {
+// new CommandArgument()
+// {
+// //Name = "rank",
+// //Required = false
+// }
+// };
+// }
- public override async Task ExecuteAsync(GameEvent E)
- {
- //var S = E.Owner;
- rank_string = "none";
- 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 is not null && E.Target.IsIngame )
- {
- if (string.IsNullOrWhiteSpace(rank_string))
- {
- await E.Owner.ExecuteCommandAsync("resetclantag" + " " + E.Target.ClientNumber.ToString());
+// public override async Task ExecuteAsync(GameEvent E)
+// {
+// //var S = E.Owner;
+// rank_string = "none";
+// if(E.Target is not null)
+// {
+// await _metaService.SetPersistentMeta(rank, rank_string, E.Target.ClientId);
+// rank_string = E.Target.Level.ClanTag(Config);
+// E.Origin.Tell(E.Target.Name + "'s rank has been reset to: " + rank_string);
+// if (E.Target is not null && E.Target.IsIngame )
+// {
+// if (string.IsNullOrWhiteSpace(rank_string))
+// {
+// await E.Owner.ExecuteCommandAsync("resetclantag" + " " + E.Target.ClientNumber.ToString());
- await E.Owner.ExecuteCommandAsync("resetrole " + 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());
- }
- }
+// }
+// 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/SetDonatorCommand.cs b/Commands/SetDonatorCommand.cs
new file mode 100644
index 0000000..f7a5a30
--- /dev/null
+++ b/Commands/SetDonatorCommand.cs
@@ -0,0 +1,92 @@
+//using System.Collections.Generic;
+//using System.Linq;
+//using System.Threading.Tasks;
+//using Data.Models;
+//using Data.Models.Client;
+//using SharedLibraryCore;
+//using SharedLibraryCore.Commands;
+//using SharedLibraryCore.Configuration;
+//using SharedLibraryCore.Dtos;
+//using SharedLibraryCore.Interfaces;
+
+
+//namespace ClanTagRankCommands.Commands
+//{
+// public class SetDonatorCommand : Command
+// {
+// private readonly IMetaServiceV2 _metaService;
+
+
+// public SetDonatorCommand(CommandConfiguration config, ITranslationLookup layout, IMetaServiceV2 metaService) :
+// base(config, layout)
+// {
+// Name = "SetDonator";
+// Description = "Sets a player to Donator rank";
+// Alias = "Donator";
+// Permission = EFClient.Permission.Trusted;
+// RequiresTarget = true;
+// Arguments = new[]
+// {
+// new CommandArgument
+// {
+// Name = "Player",
+// Required = true
+// }
+// };
+
+// _metaService = metaService;
+// }
+
+// public override async Task ExecuteAsync(GameEvent gameEvent)
+// {
+// var token = gameEvent.Owner.Manager.CancellationToken;
+
+// var availableTags = await _metaService.GetPersistentMetaValue>>(EFMeta.ClientTagNameV2, token);
+// var matchingTag = availableTags.FirstOrDefault(tag => tag.Value == "Donator".Trim());
+
+// gameEvent.Target.Tag = matchingTag.Value;
+// await _metaService.SetPersistentMetaForLookupKey(EFMeta.ClientTagV2, EFMeta.ClientTagNameV2, matchingTag.Id,
+// gameEvent.Target.ClientId, token);
+// if (gameEvent.Target.Level < EFClient.Permission.Moderator)
+// {
+// gameEvent.Target.SetLevel(EFClient.Permission.Trusted, gameEvent.Origin);
+// }
+// gameEvent.Origin.Tell($"Set {gameEvent.Target.Name} to Donator");
+// if (gameEvent.Target.IsIngame)
+// {
+// gameEvent.Target.Tell($"Your rank has been set to Donator!");
+// }
+// else
+// {
+// var cmd = $"{Utilities.CommandPrefix}om {gameEvent.Target.ClientId} Your rank has been set to Donator!";
+// var impersonatedCommandEvent = new GameEvent
+// {
+// Type = GameEvent.EventType.Command,
+// Origin = gameEvent.Origin,
+// ImpersonationOrigin = gameEvent.Origin,
+// Message = cmd,
+// Data = cmd,
+// Owner = gameEvent.Owner,
+// CorrelationId = gameEvent.CorrelationId
+// };
+// gameEvent.Owner.Manager.AddEvent(impersonatedCommandEvent);
+
+// var result = await impersonatedCommandEvent.WaitAsync(Utilities.DefaultCommandTimeout,
+// gameEvent.Owner.Manager.CancellationToken);
+// await result.WaitAsync(Utilities.DefaultCommandTimeout, gameEvent.Owner.Manager.CancellationToken);
+
+// // remove the added command response
+// // todo: something weird happening making this change required
+// var responses = gameEvent.Owner.Manager.ProcessingEvents
+// .Where(ev => ev.Value.CorrelationId == impersonatedCommandEvent.CorrelationId)
+// .SelectMany(ev => ev.Value.Output)
+// .ToList();
+
+// foreach (var output in responses)
+// await gameEvent.Origin.Tell(_translationLookup["COMMANDS_RUN_AS_SUCCESS"].FormatExt(output))
+// .WaitAsync();
+
+// }
+// }
+// }
+//}
diff --git a/Commands/SetRankCommand.cs b/Commands/SetRankCommand.cs
index 78c2762..a7b7e90 100644
--- a/Commands/SetRankCommand.cs
+++ b/Commands/SetRankCommand.cs
@@ -18,12 +18,12 @@ namespace ClanTagRankCommands.Commands
{
readonly string rank = "rank";
string rank_string;
- private readonly IMetaService _metaService;
+ private readonly IMetaServiceV2 _metaService;
private readonly IConfigurationHandler _configurationHandler;
private Configuration Config;
- public SetRankCommand(CommandConfiguration config, ITranslationLookup lookup, IMetaService metaService, IConfigurationHandlerFactory configurationHandlerFactory) : base(config, lookup)
+ public SetRankCommand(CommandConfiguration config, ITranslationLookup lookup, IMetaServiceV2 metaService, IConfigurationHandlerFactory configurationHandlerFactory) : base(config, lookup)
{
_metaService = metaService;
_configurationHandler = configurationHandlerFactory.GetConfigurationHandler("ClanTagRankCommands");
@@ -57,18 +57,18 @@ namespace ClanTagRankCommands.Commands
rank_string = E.Data;
if(E.Target is not null)
{
- var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
+ var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target.ClientId);
if (rank_player_var == null)
{
- await _metaService.AddPersistentMeta(rank, "none", E.Target);
- rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
+ await _metaService.SetPersistentMeta(rank, "none", E.Target.ClientId);
+ rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target.ClientId);
}
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);
+ await _metaService.SetPersistentMeta(rank, rank_string, E.Target.ClientId);
+ rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target.ClientId);
if(rank_player_var.Value == "none" || rank_player_var.Value == "None" || rank_player_var.Value == "NONE")
{
diff --git a/Plugin.cs b/Plugin.cs
index fe6b568..09571d6 100644
--- a/Plugin.cs
+++ b/Plugin.cs
@@ -18,8 +18,8 @@ namespace ClanTagRankCommands
private readonly IConfigurationHandler _configurationHandler;
private readonly ILogger _logger;
private Configuration Config;
- readonly string rank = "rank";
- string rankName = "none";
+ //readonly string rank = "rank";
+ //string rankName = "none";
@@ -29,9 +29,9 @@ namespace ClanTagRankCommands
public string Author => "INSANEMODE";
- private readonly IMetaService _metaService;
+ private readonly IMetaServiceV2 _metaService;
- public Plugin(IMetaService metaService, IConfigurationHandlerFactory configurationHandlerFactory, ILogger logger)
+ public Plugin(IMetaServiceV2 metaService, IConfigurationHandlerFactory configurationHandlerFactory, ILogger logger)
{
_logger = logger;
_metaService = metaService;
@@ -53,133 +53,13 @@ namespace ClanTagRankCommands
}
public async Task OnEventAsync(GameEvent E, Server S)// => Task.CompletedTask;
{
-
- //if (E.Type == GameEvent.EventType.Join || E.Type == GameEvent.EventType.ChangePermission )
- if ((E.Type == GameEvent.EventType.Other) && E.Subtype.Contains("RC"))
+ if(E.Type == GameEvent.EventType.Disconnect && E.Target.Tag == "Guest")
{
- //Console.WriteLine("RC: " + E.Origin.Name);
-
- 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);
-
- 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);
- }
-
- 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 is not null && E.Origin.CurrentServer == S && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)// && (E.Origin.Level > EFClient.Permission.Trusted || rankName != Config.User))
- {
- 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());
- }
- }
-
+ E.Target.Tag = null;
+ await _metaService.RemovePersistentMeta(EFMeta.ClientTagV2, E.Target.ClientId,
+ E.Owner.Manager.CancellationToken);
}
- //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);
-
- // 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);
- // }
-
- // 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))
- // {
- // 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);
- // Console.WriteLine(E.Origin.Name);
- //}
- //if (E.Type == GameEvent.EventType.Start || E.Type == GameEvent.EventType.MapChange)
- //{
- // var currentclients = S.GetClientsAsList(); //GetActiveClients();
- // foreach (EFClient client in currentclients)
- // {
- // if (client.CurrentServer == S && client is object && client.ClientNumber != -1 && client.ClientNumber != 9)
- // {
- // var rank_player_var = await _metaService.GetPersistentMeta("rank", client);
- // rankName = client.Level.ClanTag(Config);
-
- // rank_player_var = await _metaService.GetPersistentMeta("rank", client);
- // if (rank_player_var == null)
- // {
- // await _metaService.AddPersistentMeta("rank", "none", client);
- // rank_player_var = await _metaService.GetPersistentMeta("rank", client);
- // }
-
- // 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 (client.CurrentServer == S && client is object && client.ClientNumber != -1 && client.ClientNumber != 9)
- // {
- // await S.SetDvarAsync("sv_iw4madmin_role", "setRole;" + client.ClientNumber.ToString() + ";" + rankName.ToString());
- // await S.ExecuteCommandAsync("setclantag" + " " + client.ClientNumber.ToString() + " " + rankName.ToString());
- // }
-
- // }
-
-
- // }
-
- //}
- //return Task.CompletedTask;
}
public Task OnTickAsync(Server S)// =>
{