/// <summary> /// Get a list of all available server types /// </summary> /// <returns></returns> private static Dictionary <string, Type> GetAvailableAddons() { List <Type> unsortedAddons = new List <Type>(); Dictionary <string, Type> addons = new Dictionary <string, Type>(); // Get unsorted list of all addons foreach ( Type addon in DynamicModuleLoader.ListClassesRecursiveOfType <IAddon>("Net.Bertware.Bukkitgui2.AddOn")) { unsortedAddons.Add(addon); } unsortedAddons.Sort((t1, t2) => { IAddon a1 = (IAddon)Activator.CreateInstance(t1); IAddon a2 = (IAddon)Activator.CreateInstance(t2); return(a2.Priority.CompareTo(a1.Priority)); }); foreach (Type addon in unsortedAddons) { if (!addons.ContainsKey(addon.Name)) { addons.Add(addon.Name, addon); } } Logger.Log(LogLevel.Info, "AddonManager", "Found " + addons.Count + " available addons"); return(addons); }
/// <summary> /// Get a list of all available server types /// </summary> /// <returns></returns> private static Dictionary <string, Type> GetAvailableAddons() { Dictionary <string, Type> addons = new Dictionary <string, Type>(); foreach ( Type addon in DynamicModuleLoader.ListClassesRecursiveOfType <IAddon>("Net.Bertware.Bukkitgui2.AddOn")) { if (!addons.ContainsKey(addon.Name)) { addons.Add(addon.Name, addon); } } Logger.Log(LogLevel.Info, "AddonManager", "Found " + addons.Count + " available addons"); return(addons); }
/// <summary> /// Get a list of all available server types /// </summary> /// <returns></returns> internal static Dictionary <string, IMinecraftServer> GetAvailableServers() { Dictionary <string, IMinecraftServer> servers = new Dictionary <string, IMinecraftServer>(); foreach ( IMinecraftServer server in DynamicModuleLoader.GetClassesOfType <IMinecraftServer>( "Net.Bertware.Bukkitgui2.MinecraftServers.Servers")) { if (!servers.ContainsKey(server.Name)) { servers.Add(server.Name, server); } else { Logger.Log( LogLevel.Severe, "MinecraftServerLoader", "Can't add server to dictionary, duplicate name!", server.Name); } } return(servers); }