예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }