Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Запуск майнкрафта через .bat !

Тема в разделе "[Архив] Помощь", создана пользователем teraboss, 6 июн 2014.

  1. Автор темы
    teraboss

    teraboss Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    teraboss
    Добрый день.
    Как запустить клиент майнкрафта 1.7.9 с помощью .bat файла?
    Скиньте код пожалуйста)
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    teraboss

    teraboss Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    teraboss
    Нашел код под Linux)

    Код:
    #!/bin/sh
    echo -n 'nick: ' && read username
    ver=1.7.9
    DIR=$HOME/.minecraft
    
    CLASSPATH=`find libraries -name \*.jar |tr '\n' ':'`
    CLASSPATH="${CLASSPATH}versions/$ver/$ver.jar"
    java -Xmx1G \
      -cp $CLASSPATH \
      -Djava.library.path=versions/$ver/$ver-natives \
      net.minecraft.client.main.Main \
      --username $username \
      --version $ver \
      --accessToken 0 \
      --userProperties {} \
      --gameDir $DIR \
      --assetsDir $DIR/assets \
      --assetIndex 1.7.4

    Но мне то для Windows нужно)[DOUBLEPOST=1402060496,1402060392][/DOUBLEPOST]Выручайте братцы)
     
    Лайка3, Mr_RoboMan, mahimamax и 2 другим нравится это.
  4. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Код:
    @ECHO OFF
    chcp 1251 > nul
    java -cp * -Djava.library.path=** net.minecraft.client.main.Main ^
    --username Паря_без_права ^
    --session null ^
    --accessToken 0000 ^
    --userProperties {} ^
    --gameDir ./ ^
    --assetIndex 1.7.4
    * - Все библиотеки. Можно завернуть в один zip-архив.
    ** - Путь до нативов.
     
    Лайка3, Mr_RoboMan, Лайка2 и 3 другим нравится это.
  5. Автор темы
    teraboss

    teraboss Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    teraboss
    Объясни по подробнее.Просто я нуб в этом)[DOUBLEPOST=1402061455,1402061323][/DOUBLEPOST]Или просто напиши как выделить под майнкрафт клиент 5гб оперативы)
     
  6. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Через оффициальный лаунчер:
    Image 26.png
     
    Лайка3, Mr_RoboMan, Лайка2 и 2 другим нравится это.
  7. Автор темы
    teraboss

    teraboss Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    teraboss
    [​IMG]
    Вот такие пироги)
    И так же при запуске сервера)
    Подскажи, в чем может быть проблема?
     
  8. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    32 битная java не сможет выделить больше, чем 1536mb оперативки. Качай 64 битную, профит.
     
  9. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Вот накатал минибатник, пока без выделения памяти :).
    Запускает клиент из папки где лежит лаунчер с такой структурой.
    /versions тут либы
    /libraries тут сам клиент
    /natives нативы
    Код:
    import java.awt.Dimension;
    import java.awt.TextField;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    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;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.SwingUtilities;
    public class Launch {
        List<URL> url = new ArrayList<URL>();
        URLClassLoader cl;
        String Class = null;
      public Launch() {
          initComponents();
      }
      private static JFrame frame;
      private TextField username;
      private void initComponents() {
          frame = new JFrame("Launcher");
          frame.setSize(156, 117);
          Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
          int x = (int) ((dimension.getWidth() - frame.getWidth()) / 2);
          int y = (int) ((dimension.getHeight() - frame.getHeight()) / 2);
          frame.setLocation(x, y);
          frame.setResizable(false);
          frame.setVisible(true);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          username = new TextField();
          username.setLocation(17, 10);
          username.setSize(120, 25);
          JButton button = new JButton("Играть");
          button.setVisible(true);
          button.setLocation(17, 42);
          button.setSize(120, 25);
          button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String nickname = username.getText();
                    Pattern p = Pattern.compile("^[a-zA-Z0-9_-]{2,16}$");
                    Matcher m = p.matcher(nickname);
                    List<String> params = new ArrayList<String>();
                    boolean b = m.matches();
                    if (nickname.isEmpty()) {
                        JOptionPane.showMessageDialog(frame, "Введите ник!", "", javax.swing.JOptionPane.WARNING_MESSAGE);
                        return;
                    } else if (b==false) {
                        JOptionPane.showMessageDialog(frame, "Ник должен содержать только латинские буквы и цифры 2-16 символов!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                        return;
                    } else {
                        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 (MalformedURLException x) {
                            x.printStackTrace();
                        }
                        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");
                        try {
                            cl.loadClass("com.mojang.authlib.Agent");
                            params.add("--accessToken");
                            params.add("12345");
                            params.add("--uuid");
                            params.add("12345");
                            params.add("--userProperties");
                            params.add("{}");
                            params.add("--assetIndex");
                            params.add("1.7.4");
                        } catch (ClassNotFoundException x) {
                            params.add("--session");
                            params.add("12345");
                        }
                        params.add("--username");
                        params.add(nickname);
                        params.add("--version");
                        params.add("1.7.4");
                        params.add("--gameDir");
                        params.add(Dir.getAbsolutePath()+"/");
                        params.add("--assetsDir");
                        params.add(Dir.getAbsolutePath()+"/assets");
                        }
                    boolean tweakClass = false;
                    try {
                        cl.loadClass("com.mumfrey.liteloader.launch.LiteLoaderTweaker");
                        params.add("--tweakClass");
                        params.add("com.mumfrey.liteloader.launch.LiteLoaderTweaker");
                        tweakClass = true;
                    } catch (ClassNotFoundException x) {}  
                    try {
                        cl.loadClass("cpw.mods.fml.common.launcher.FMLTweaker");
                        params.add("--tweakClass");
                        params.add("cpw.mods.fml.common.launcher.FMLTweaker");
                        tweakClass = true;
                    } catch (ClassNotFoundException x) {}
                    if(tweakClass)
                    {
                        Class = "net.minecraft.launchwrapper.Launch";
                    } else {
                        Class = "net.minecraft.client.main.Main";
                    }
                  
                    frame.setVisible(false);
                    try
                    {
                        Class<?> start = cl.loadClass(Class);
                        JOptionPane.showMessageDialog(frame, "Запуск клиента");
                        Method main = start.getMethod("main", new Class[] { String[].class });
                        main.invoke(null, new Object[] { params.toArray(new String[0]) });
                    } catch (Exception x)
                    {
                        JOptionPane.showMessageDialog(frame, "Ошибка запуска!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                        System.exit(0);
                    }
              }
          });
          frame.getContentPane().add(username);
          frame.getContentPane().add(button);
          frame.getContentPane().add(new JLabel());
      }
      public static void main(String[] args) {
          SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                System.out.println("Launcher Start");
                new Launch();
            }
          });
      }
    
      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;
        }
    }
     

Поделиться этой страницей