Ejemplo n.º 1
0
        private void cmdChooseZip_Click(object sender, EventArgs e)
        {
            OpenZip.CheckFileExists = true;

            OpenZip.ShowDialog();
            if (File.Exists(OpenZip.FileName))
            {
                lblPath.Text = OpenZip.FileName;
                var result = CheckZip.Check(OpenZip.FileName);
                lblMessage.ForeColor = Color.Black;
                lblMessage.BackColor = this.BackColor;
                lblMessage.Font      = new Font(lblMessage.Font.Name, 8.25f, FontStyle.Regular);
                switch (result)
                {
                case CheckZip.EvalResult.Incompatible:
                    lblMessage.Text = "This Zip file is not compatible with the game's Zip support.";
                    return;

                case CheckZip.EvalResult.Invalid:
                    lblMessage.Text = "This file does not appear to be a valid Zip file.";
                    return;

                case CheckZip.EvalResult.Optimized:
                    lblMessage.Text = "This file is an Optimized Archive (.dat).";
                    return;

                case CheckZip.EvalResult.Unsafe:
                    lblMessage.Text      = "This Archive WILL overflow the buffer, and may execute code.";
                    lblMessage.ForeColor = Color.Red;
                    lblMessage.BackColor = Color.Black;
                    lblMessage.Font      = new Font(lblMessage.Font.Name, lblMessage.Font.Size + 5, FontStyle.Bold);
                    return;

                case CheckZip.EvalResult.Valid:
                    lblMessage.Text = "This Archive is safe to use in the game.";
                    return;
                }
            }
            else
            {
                //The user probably clicked Cancel. It's all good.
            }
        }
Ejemplo n.º 2
0
        private void Install_Click(object sender, EventArgs e)
        {
            Hide();
            var pluginLocation    = Path.Combine(_server, "Rocket", "Plugins");
            var librariesLocation = Path.Combine(_server, "Rocket", "Libraries");
            var moduleLocation    = Path.Combine(ServerPath.Value, "Modules");

            var tempName     = Path.GetTempFileName();
            var tempLocation = Path.Combine(Path.GetTempPath(), tempName.Substring(0, tempName.Length - 4));

            var result = OpenZip.ShowDialog();

            if (result == DialogResult.OK)
            {
                var stream = (FileStream)OpenZip.OpenFile();
                FileActions.ExtractZip(stream.Name, tempLocation);

                var tempLibraries = Path.Combine(tempLocation, "Libraries");
                if (FileActions.VerifyPath(tempLibraries, false))
                {
                    var folder  = new DirectoryInfo(tempLibraries);
                    var content = folder.GetFiles("*.dll", SearchOption.TopDirectoryOnly);
                    foreach (var file in content)
                    {
                        var dest = Path.Combine(librariesLocation, file.Name);

                        if (File.Exists(dest))
                        {
                            File.Delete(dest);
                        }

                        FileActions.VerifyFilePath(dest, true);
                        file.MoveTo(dest);
                    }
                }

                var tempPlugins = Path.Combine(tempLocation, "Plugins");
                if (FileActions.VerifyPath(tempPlugins, false))
                {
                    var folder  = new DirectoryInfo(tempPlugins);
                    var content = folder.GetFiles("*.dll", SearchOption.TopDirectoryOnly);
                    foreach (var file in content)
                    {
                        var dest = Path.Combine(pluginLocation, file.Name);

                        if (File.Exists(dest))
                        {
                            File.Delete(dest);
                        }

                        FileActions.VerifyFilePath(dest, true);
                        file.MoveTo(dest);
                    }
                }

                var tempModules = Path.Combine(tempLocation, "Modules");
                if (FileActions.VerifyPath(tempModules, false))
                {
                    var folder  = new DirectoryInfo(tempModules);
                    var content = folder.GetFiles("*.dll", SearchOption.TopDirectoryOnly);
                    foreach (var file in content)
                    {
                        var dest = Path.Combine(moduleLocation, file.Name);

                        if (File.Exists(dest))
                        {
                            File.Delete(dest);
                        }

                        FileActions.VerifyFilePath(dest, true);
                        file.MoveTo(dest);
                    }
                }
            }

            LoadInstalled();
            Show();
        }
Ejemplo n.º 3
0
 private void AddZipClauseMenuClick(object sender, EventArgs e)
 {
     ShowFileDialog(this.archiveConstraint);
     OpenZip?.Invoke(sender, e);
 }