-change to IpluginV2

-change version
-change to event system
-change config
-to use RegisterDependencies
This commit is contained in:
INSANEMODE 2023-04-07 22:57:28 -05:00
parent ac5bd03f3d
commit 231f77bc77
5 changed files with 45 additions and 35 deletions

View File

@ -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;

View File

@ -16,7 +16,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="RaidMax.IW4MAdmin.SharedLibraryCore" Version="2022.10.13.1" PrivateAssets="All" />
<PackageReference Include="RaidMax.IW4MAdmin.SharedLibraryCore" Version="2023.4.5.1" PrivateAssets="All" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">

View File

@ -19,20 +19,20 @@ namespace ClanTagRankCommands.Commands
readonly string rank = "rank";
string rank_string;
private readonly IMetaServiceV2 _metaService;
private readonly IConfigurationHandler<Configuration> _configurationHandler;
private Configuration Config;
//private readonly IConfigurationHandler<ClanTagConfiguration> _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<Configuration>("ClanTagRankCommands");
if (_configurationHandler.Configuration() == null)
{
_configurationHandler.Set((Configuration)new Configuration().Generate());
_configurationHandler.Save();
}
Config = _configurationHandler.Configuration();
//_configurationHandler = configurationHandlerFactory.GetConfigurationHandler<ClanTagConfiguration>("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";

View File

@ -3,7 +3,7 @@ using SharedLibraryCore.Interfaces;
namespace ClanTagRankCommands
{
public class Configuration : IBaseConfiguration
public class ClanTagConfiguration : IBaseConfiguration
{
internal const string _name = "IW4MAdmin";

View File

@ -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<Configuration> _configurationHandler;
//private readonly IConfigurationHandler<ClanTagConfiguration> _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<Plugin> logger, IInteractionRegistration interactionRegistration, IRemoteCommandService remoteCommandService)
public Plugin(IMetaServiceV2 metaService, ClanTagConfiguration Config, ILogger<Plugin> logger, IInteractionRegistration interactionRegistration, IRemoteCommandService remoteCommandService)
{
IManagementEventSubscriptions.Load += OnLoad;
_remoteCommandService = remoteCommandService;
_logger = logger;
_metaService = metaService;
_configurationHandler = (IConfigurationHandler<Configuration>)configurationHandlerFactory.GetConfigurationHandler<Configuration>("ClanTagRankCommands");
//_configurationHandler = (IConfigurationHandler<ClanTagConfiguration>)configurationHandlerFactory.GetConfigurationHandler<ClanTagConfiguration>("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<ClanTagConfiguration>("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())