private void UpdateProjectClick(object sender, EventArgs e)
 {
     if (CurrentProject != null)
     {
         NewProjectMenu.SetupVersions();
         bool updatedForgeVersion = UpdateProject(NewProjectMenu.Versions[CurrentProject.mcVersion].First(), true);
         bool updateMCPMapping    = UpdateProjectMCP(true);
         if (updatedForgeVersion || updateMCPMapping)
         {
             SetupProject(" --refresh-dependencies");
         }
     }
     else
     {
         MessageBox.Show("Please open a project!", "No open project", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
示例#2
0
 public FMB()
 {
     ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
     InitializeComponent();       //Create the default form stuff
     Resize += ResizeWindow;      //To allow for window resizing
     SetupLayout();               //Setup the layout of the form
     UpdateProjects(false, true); //Receive the projects from the projects.json file
     UpdateOptions(false, true);  //Receive the options from the options.json file
     FormClosed += FMBClosed;     //Handle when the form closes
     optionsToolStripMenuItem.DropDown.Closing += (sender, e) => {
         if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
         {
             e.Cancel = true;
         }
         else
         {
             Dictionary <string, bool> checkVersions = new Dictionary <string, bool>();
             foreach (ToolStripMenuItem dropDownItem in SelectVersionsToCheckMenuItem.DropDownItems)
             {
                 checkVersions.Add(dropDownItem.Text, dropDownItem.Checked);
             }
             if (Options.ContainsKey("sync_versions"))
             {
                 Options["sync_versions"] = checkVersions;
             }
             else
             {
                 Options.Add("sync_versions", checkVersions);
             }
             UpdateOptions(true, false);
         }
     };
     SelectVersionsToCheckMenuItem.DropDown.Closing += (sender, e) => {
         if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
         {
             e.Cancel = true;
         }
     };
     Load += (sender, e) =>
     {
         UpdateChecker.CheckForUpdates(UpdateChecker.UpdateURL); //When it loads the form, check for updates
         AddBuildFileText("No project loaded");
         BuildFile.ReadOnly = true;
         NewProjectMenu.SetupVersions();
     };
 }
        //Update the projects in the file or in the variable
        public void UpdateProjects(bool saveFile, bool readFromFile)
        {
            if (saveFile)                          //If you want to save
            {
                if (File.Exists(ProjectsFilePath)) //Make sure the file exists
                {
                    JsonSerializer js = new JsonSerializer();
                    js.NullValueHandling = NullValueHandling.Ignore;
                    using (StreamWriter sw = new StreamWriter(ProjectsFilePath))
                        using (JsonWriter jw = new JsonTextWriter(sw))
                        {
                            js.Serialize(jw, Projects); //Write all the data in Projects to the file
                        }
                }
                else //The file does not exist so create it
                {
                    if (!Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/ForgeModBuilder")) //Does the folder not exist?
                    {
                        Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/ForgeModBuilder"); //Create the folder
                    }
                    File.Create(ProjectsFilePath).Dispose();
                    UpdateProjects(saveFile, readFromFile); //Recall the method now that it can find the file
                }
            }
            if (readFromFile)                      //If you want to read data from the file
            {
                if (File.Exists(ProjectsFilePath)) //Make srue the file exists
                {
                    JsonSerializer js = new JsonSerializer();
                    js.NullValueHandling = NullValueHandling.Ignore;
                    using (StreamReader sr = new StreamReader(ProjectsFilePath))
                        using (JsonReader jr = new JsonTextReader(sr))
                        {
                            Projects = js.Deserialize <List <Project> >(jr); //Read the projects
                        }
                    if (Projects == null)
                    {
                        Projects = new List <Project>(); //If the file was empty, initialise Projects to a blank list
                    }
                }
                else //If the file did not exist
                {
                    if (!Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/ForgeModBuilder")) //Does the folder not exist?
                    {
                        Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/ForgeModBuilder"); //Create the folder
                    }
                    File.Create(ProjectsFilePath).Dispose();
                    UpdateProjects(saveFile, readFromFile); //Recall the method now that it can find the file
                }
            }

            //Clear all the menu items which allow you to load that project and run the action as well
            OpenProjectMenuItem.DropDownItems.Clear();
            BuildProjectMenuItem.DropDownItems.Clear();
            SetupProjectMenuItem.DropDownItems.Clear();
            UpdateProjectMenuItem.DropDownItems.Clear();
            ChangeProjectVersionMenuItem.DropDownItems.Clear();
            RefreshProjectMenuItem.DropDownItems.Clear();
            foreach (Project p in Projects) //Add a dropdown for each project
            {
                ToolStripMenuItem i = new ToolStripMenuItem(p.path);
                i.Click += (sender, e) =>
                {
                    if (CurrentProject != p)
                    {
                        OpenProject(p.path); //Make it open the current project if it is not already open
                    }
                };
                OpenProjectMenuItem.DropDownItems.Add(i);
                i        = new ToolStripMenuItem(p.path);
                i.Click += (sender, e) =>
                {
                    if (CurrentProject != p)
                    {
                        OpenProject(p.path); //Make it open the current project if it is not already open
                    }
                    BuildProject();
                };
                BuildProjectMenuItem.DropDownItems.Add(i);
                i        = new ToolStripMenuItem(p.path);
                i.Click += (sender, e) =>
                {
                    if (CurrentProject != p)
                    {
                        OpenProject(p.path); //Make it open the current project if it is not already open
                    }
                    SetupProject("");
                };
                SetupProjectMenuItem.DropDownItems.Add(i);
                i        = new ToolStripMenuItem(p.path);
                i.Click += (sender, e) =>
                {
                    if (CurrentProject != p)
                    {
                        OpenProject(p.path); //Make it open the current project if it is not already open
                    }
                    NewProjectMenu.SetupVersions();
                    UpdateProject(NewProjectMenu.Versions[CurrentProject.mcVersion].First(), true);
                };
                UpdateProjectMenuItem.DropDownItems.Add(i);
                i        = new ToolStripMenuItem(p.path);
                i.Click += (sender, e) =>
                {
                    if (CurrentProject != p)
                    {
                        OpenProject(p.path); //Make it open the current project if it is not already open
                    }
                    ChangeProjectVersionMenu.ShowChangeProjectVersionMenu();
                };
                ChangeProjectVersionMenuItem.DropDownItems.Add(i);
                i        = new ToolStripMenuItem(p.path);
                i.Click += (sender, e) =>
                {
                    if (CurrentProject != p)
                    {
                        OpenProject(p.path); //Make it open the current project if it is not already open
                    }
                    RefreshProject();
                };
                RefreshProjectMenuItem.DropDownItems.Add(i);
            }
        }
 private void CheckVersionsMenuItem_Click(object sender, EventArgs e)
 {
     NewProjectMenu.Sync = true;
     NewProjectMenu.SetupVersions();
 }
 public ChangeProjectVersionMenu()
 {
     InitializeComponent();
     NewProjectMenu.SetupVersions();
     LoadVersions();
 }
示例#6
0
 private void UpdateProjectClick(object sender, EventArgs e)
 {
     NewProjectMenu.SetupVersions();
     UpdateProject(NewProjectMenu.Versions[CurrentProject.mcVersion].First(), true);
 }