예제 #1
0
 public JSoreFileItemInfo(FileInfo file)
 {
     _info    = new JFileInfo(file);
     _length  = file.Length;
     _path    = file.Directory.FullName;
     _filters = new List <IJFilter>();
     // Create the view data
     fileName = file.Name;
 }
예제 #2
0
        public static IEnumerable <DownloadInfo> GetLostEssentials(Version version)
        {
            var lostEssentials = new List <DownloadInfo>();

            var JarPath = $"{YingApp.YCore.GameRootPath}\\versions\\{version.JarId}\\{version.JarId}.jar";

            if (!File.Exists(JarPath))
            {
                lostEssentials.Add(new DownloadInfo
                {
                    Path = JarPath,
                    Url  = BaseUrl.VersionBaseUrl + version.Downloads.Client.Url.Substring(28),
                    Size = version.Downloads.Client.Size,
                });
            }

            /*foreach (var lib in version.Libraries)
             * {
             *  JFileInfo yinfo = lib.YDownloadInfo.Artifact;
             *  var absolutePath = $"{YingApp.YCore.GameRootPath}\\libraries\\{yinfo.Path}";
             *  if (!File.Exists(absolutePath))
             *  {
             *      lostEssentials.Add(new DownloadInfo
             *      {
             *          Path = absolutePath,
             *          Url = (lib.IsForgeLib) ? (BaseUrl.MavenBaseUrl + yinfo.Path) : (BaseUrl.LibraryBaseUrl + yinfo.Path),
             *          Size = yinfo.Size,
             *      });
             *  }
             * }*/

            foreach (var ylibrary in version.Libraries)
            {
                if (!ylibrary.isYForgeLib)
                {
                    JFileInfo yinfo        = ylibrary.YDownloadInfo.Artifact;
                    var       absolutePath = $"{YingApp.YCore.GameRootPath}\\libraries\\{yinfo.Path}";
                    if (!File.Exists(absolutePath))
                    {
                        lostEssentials.Add(new DownloadInfo
                        {
                            Path = absolutePath,
                            Url  = BaseUrl.LibraryBaseUrl + yinfo.Path,
                            Size = yinfo.Size,
                        });
                    }
                }
                else
                {
                    //"name": "net.minecraft:launchwrapper:1.12",
                    //https://bmclapi2.bangbang93.com/maven/net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar
                    //string[] ytemp = ylibrary.NS.Split(':');

                    string ypath        = $"{ylibrary.NS.Replace(".", "/")}/{ylibrary.Name}/{ylibrary.Version}/{ylibrary.Name}-{ylibrary.Version}.jar";
                    var    absolutePath = $"{YingApp.YCore.GameRootPath}\\libraries\\{ypath}";
                    if (!File.Exists(absolutePath))
                    {
                        lostEssentials.Add(new DownloadInfo
                        {
                            Path = absolutePath,
                            Url  = BaseUrl.MavenBaseUrl + ypath,
                        });
                    }
                }
            }

            foreach (var ynative in version.Natives)
            {
                JFileInfo yinfo        = ynative.YDownloadInfo.Classifiers["natives-windows"];
                var       absolutePath = YingApp.YCore.GetNativePath(ynative);//$"{YingApp.YCore.GameRootPath}\\libraries\\{native.Path}";
                if (!File.Exists(absolutePath))
                {
                    lostEssentials.Add(new DownloadInfo
                    {
                        Path = absolutePath,
                        Url  = BaseUrl.LibraryBaseUrl + yinfo.Path,
                        Size = yinfo.Size,
                    });
                }
            }
            return(lostEssentials);
        }