Beispiel #1
0
        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);
        }
Beispiel #2
0
 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);
     }
 }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
            }
        }