Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (1)

Лучшие ответы пользователя

Все ответы (2)
  • Как запустить майнкрафт из Intellij idea?

    @Elige
    Импорты
    import java.io.File;
    import java.lang.reflect.Method;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLClassLoader;
    import java.util.ArrayList;
    import java.util.List;


    Методы
    public static void LaunchMinecraft() {
        String nickname = "Kats555";
        String Class = "net.minecraft.client.main.Main";
    
        List < URL > url = new ArrayList < URL > ();
    
        File Dir = new File(".");
    
        System.out.println("Путь до папки с клиентом -> " + Dir.getAbsolutePath());
    
        if (!new File(Dir.getAbsolutePath() + "/natives").exists()) new File(Dir.getAbsolutePath() + "/natives").mkdirs(); //Папка с нативами
    
        try {
          url.addAll(getLibs(new File(Dir.getAbsolutePath() + "/versions"))); //Папка с клиентом
          url.addAll(getLibs(new File(Dir.getAbsolutePath() + "/libraries"))); //Папка с либами
        } catch (Exception x) {
          System.out.println("Неправильный путь к клиенту");
        }
    
        URLClassLoader cl = new URLClassLoader(url.toArray(new URL[url.size()]));
    
        System.out.println("Список загруженных jar ->" + url);
        System.setProperty("fml.ignoreInvalidMinecraftCertificates", "true");
        System.setProperty("fml.ignorePatchDiscrepancies", "true");
        System.setProperty("org.lwjgl.librarypath", Dir.getAbsolutePath() + "/natives");
        System.setProperty("net.java.games.input.librarypath", Dir.getAbsolutePath() + "/natives");
        System.setProperty("java.library.path", Dir.getAbsolutePath() + "/natives");
    
        List < String > params = new ArrayList < String > ();
    
        try {
          cl.loadClass("com.mojang.authlib.Agent");
          params.add("--accessToken");
          params.add("1");
          params.add("--uuid");
          params.add("12345");
          params.add("--userProperties");
          params.add("{}");
          params.add("--assetIndex");
          params.add("1.7.10");
        } catch (ClassNotFoundException x) {
          params.add("--session");
          params.add("1");
        }
        params.add("--username");
        params.add(nickname);
        params.add("--version");
        params.add("1.7.10");
        params.add("--gameDir");
        params.add(Dir.getAbsolutePath() + "/");
        params.add("--assetsDir");
        params.add(Dir.getAbsolutePath() + "/assets");
    
        try {
          Class < ? > start = cl.loadClass(Class);
          System.out.println("Запуск клиента");
          Method main = start.getMethod("main", new Class[] {
            String[].class
          });
          main.invoke(null, new Object[] {
            params.toArray(new String[0])
          });
        } catch (Exception x) {
          System.out.println(x);
        }
    
      }
    
      private static List < URL > getLibs(File libsfolder) throws MalformedURLException {
        List < URL > libs = new ArrayList < URL > ();
        if (!libsfolder.exists()) libsfolder.mkdirs();
        for (File file: libsfolder.listFiles()) {
          if (file.isDirectory()) {
            libs.addAll(getLibs(file));
          } else {
            if (file.getName().endsWith(".jar")) {
              libs.add(file.toURI().toURL());
            }
          }
        }
        return libs;
      }
    Ответ написан