private List <Mod> JsonToMods(string path) { JObject json = JObject.Parse(File.ReadAllText(path)); List <Mod> mods = new List <Mod>(); foreach (JObject obj in json["mods"].Children <JObject>()) { TinyMinecraftVersion ver = null; foreach (TinyMinecraftVersion v in VersionManager.versions) { if (v.Key == obj["version"].ToString()) { ver = v; break; } } mods.Add(new Mod( (Mod.ModType)Enum.Parse(typeof(Mod.ModType), obj["type"].ToString(), true), (Mod.ModLevel)Enum.Parse(typeof(Mod.ModLevel), obj["level"].ToString(), true), obj["name"].ToString(), obj["path"].ToString(), ver)); } return(mods); }
public Mod(ModType type, ModLevel level, string name, string path, TinyMinecraftVersion version) { this.type = type; this.level = level; this.name = name; this.path = path; this.version = version; }
private void lb_SelectionChanged(object sender, SelectionChangedEventArgs e) { if ((sender as ListBox).SelectedIndex != -1) { if (sender != lb_release) { lb_release.SelectedIndex = -1; } if (sender != lb_snapshot) { lb_snapshot.SelectedIndex = -1; } if (sender != lb_instance) { lb_instance.SelectedIndex = -1; } this.version = (((sender as ListBox).SelectedItem as ListBoxItem).Tag as TinyMinecraftVersion); } }
public TreeViewItem treeItem(Instance i) { TreeViewItem item = new TreeViewItem(); item.Header = "Mods"; item.MouseUp += onClick_root; ContextMenu cmr = new ContextMenu(); MenuItem mi_deleteAll = new MenuItem(); mi_deleteAll.Header = "Remove all mods"; mi_deleteAll.Click += delegate { throw new NotImplementedException(); }; cmr.Items.Add(mi_deleteAll); item.ContextMenu = cmr; List <Mod> mods = Main.GetModList(i); foreach (Mod mod in mods) { TreeViewItem modItem = new TreeViewItem(); modItem.Header = mod.name; modItem.Tag = mod; ContextMenu cm = new ContextMenu(); MenuItem item_delete = new MenuItem(); item_delete.Header = "Delete"; item_delete.Click += delegate { TinyMinecraftVersion version = i.Version; Mod.DeleteMod(mod, i); mods.Remove(mod); MCM.App.InvokeAction(delegate { MCM.App.mainWindow.UpdateInstances(); }); }; cm.Items.Add(item_delete); modItem.ContextMenu = cm; item.Items.Add(modItem); } return(item); }
void bt_Click(object sender, System.Windows.RoutedEventArgs e) { if (changingVersion) { MessageBox.ShowDialog("Warning", "The version is currently being changed/downloaded! Cannot change now!"); } else { ChangeMCVersion cv = new ChangeMCVersion(); if (cv.ShowDialog() == true) { this.changingVersion = true; TinyMinecraftVersion prevVer = this.Version; this.Version = cv.version; try { Task.Factory.StartNew(delegate { if (!File.Exists(cv.version.FullVersion.BinaryPath)) { Download dl = cv.version.FullVersion.ScheduleJarDownload(); PluginAPI.PluginManager.onVersionDownload(dl); DownloadPackage dp = new DownloadPackage("Libraries", true); dp.ShouldContinue = true; cv.version.FullVersion.Libraries.ForEach(l => { if (!File.Exists(l.Extractpath)) { l.ScheduleExtract(dp); } }); if (dp.getDownloads().Count > 0) { DownloadManager.ScheduleDownload(dp); } dl.WaitForComplete(); CopyJar(); App.InvokeAction(delegate { (App.mainWindow.listBox_instanceInfo.Items[0] as Label).Content = (this.Version == null ? "no version" : this.Version.Key); App.mainWindow.UpdateInstances(); }); this.changingVersion = false; } else { CopyJar(); App.InvokeAction(delegate { (App.mainWindow.listBox_instanceInfo.Items[0] as Label).Content = (this.Version == null ? "no version" : this.Version.Key); App.mainWindow.UpdateInstances(); }); this.changingVersion = false; } }); } catch (Exception ex) { MCM.Utils.MessageBox.ShowDialog("Error", "The selected version could not be changed because: " + ex.Message); this.Version = prevVer; (App.mainWindow.listBox_instanceInfo.Items[0] as Label).Content = (this.Version == null ? "no version" : this.Version.Key); App.mainWindow.UpdateInstances(); this.changingVersion = false; } } PluginManager.onChangeVersion(this); } }