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)// => {