Exemplo n.º 1
0
 private void ListeMods(object sender, RoutedEventArgs e)
 {
     if (!File.Exists("config.xml"))
     {
         XmlTextWriter writer = new XmlTextWriter("config.xml", System.Text.Encoding.UTF8);
         writer.WriteStartDocument();
         writer.Formatting  = Formatting.Indented;
         writer.Indentation = 2;
         writer.WriteStartElement("config");
         writer.WriteStartElement("Java");
         writer.WriteStartElement("Min");
         writer.WriteString("1024");
         writer.WriteEndElement();
         writer.WriteStartElement("Max");
         writer.WriteString("4096");
         writer.WriteEndElement();
         writer.WriteStartElement("Perm");
         writer.WriteString("256");
         writer.WriteEndElement();
         writer.WriteStartElement("Path");
         writer.WriteString("");
         writer.WriteEndElement();
         writer.WriteEndElement();
         writer.WriteStartElement("Server");
         writer.WriteStartElement("Url");
         writer.WriteString("http://mcpatch.more-salt-plz.fr/Client/");
         writer.WriteEndElement();
         writer.WriteEndElement();
         writer.WriteEndElement();
         writer.WriteEndDocument();
         writer.Close();
         string appPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
         Config.Source = new Uri(appPath + @"\config.xml");
     }
     if (ServeurModPack.Text != null)
     {
         string      xml1   = Directory.GetCurrentDirectory() + @"\" + @"ModpackList.xml";
         XmlDocument config = new XmlDocument();
         config.Load("config.xml");
         XmlNodeList url = config.GetElementsByTagName("Url");
         UpdateMinecraft.TelechargementFichiers(xml1, string.Concat(url[0].InnerText, @"modpack/", "ModpackList.xml"));
         string appPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
         ModpackList.Source = new Uri(appPath + @"\ModpackList.xml");
     }
     else
     {
         MessageBox.Show(
             "Il semblerait que vous n'avez pas renseigné le serveur ! Supprimer le fichier config.xml et relancez l'application pour le régénérer",
             "Une erreur s'est produite",
             MessageBoxButton.OK, (Style)Resources["MessageBoxStyle1"]);
     }
 }
Exemplo n.º 2
0
        private void LancerMinecraft(object sender, RoutedEventArgs e)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(LoginTextBox.Text))
                {
                    MessageBox.Show("Le champ pour l'adresse mail ne peut pas être vide !", "Erreur");
                }
                else if (string.IsNullOrWhiteSpace(PasswordBox.Password))
                {
                    MessageBox.Show("Le champ pour le mot de passe ne peut pas être vide !", "Erreur");
                }
                else
                {
                    UpdateGb.Visibility = Visibility.Visible;
                    DoEvents();
                    UpdateMinecraft pb = new UpdateMinecraft(ModPack.Text, ServeurModPack.Text);
                    if (!pb.GetVersion())
                    {
                        UpdateGb.Visibility = Visibility.Hidden;
                        return;
                    }
                    UpdateGb.Visibility = Visibility.Hidden;
                    _session.PlayerName = LoginTextBox.Text;
                    ConnexionMinecraft.LoginResult result = ConnexionMinecraft.GetLogin(_session.PlayerName, PasswordBox.Password, out _session);
                    switch (result)
                    {
                    case ConnexionMinecraft.LoginResult.Success:
                        string   librairies        = string.Empty;
                        string   versionMinecraft  = string.Empty;
                        string   versionAssets     = string.Empty;
                        string   forgeClass        = string.Empty;
                        string[] cheminsLibrairies = Directory.GetFiles(Directory.GetCurrentDirectory() + @"\" + ModPack.Text + @"\libraries\", "*", SearchOption.AllDirectories);
                        if (File.Exists("config.xml"))
                        {
                            XDocument mods = XDocument.Load("config.xml");
                            IEnumerable <XElement> elementsPatch = mods.Descendants().Where(x => x.Name == "Java");
                            string minimum = string.Empty;
                            string maximum = string.Empty;
                            string perm    = string.Empty;
                            string chemin  = string.Empty;
                            foreach (XElement content in elementsPatch)
                            {
                                minimum = content.XPathSelectElement("Min").Value;
                                maximum = content.XPathSelectElement("Max").Value;
                                perm    = content.XPathSelectElement("Perm").Value;
                                chemin  = content.XPathSelectElement("Path").Value;
                            }
                            if (string.IsNullOrWhiteSpace(minimum))
                            {
                                minimum = "512";
                            }
                            if (string.IsNullOrWhiteSpace(maximum))
                            {
                                maximum = "1024";
                            }
                            if (string.IsNullOrWhiteSpace(perm))
                            {
                                perm = "128";
                            }
                            if (string.IsNullOrWhiteSpace(chemin))
                            {
                                chemin = ConnexionMinecraft.GetJavaInstallationPath();
                                chemin = Path.Combine(chemin, "bin\\Java.exe");
                            }
                            if (File.Exists(chemin))
                            {
                                XDocument versionFile           = XDocument.Load(Directory.GetCurrentDirectory() + @"\" + ModPack.Text + @"\modpack\" + ModPack.Text + @".xml");
                                IEnumerable <XElement> versions = versionFile.Descendants().Where(x => x.Name == "Modpack");
                                foreach (XElement content in versions)
                                {
                                    versionMinecraft = content.XPathSelectElement("Minecraft").Value;
                                    versionAssets    = content.XPathSelectElement("Assets").Value;
                                    forgeClass       = content.XPathSelectElement("Forge").Value;
                                }
                                librairies = cheminsLibrairies.Aggregate(librairies, (current, f) => current + Quote + f + Quote + ";");
                                string[] jars = Directory.GetFiles(Directory.GetCurrentDirectory() + @"\" + ModPack.Text + @"\versions\", "*.jar", SearchOption.AllDirectories);
                                librairies = jars.Aggregate(librairies, (current, f) => current + Quote + f + Quote + ";");
                                librairies = librairies.Remove(librairies.Length - 1);
                                string commande = @"-Xms" + minimum + @"m -Xmx" + maximum + @"m -XX:MaxPermSize=" + perm + " -Djava.library.path=" + Quote + Directory.GetCurrentDirectory() + @"\" + ModPack.Text + @"\natives" + Quote + " -cp " + librairies + " net.minecraft.launchwrapper.Launch --username " + _session.PlayerName + " --version " + versionMinecraft + " --gameDir " + Quote + Directory.GetCurrentDirectory() + @"\" + ModPack.Text + Quote + " --assetsDir " + Quote + Directory.GetCurrentDirectory() + @"\" + ModPack.Text + @"\assets" + Quote + " --assetIndex " + versionAssets + " --uuid " + _session.PlayerId + " --accessToken " + _session.Id + " --userProperties {} --userType mojang --tweakClass " + forgeClass;
                                Process.Start(chemin, commande);

                                /*ProcessStartInfo psi = new ProcessStartInfo();
                                 * psi.FileName = chemin;
                                 * psi.UseShellExecute = false;
                                 * psi.Arguments = commande;
                                 * psi.RedirectStandardOutput = true;
                                 * using (Process pro = Process.Start(psi))
                                 * {
                                 * using (StreamReader reader = pro.StandardOutput)
                                 * {
                                 *  string res = reader.ReadToEnd();
                                 *  Debug.WriteLine(res);
                                 * }
                                 * }*/
                            }
                        }
                        break;

                    case ConnexionMinecraft.LoginResult.InvalidToken:
                        MessageBox.Show("Le jeton de connexion est invalide !", "Une erreur s'est produite", MessageBoxButton.OK, (Style)Resources["MessageBoxStyle1"]);
                        break;

                    case ConnexionMinecraft.LoginResult.LoginRequired:
                        MessageBox.Show("Le mail est requis pour la connexion au serveur Minecraft !", "Une erreur s'est produite", MessageBoxButton.OK, (Style)Resources["MessageBoxStyle1"]);
                        break;

                    case ConnexionMinecraft.LoginResult.NotPremium:
                        MessageBox.Show("Il faut acheter Minecraft pour pouvoir jouer !", "Une erreur s'est produite", MessageBoxButton.OK, (Style)Resources["MessageBoxStyle1"]);
                        break;

                    case ConnexionMinecraft.LoginResult.ServiceUnavailable:
                        MessageBox.Show("Le serveur de connexion Mojant semble indisponible !", "Une erreur s'est produite", MessageBoxButton.OK, (Style)Resources["MessageBoxStyle1"]);
                        break;

                    case ConnexionMinecraft.LoginResult.WrongPassword:
                        MessageBox.Show("Vous avez rentré un mauvais mot de passe !", "Une erreur s'est produite", MessageBoxButton.OK, (Style)Resources["MessageBoxStyle1"]);
                        break;

                    case ConnexionMinecraft.LoginResult.OtherError:
                        break;

                    case ConnexionMinecraft.LoginResult.SslError:
                        break;

                    case ConnexionMinecraft.LoginResult.AccountMigrated:
                        break;

                    case ConnexionMinecraft.LoginResult.NullError:
                        break;

                    default:
                        MessageBox.Show("Il semblerait qu'une erreur soit survenue lors de la connexion ! Veuillez réessayer", "Une erreur s'est produite", MessageBoxButton.OK, (Style)Resources["MessageBoxStyle1"]);
                        break;
                    }
                }
            }
            catch
            {
                // ignored
            }
        }