private MLibrary createMLibrary(string?name, string?nativeId, bool require, JObject job) { string?path = job["path"]?.ToString(); if (string.IsNullOrEmpty(path) && !string.IsNullOrEmpty(name)) { path = PackageName.Parse(name).GetPath(nativeId); } var hash = job["sha1"] ?? job["checksums"]?[0]; long size = 0; string?sizeStr = job["size"]?.ToString(); if (!string.IsNullOrEmpty(sizeStr)) { long.TryParse(sizeStr, out size); } return(new MLibrary { Hash = hash?.ToString(), IsNative = !string.IsNullOrEmpty(nativeId), Name = name, Path = path, Size = size, Url = job["url"]?.ToString(), IsRequire = require }); }
public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config) { var credentialName = config["CredentialName"]; var feedName = config["FeedName"]; var packageName = config["PackageName"]; if (string.IsNullOrEmpty(credentialName) || string.IsNullOrEmpty(feedName) || string.IsNullOrEmpty(packageName)) { return(Enumerable.Empty <string>()); } ProGetClient client = null; var productCredentials = ResourceCredentials.TryCreate <InedoProductCredentials>(credentialName); if (productCredentials != null) { client = new ProGetClient(productCredentials.Host, feedName, "api", AH.Unprotect(productCredentials.ApiKey)); } #pragma warning disable CS0618 // Type or member is obsolete var credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName); #pragma warning restore CS0618 // Type or member is obsolete if (client == null) { client = new ProGetClient(credentials.Url, feedName, credentials.UserName, AH.Unprotect(credentials.Password)); } var package = await client.GetPackageInfoAsync(PackageName.Parse(packageName)); return(new[] { "latest", "latest-stable" }.Concat(package.versions)); }
private void startProcessor(JToken processor, Dictionary <string, string> mapData) { var name = processor["jar"]?.ToString(); if (name == null) { return; } // jar var jar = PackageName.Parse(name); var jarpath = Path.Combine(Minecraft.Library, jar.GetPath()); var jarfile = new JarFile(jarpath); var jarManifest = jarfile.GetManifest(); // mainclass string mainclass = null; var hasMainclass = jarManifest?.TryGetValue("Main-Class", out mainclass) ?? false; if (!hasMainclass || string.IsNullOrEmpty(mainclass)) { return; } // classpath var classpathObj = processor["classpath"]; var classpath = new List <string>(); if (classpathObj != null) { foreach (var libname in classpathObj) { var lib = Path.Combine(Minecraft.Library, PackageName.Parse(libname?.ToString()).GetPath()); classpath.Add(lib); } } classpath.Add(jarpath); // arg var argsArr = processor["args"] as JArray; string[] args = null; if (argsArr != null) { var arrStrs = argsArr.Select(x => x.ToString()).ToArray(); args = Mapper.Map(arrStrs, mapData, Minecraft.Library); } startJava(classpath.ToArray(), mainclass, args); }
public async Task <IEnumerable <string> > GetSuggestionsAsync(IComponentConfiguration config) { var credentialName = config["CredentialName"]; var feedName = config["FeedName"]; var packageName = config["PackageName"]; if (string.IsNullOrEmpty(credentialName) || string.IsNullOrEmpty(feedName) || string.IsNullOrEmpty(packageName)) { return(Enumerable.Empty <string>()); } var credentials = ResourceCredentials.Create <ProGetCredentials>(credentialName); var client = new ProGetClient(credentials.Url, feedName, credentials.UserName, ConvertValue(credentials.Password)); var package = await client.GetPackageInfoAsync(PackageName.Parse(packageName)); return(new[] { "latest" }.Concat(package.versions)); }
// for old installer private void extractUniversal(string installerPath, string universalPath, string destinyName) { fireEvent(MFile.Library, "universal", 1, 0); if (string.IsNullOrEmpty(universalPath) || string.IsNullOrEmpty(destinyName)) { return; } // copy universal library to minecraft var universal = Path.Combine(installerPath, universalPath); var desPath = PackageName.Parse(destinyName).GetPath(); var des = Path.Combine(Minecraft.Library, desPath); if (File.Exists(universal)) { Directory.CreateDirectory(Path.GetDirectoryName(des)); File.Copy(universal, des, true); } }
private static MLibrary createMLibrary(string name, string nativeId, bool require, JObject job) { var path = job["path"]?.ToString(); if (string.IsNullOrEmpty(path)) { path = PackageName.Parse(name).GetPath(nativeId); } var url = job["url"]?.ToString(); if (url == null) { url = MojangServer.Library + path; } else if (url == "") { url = null; } else if (url.Split('/').Last() == "") { url += path; } var hash = job["sha1"] ?? job["checksums"]?[0]; var library = new MLibrary(); library.Hash = hash?.ToString() ?? ""; library.IsNative = !string.IsNullOrEmpty(nativeId); library.Name = name; library.Path = path; library.Url = url; library.IsRequire = require; return(library); }
private void process(JArray processors, Dictionary <string, string> mapData) { if (processors == null || processors.Count == 0) { return; } fireEvent(MFile.Library, "processors", processors.Count, 0); for (int i = 0; i < processors.Count; i++) { var item = processors[i]; var name = item["jar"]?.ToString(); if (name == null) { continue; } var outputs = item["outputs"] as JObject; if (outputs != null) { var valid = true; foreach (var outitem in outputs) { var key = Mapper.Interpolation(outitem.Key, mapData); var value = Mapper.Interpolation(outitem.Value.ToString(), mapData); if (!File.Exists(key) || !IOUtil.CheckSHA1(key, value)) { valid = false; break; } } if (valid) // skip processing if already done { fireEvent(MFile.Library, "processors", processors.Count, i + 1); continue; } } // jar var jar = PackageName.Parse(name); var jarpath = Path.Combine(Minecraft.Library, jar.GetPath()); var jarfile = new JarFile(jarpath); var jarManifest = jarfile.GetManifest(); // mainclass string mainclass = null; var hasMainclass = jarManifest?.TryGetValue("Main-Class", out mainclass) ?? false; if (!hasMainclass || string.IsNullOrEmpty(mainclass)) { continue; } // classpath var classpathObj = item["classpath"]; var classpath = new List <string>(); if (classpathObj != null) { foreach (var libname in classpathObj) { var lib = Path.Combine(Minecraft.Library, PackageName.Parse(libname?.ToString()).GetPath()); classpath.Add(lib); } } classpath.Add(jarpath); // arg var argsArr = item["args"] as JArray; string[] args = null; if (argsArr != null) { var arrStrs = argsArr.Select(x => x.ToString()).ToArray(); args = Mapper.Map(arrStrs, mapData, Minecraft.Library); } startJava(classpath.ToArray(), mainclass, args); fireEvent(MFile.Library, "processors", processors.Count, i + 1); } }