Packages can be loaded/unloaded. IUnloadableService interface added whose method Unload, if service implements it, will be called when the module is unloaded.
This commit is contained in:
		| @@ -0,0 +1,31 @@ | ||||
| using NadekoBot.Services; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| using System.Linq; | ||||
| using System.Text.RegularExpressions; | ||||
|  | ||||
| namespace NadekoBot.Core.Modules.Administration.Services | ||||
| { | ||||
|     public class PackagesService : INService | ||||
|     { | ||||
|         public IEnumerable<string> Packages { get; private set; } | ||||
|  | ||||
|         public PackagesService() | ||||
|         { | ||||
|             ReloadAvailablePackages(); | ||||
|         } | ||||
|  | ||||
|         public void ReloadAvailablePackages() | ||||
|         { | ||||
|             Packages = Directory.GetDirectories(Path.Combine(AppContext.BaseDirectory, "modules\\"), "NadekoBot.Modules.*", SearchOption.AllDirectories) | ||||
|                    .SelectMany(x => Directory.GetFiles(x, "NadekoBot.Modules.*.dll")) | ||||
|                    .Select(x => Path.GetFileNameWithoutExtension(x)) | ||||
|                    .Select(x => | ||||
|                    { | ||||
|                        var m = Regex.Match(x, @"NadekoBot\.Modules\.(?<name>.*)"); | ||||
|                        return m.Groups["name"].Value; | ||||
|                    }); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user