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

Помогите Как заставить лаунчер качать и распаковывать мой архив ?

Тема в разделе "[Архив] Помощь", создана пользователем Dobrik, 31 янв 2012.

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

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

    Баллы:
    123
    Skype:
    dobrik18
    Извините если не точно указал тему.
    Имеется лаунчер сделанный по этому уроку http://rubukkit.org/threads/урок-система-авторизации-клиента.3377/
    все работает хорошо, но! на моем сервере установлены моды и доп блоки, оружия и тп, они находятся в папке .minecraft/mods и .minecraft/config. Лаунчер к сожалению качает только jar файлы находящиеся в папке bin. скажите пожалуйста как заставить лаунчер качать еще к примеру архив с названием "client.zip" и распаковывал его в директорию .minecraft.
    Заранее спасибо!
     
  2. Хостинг MineCraft
    <
  3. klarnet

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

    Баллы:
    173
    Skype:
    dalios7249
    Имя в Minecraft:
    klarnet
  4. alexej

    alexej Активный участник Пользователь

    Баллы:
    88
    то же самое!
     
    Сникерсни нравится это.
  5. mayor123

    mayor123 Старожил Девелопер Пользователь

    Баллы:
    173
    protected void UnZip() throws PrivilegedActionException
    {
    String szZipFilePath;
    String szExtractPath;
    String path = (String)AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
    public Object run() throws Exception {
    return Util.getWorkingDirectory() + File.separator;
    }
    });
    int i;

    szZipFilePath = path + "bin" + File.separator + "client.zip";

    File f = new File(szZipFilePath);
    if(!f.exists())
    {
    System.out.println(
    "\nNot found: " + szZipFilePath);
    }

    if(f.isDirectory())
    {
    System.out.println(
    "\nNot file: " + szZipFilePath);
    }

    System.out.println(
    "Enter path to extract files: ");
    szExtractPath = path;

    File f1 = new File(szExtractPath);
    if(!f1.exists())
    {
    System.out.println(
    "\nNot found: " + szExtractPath);
    }

    if(!f1.isDirectory())
    {
    System.out.println(
    "\nNot directory: " + szExtractPath);
    }

    ZipFile zf;
    Vector zipEntries = new Vector();

    try
    {
    zf = new ZipFile(szZipFilePath);
    Enumeration en = zf.entries();

    while(en.hasMoreElements())
    {
    zipEntries.addElement(
    (ZipEntry)en.nextElement());
    }

    for (i = 0; i < zipEntries.size(); i++)
    {
    ZipEntry ze =
    (ZipEntry)zipEntries.elementAt(i);

    extractFromZip(szZipFilePath, szExtractPath,
    ze.getName(), zf, ze);
    }

    zf.close();
    System.out.println("Done!");
    }
    catch(Exception ex)
    {
    System.out.println(ex.toString());
    }
    f.delete();
    }

    // ============================================
    // extractFromZip
    // ============================================
    static void extractFromZip(
    String szZipFilePath, String szExtractPath,
    String szName,
    ZipFile zf, ZipEntry ze)
    {
    if(ze.isDirectory())
    return;

    String szDstName = slash2sep(szName);

    String szEntryDir;

    if(szDstName.lastIndexOf(File.separator) != -1)
    {
    szEntryDir =
    szDstName.substring(
    0, szDstName.lastIndexOf(File.separator));
    }
    else
    szEntryDir = "";

    System.out.print(szDstName);
    long nSize = ze.getSize();
    long nCompressedSize =
    ze.getCompressedSize();

    System.out.println(" " + nSize + " (" +
    nCompressedSize + ")");

    try
    {
    File newDir = new File(szExtractPath +
    File.separator + szEntryDir);

    newDir.mkdirs();

    FileOutputStream fos =
    new FileOutputStream(szExtractPath +
    File.separator + szDstName);

    InputStream is = zf.getInputStream(ze);
    byte[] buf = new byte[1024];

    int nLength;

    while(true)
    {
    try
    {
    nLength = is.read(buf);
    }
    catch (EOFException ex)
    {
    break;
    }

    if(nLength < 0)
    break;
    fos.write(buf, 0, nLength);
    }

    is.close();
    fos.close();
    }
    catch(Exception ex)
    {
    System.out.println(ex.toString());
    //System.exit(0);
    }
    }
    // ============================================
    // slash2sep
    // ============================================
    static String slash2sep(String src)
    {
    int i;
    char[] chDst = new char[src.length()];
    String dst;

    for(i = 0; i < src.length(); i++)
    {
    if(src.charAt(i) == '/')
    chDst = File.separatorChar;
    else
    chDst = src.charAt(i);
    }
    dst = new String(chDst);
    return dst;
    }


    }

    Это вставляем в конец GameUpdater
    И строку
    String jarList = "lwjgl.jar, jinput.jar, lwjgl_util.jar, " + mainGameUrl;
    Заменяем на
    String jarList = "lwjgl.jar, jinput.jar, lwjgl_util.jar, client.zip, " + mainGameUrl;
     

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