Помогите Портативный C# лаунчер и forge

  • Автор темы Автор темы Kseon73
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Kseon73

Старожил
Пользователь
Баллы
123
Всем привет.
У меня есть портативный C# лаунчер который без проблем запускает MineCraft но с forge он не дружит.

Как сделать так чтобы заработал? что и как вписать?
Вот часть кода запуска
Код:
        public static void startGame(int ramMin, int ramMax, string username, string sessionID)
        {
            new Process { StartInfo = { FileName = @"C:\Program Files\Java\jre7\bin\javaw.exe", Arguments = string.Concat(new object[] { "-Xms", ramMin, "M -Xmx", ramMax, "M -Djava.library.path=.minecraft/bin/natives -cp .minecraft/bin/minecraft.jar;.minecraft/bin/jinput.jar;.minecraft/bin/lwjgl.jar;.minecraft/bin/lwjgl_util.jar net.minecraft.client.Minecraft ", username, " ", sessionID }) } }.Start();
        }
 
не специалист ни в Java ни в C#, но дел обстоит примерно так, Forge перезапускает клиент через методы классов лаунчера (пусть меня поправят спецы)
вот кусок из лунчера Сашка
Код:
package net.minecraft; //Имя пакета было изменено для работы с forge >= 1.3.2
этот вопрос уже обсуждался в теме как-то лаунчера, пробей по поиску.
 
Код:
Process.Start("javaw", string.Format("-Xmx1G -Djava.library.path=\"{0}/.minecraft/bin/natives\" -cp " +
                                                                            "\"{0}/.minecraft/bin/minecraft.jar\";" +
                                                                            "\"{0}/.minecraft/bin/jinput.jar\";" +
                                                                            "\"{0}/.minecraft/bin/lwjgl.jar\";" +
                                                                            "\"{0}/.minecraft/bin/lwjgl_util.jar\" net.minecraft.client.Minecraft \"{1}\"",
                                            Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Login.Text));
                                            this.Close();

Вроде так.Или я что то не понял.
 
нет, вы не поняли суть, запустить майнкрафт из любой папки я смог, но конфиги моды и тд(все что связано с forge) подключаются не из папки с лаунчером, а из стандартного пути (%appdata%/.minecraft)
Туда все либы и качаются.
 
нет, вы не поняли суть, запустить майнкрафт из любой папки я смог, но конфиги моды и тд(все что связано с forge) подключаются не из папки с лаунчером, а из стандартного пути (%appdata%/.minecraft)
Туда все либы и качаются.

Эм.Тогда нужно изменить Minecraft.class
 
Эм.Тогда нужно изменить Minecraft.class
Вот в том и дело что можно без изменения.
В лаунчере сашка это как то реализовано, но там вроде патчится при запуске сама игра.
Вот и интересно, можно ли как без ковыряния запускать.
 
не, тут не в курсе, да и функция эта у Сашка не работает.
 
Вот в том и дело что можно без изменения.
В лаунчере сашка это как то реализовано, но там вроде патчится при запуске сама игра.
Вот и интересно, можно ли как без ковыряния запускать.
Добавь свой запускающий класс на подобии Start из mcp:
Java:
public class Start
{
    public static void main(String[] args)
    {
        try
        {
            // set new minecraft data folder to prevent it from using the .minecraft folder
            // this makes it a portable version
            Field f = Minecraft.class.getDeclaredField("field_71463_am");
            Field.setAccessible(new Field[] { f }, true);
            f.set(null, new File("."));
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return;
        }
 
        // start minecraft game application
        Minecraft.main(args);
    }
}
 
Можешь посмотреть как это реализовано в MultiMC, там есть специальный jar-файл который запускает уже сам minecraft.jar, и перенаправляет как я понял в определенную папку...

Сам пока подробнее не ковырял его
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх