Example #1
0
            internal void Load(Command.List commands, out string error)
            {
                groups.Clear();
                standard = null;
                int loaded = 0;
                int failed = 0;
                int cursor = Console.CursorLeft;

                error = null;
                if (!Directory.Exists("groups"))
                {
                    return;
                }
                foreach (string file in Directory.GetFiles("groups", "*." + host.Extension))
                {
                    string name  = file.Substring(7, file.Length - host.Extension.Length - 8);
                    Group  group = Group.Load(commands, name);
                    if (group == null)
                    {
                        failed++;
                    }
                    else
                    {
                        if (group.standard)
                        {
                            if (standard != null)
                            {
                                error = "More than one standard group specified.";
                            }
                            else
                            {
                                standard = group;
                            }
                        }
                        loaded++;
                        groups.Add(group.name.ToLower(), group);
                    }
                    Console.Write((loaded < 0?-loaded:loaded) + " group" + (loaded == 1?"":"s") + " loaded" + (failed == 0?"":" (" + failed + " failed)") + ".");
                    Console.CursorLeft = cursor;
                }
                Console.Write((loaded < 0?-loaded:loaded) + " group" + (loaded == 1?"":"s") + " loaded" + (failed == 0?"":" (" + failed + " failed)") + ".");
                if (loaded == 0)
                {
                    error = "No groups loaded.";
                }
                else if (standard == null)
                {
                    error = "No standard group specified.";
                }
            }