diff --git a/ClanTag.cs b/ClanTag.cs index 238a012..a1f9de8 100644 --- a/ClanTag.cs +++ b/ClanTag.cs @@ -11,9 +11,9 @@ namespace ClanTagRankCommands public static string Truncate(this string input, int strLength) { if (string.IsNullOrEmpty(input)) return input; - return input.Length <= strLength ? input : input.Substring(0, strLength); + return input.Length <= strLength ? input : input[..strLength]; } - public static string ClanTag(this EFClient.Permission level, Configuration Config) + public static string ClanTag(this EFClient.Permission level, ClanTagConfiguration Config) { string rankName; diff --git a/ClanTagRankCommands.csproj b/ClanTagRankCommands.csproj index d8a827f..b4d204d 100644 --- a/ClanTagRankCommands.csproj +++ b/ClanTagRankCommands.csproj @@ -16,7 +16,7 @@ - + diff --git a/Commands/SetRankCommand.cs b/Commands/SetRankCommand.cs index a7b7e90..04a6ced 100644 --- a/Commands/SetRankCommand.cs +++ b/Commands/SetRankCommand.cs @@ -19,20 +19,20 @@ namespace ClanTagRankCommands.Commands readonly string rank = "rank"; string rank_string; private readonly IMetaServiceV2 _metaService; - private readonly IConfigurationHandler _configurationHandler; - private Configuration Config; + //private readonly IConfigurationHandler _configurationHandler; + private ClanTagConfiguration Config; - public SetRankCommand(CommandConfiguration config, ITranslationLookup lookup, IMetaServiceV2 metaService, IConfigurationHandlerFactory configurationHandlerFactory) : base(config, lookup) + public SetRankCommand(CommandConfiguration config, ITranslationLookup lookup, ClanTagConfiguration _Config, 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(); + //_configurationHandler = configurationHandlerFactory.GetConfigurationHandler("ClanTagRankCommands"); + //if (_configurationHandler.Configuration() == null) + //{ + // _configurationHandler.Set((ClanTagConfiguration)new ClanTagConfiguration().Generate()); + // _configurationHandler.Save(); + //} + Config = _Config; Name = "SetRank"; Description = "set a user's clan tag Rank (does not give permissions)"; @@ -49,7 +49,7 @@ namespace ClanTagRankCommands.Commands }; } - public override async Task ExecuteAsync(GameEvent E) + public override async Task ExecuteAsync(GameEvent E ) { //var S = E.Owner; rank_string = "none"; diff --git a/Configuration.cs b/Configuration.cs index d871d20..aff7741 100644 --- a/Configuration.cs +++ b/Configuration.cs @@ -3,7 +3,7 @@ using SharedLibraryCore.Interfaces; namespace ClanTagRankCommands { - public class Configuration : IBaseConfiguration + public class ClanTagConfiguration : IBaseConfiguration { internal const string _name = "IW4MAdmin"; diff --git a/Plugin.cs b/Plugin.cs index 4860fb2..b68c267 100644 --- a/Plugin.cs +++ b/Plugin.cs @@ -4,25 +4,28 @@ using System.Threading.Tasks; using System.Threading; using SharedLibraryCore.Database.Models; using SharedLibraryCore.Helpers; - +using SharedLibraryCore.Commands; +using SharedLibraryCore.Events.Management; +using SharedLibraryCore.Interfaces.Events; +using Microsoft.Extensions.DependencyInjection; using System.Collections.Generic; using Microsoft.Extensions.Logging; using ILogger = Microsoft.Extensions.Logging.ILogger; using Data.Models; using System; -using SharedLibraryCore.Commands; using JsonSerializer = System.Text.Json.JsonSerializer; using System.Linq; using Serilog.Core; +using EFClient = Data.Models.Client.EFClient; namespace ClanTagRankCommands { - public class Plugin : IPlugin + public class Plugin : IPluginV2 { - private readonly IConfigurationHandler _configurationHandler; + //private readonly IConfigurationHandler _configurationHandler; private readonly ILogger _logger; - private Configuration Config; + //private ClanTagConfiguration Config; //readonly string rank = "rank"; //string rankName = "none"; private readonly IInteractionRegistration _interactionRegistration; @@ -34,33 +37,40 @@ namespace ClanTagRankCommands public string Name => "ClanTagRankCommands"; - public float Version => 1.5f; + //public float Version => 1.5f; public string Author => "INSANEMODE"; + string IModularAssembly.Version => "2.0"; + private readonly IMetaServiceV2 _metaService; public static string DonatorKey = "IW4MDonator"; public static DataManager DataManager; - public Plugin(IMetaServiceV2 metaService, IConfigurationHandlerFactory configurationHandlerFactory, ILogger logger, IInteractionRegistration interactionRegistration, IRemoteCommandService remoteCommandService) + public Plugin(IMetaServiceV2 metaService, ClanTagConfiguration Config, ILogger logger, IInteractionRegistration interactionRegistration, IRemoteCommandService remoteCommandService) { + IManagementEventSubscriptions.Load += OnLoad; _remoteCommandService = remoteCommandService; _logger = logger; _metaService = metaService; - _configurationHandler = (IConfigurationHandler)configurationHandlerFactory.GetConfigurationHandler("ClanTagRankCommands"); + //_configurationHandler = (IConfigurationHandler)configurationHandlerFactory.GetConfigurationHandler("ClanTagRankCommands"); _interactionRegistration = interactionRegistration; DataManager = new DataManager(metaService, logger); } - public Task OnLoadAsync(IManager manager)// => Task.CompletedTask; + public static void RegisterDependencies(IServiceCollection serviceCollection) { - if (_configurationHandler.Configuration() == null) - { - _configurationHandler.Set((Configuration)new Configuration().Generate()); - _configurationHandler.Save(); - } - Config = _configurationHandler.Configuration(); + serviceCollection.AddConfiguration("ClanTagRankCommands"); + } + private Task OnLoad(IManager manager, CancellationToken token) + { + //if (_configurationHandler.Configuration() == null) + //{ + // _configurationHandler.Set((ClanTagConfiguration)new ClanTagConfiguration().Generate()); + // _configurationHandler.Save(); + //} + //Config = _configurationHandler.Configuration(); string version = manager.Version; string str = string.Format("Loaded {0} ({1}) by {2} in {3} ({4})!", (object)((IPlugin)this).Name, (object)((IPlugin)this).Version, (object)((IPlugin)this).Author, (object)"IW4MAdmin", (object)version); _logger.LogInformation(str); @@ -91,7 +101,7 @@ namespace ClanTagRankCommands { "Name", "Set Donator rank" }, { "ShouldRefresh", true.ToString() } }, - MinimumPermission = Data.Models.Client.EFClient.Permission.Administrator, + MinimumPermission = EFClient.Permission.Administrator, Source = Name, Enabled = true, PermissionAccess = "read", @@ -112,7 +122,7 @@ namespace ClanTagRankCommands { "Name", "UnSet Donator rank" }, { "ShouldRefresh", true.ToString() } }, - MinimumPermission = Data.Models.Client.EFClient.Permission.Administrator, + MinimumPermission = EFClient.Permission.Administrator, Source = Name, Enabled = true, PermissionAccess = "read", @@ -161,7 +171,7 @@ namespace ClanTagRankCommands { "Name", "Temporarily invite guest to donator server" }, { "ShouldRefresh", true.ToString() } }, - MinimumPermission = Data.Models.Client.EFClient.Permission.Trusted, + MinimumPermission = EFClient.Permission.Trusted, Source = Name, Enabled = true, PermissionAccess = "read", @@ -182,7 +192,7 @@ namespace ClanTagRankCommands { "Name", "Cancel guest invite" }, { "ShouldRefresh", true.ToString() } }, - MinimumPermission = Data.Models.Client.EFClient.Permission.Trusted, + MinimumPermission = EFClient.Permission.Trusted, Source = Name, Enabled = true, PermissionAccess = "read", @@ -222,7 +232,7 @@ namespace ClanTagRankCommands } public static class yadb { - public static Task notifyYADB(string message, string title, string reason, string icon, Server S, EFClient OriginClient, EFClient TargetClient) + public static Task notifyYADB(string message, string title, string reason, string icon, Server S, SharedLibraryCore.Database.Models.EFClient OriginClient, SharedLibraryCore.Database.Models.EFClient TargetClient) { string json = ""; using (var stream = new System.IO.MemoryStream())