public static ServerValidationInfo ValidateServerDirectory(DirectoryInfo dirInfo)
        {
            ServerValidationInfo serverValInfo = new ServerValidationInfo();

            if (dirInfo == null || !dirInfo.Exists)
            {
                return(serverValInfo);
            }

            foreach (DirectoryInfo directory in dirInfo.EnumerateDirectories())
            {
                WorldValidationInfo info = ValidateWorldDirectory(directory);
                if (info.IsValid)
                {
                    serverValInfo.Worlds.Add(info);
                }
            }

            foreach (FileInfo file in dirInfo.EnumerateFiles())
            {
                string name = file.Name;
                if (name.Equals("server.properties"))
                {
                    serverValInfo.ServerProperties = true;
                }
                else if (name.Equals("eula.txt"))
                {
                    serverValInfo.EulaTxt = true;
                }
                else if (name.Equals("whitelist.json") || name.Equals("white-list.txt"))
                {
                    serverValInfo.Whitelist = true;
                }
                else if (name.Equals("ops.json") || name.Equals("ops.txt"))
                {
                    serverValInfo.Ops = true;
                }
                else if (name.Equals("banned-ips.json") || name.Equals("banned-players.json") ||
                         name.Equals("banned-ips.txt") ||
                         name.Equals("banned-players.txt"))
                {
                    serverValInfo.Banlist = true;
                }
                else if (name.Equals("bukkit.yml"))
                {
                    serverValInfo.BukkitYml = true;
                }
                else if (name.Equals("paper.yml"))
                {
                    serverValInfo.PaperYml = true;
                }
                else if (name.Equals("spigot.yml"))
                {
                    serverValInfo.SpigotYml = true;
                }
            }

            return(serverValInfo);
        }
        public static WorldValidationInfo ValidateWorldDirectory(DirectoryInfo dirInfo)
        {
            WorldValidationInfo worldValInfo = new WorldValidationInfo();

            if (dirInfo == null || !dirInfo.Exists)
            {
                return(worldValInfo);
            }

            worldValInfo.Name = dirInfo.Name;

            foreach (DirectoryInfo dir in dirInfo.EnumerateDirectories())
            {
                if (dir.Name.Equals("data"))
                {
                    worldValInfo.Data = true;
                }
                else if (dir.Name.Equals("region"))
                {
                    worldValInfo.Region = true;
                }
                else if (dir.Name.Equals("players") || dir.Name.Equals("playerdata"))
                {
                    worldValInfo.PlayerInfo = true;
                }
            }

            foreach (FileInfo file in dirInfo.EnumerateFiles())
            {
                if (file.Name.Equals("level.dat"))
                {
                    worldValInfo.LevelDat = true;
                }
                else if (file.Name.Equals("session.lock"))
                {
                    worldValInfo.SessionLock = true;
                }
            }

            return(worldValInfo);
        }