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

Совет Запуск Minecraft БЕЗ лаунчера!

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем goul, 2 янв 2013.

  1. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Скрипты перекачай новые.
     
  2. Хостинг MineCraft
    <
  3. Maddourufu

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

    Баллы:
    66
    Ок, спасибо. Зарание еще вопрос:
    Я как-то пытался сделать ланчер, но Eclipse послал меня в глубокую нору.
    Чего-то ему не хватало.

    Я не программист java, поэтому хочу спросить, что нужно ставить в систему / Eclipse, чтобы ланчер точно скомпилировался?
     
  4. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Ничего, он не юзает сторонних библиотек.
     
  5. Maddourufu

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

    Баллы:
    66
    хорошо, попробую. Спасибо.

    Главное, чтоб пароли без шифрования принимал из базы...
     
  6. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    UP. Простой запуск клиентов на шарпе. Подключаем к проекту Newtonsoft.Json и DotNetZip. Проверенно на клиентах скаченных mojang лаунчером.

    Код:
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Newtonsoft.Json.Linq;
    using System.Diagnostics;
    using Ionic.Zip;
    
    class Runs {
        static string assetIndex = "";
        static string clientjar;
        static void Main(string[] args) {
            string clientdir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\.minecraft\";
            string client = "1.5.2-Forge7.8.1.738";
            string user = "zenit";
            string uuid = "00000000000000000000000000000000";
            string session = "0";
            start(clientdir, client, user, uuid, session);
        }
    
        static void start(string clientdir, string client, string user, string uuid, string session) {
            string nfolder = clientdir + @"versions\" + client + @"\natives";
            Directory.CreateDirectory(nfolder);
            clientjar = client;
            JObject versions = json(clientdir, client);
            assetInd(versions);
            JArray libraries = (JArray)versions["libraries"];
            string assetsdir = "assets";
            string gameassets = assetsdir + @"\virtual\legacy";
            string url = @"-Djava.library.path=versions\" + client + @"\natives -cp ";
            url = libs(libraries, url, clientdir, client, client);
            url += @"versions\" + clientjar + @"\" + clientjar + ".jar ";
            url += (string)versions["mainClass"] + " ";
            url += versions["minecraftArguments"].ToString().
            Replace("${auth_player_name}", user).
            Replace("${version_name}", client).
            Replace("${game_directory}", ".").
            Replace("${assets_root}", assetsdir).
            Replace("${game_assets}", gameassets).
            Replace("${assets_index_name}", assetIndex).
            Replace("${auth_uuid}", uuid).
            Replace("${auth_access_token}", session).
            Replace("${user_type}", "legacy").
            Replace("${version_type}", "release").
            Replace("${user_properties}", "{}");
            Console.WriteLine(url);
            Console.ReadLine();
            ProcessStartInfo Info = new ProcessStartInfo("java");
            Info.Arguments = url;
            Info.WorkingDirectory = clientdir;
            Process.Start(Info);
        }
    
        static string libs(JArray libraries, string url, string clientdir, string client, string n) {
            foreach (var librari in libraries) {
                string[] libdir = librari["name"].ToString().Split(':');
                string libsdir = @"libraries\"+libdir[0].Replace(".", @"\")+@"\"+libdir[1]+@"\"+libdir[2]+@"\"+libdir[1]+"-"+libdir[2];
                if (librari["natives"]==null) {
                    url += libsdir+ ".jar;";
                } else {
                    string natives = clientdir + libsdir + "-natives-windows.jar";
                    string nfolder = clientdir + @"versions\" + n + @"\natives\";
                    unzip(natives, nfolder);
                }
            }
            JObject versions = json(clientdir, client);
            string inheritsFrom = (string)versions["inheritsFrom"];
            if (versions["jar"] != null) {
                clientjar = (string)versions["jar"];
            }
            if (inheritsFrom !=null) {
                versions = json(clientdir, inheritsFrom);
                libraries = (JArray)versions["libraries"];
                return url += libs(libraries, url, clientdir, inheritsFrom, n);
            }
    
            if (versions["assetIndex"] != null){
                assetIndex = (string)versions["assetIndex"]["id"];
            }
            else if (versions["assets"] != null) {
                assetIndex = (string)versions["assets"];
            }
            return url;
        }
    
        static JObject json(string clientdir, string client) {
            string json = clientdir + @"versions\" + client + @"\" + client + ".json";
            return JObject.Parse(File.ReadAllText(json));
        }
    
        static string assetInd(JObject versions) {
            if (versions["assetIndex"] != null) {
                assetIndex = (string)versions["assetIndex"]["id"];
            }
            else if (versions["assets"] != null) {
                assetIndex = (string)versions["assets"];
            }
            return assetIndex;
        }
    
        static void unzip(string zipdfile, string zipfolder) {
            try {
                using (ZipFile zip = ZipFile.Read(zipdfile)) {
                    foreach (ZipEntry ef in zip) {
                        zip.ExtractAll(zipfolder, ExtractExistingFileAction.OverwriteSilently);
                    }
                }
            }
            catch {}
        }
    }
    
     
    Последнее редактирование: 13 окт 2016
  7. Maddourufu

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

    Баллы:
    66
    Скачал твой ланчер, настроил, запускаю - Ошибка подключения.
    Ок. Дал ему свою учетку с полными правами к MySQL, указал несуществующие таблицы - создались iConomy, jobs, usersessions, accounts (хотя указано userz), sashok724_launcher_keys, попытался влезть в таблицы PermissionsEx.
    На этом всё. Просканировал все php на наличие фразы, выдаваемой ланчером - нету.
    Что делать?

    И что такое baseconf, где указано vorelaria ?[DOUBLEPOST=1476089033,1476032379][/DOUBLEPOST]Хм. Куда-то сообщение пропало. Отвечаю:
    > Не нужно было ничего ручками создавать в базе. Просто указываешь в конфиге, где у тебя таблица акккаунтов юзер пароль и тд. И да, у пользователя mysql должны быть права на создание и обновление таблиц. <

    Я дал пользователя с полными правами, некоторые таблицы создались, userz - нет, вместо нее accounts, но ланчер все равно тупит
     
  8. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    accounts таблица создается, чтоб юзать лаунчер без сайта с регой из лаунчера. userz? хз о чем ты.
     
  9. Maddourufu

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

    Баллы:
    66
    Я указал таблицу "userz" (ибо users уже есть) в качестве таблицы для учетных записей.
    Возможно надо отключить регистрацию в ланчере или еще что-то?
     
  10. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    На авторизацию это не влияет, если у тебя уже есть аккаунт в таблице userz, то регистрация не требуется. Если нету, то напишет неверный логин или пароль.[DOUBLEPOST=1476094066,1476093875][/DOUBLEPOST]Ошибки выполнения php скриптов можно вывести флагами.
    //Error_Reporting(E_ALL | E_STRICT);
    //Ini_Set('display_errors', true);

    Раскоментируй их в connect.php.
     
  11. Maddourufu

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

    Баллы:
    66
    Таблицы нет, она не создается автоматически (права есть).
    Ланчер пишет "Ошибка подключения"
     
  12. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Для работы без аккаунтов кмс создается accounts таблица. Что тебе там еще надо создавать, понятия не имею.
     
  13. Maddourufu

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

    Баллы:
    66
    я запутался.
    У меня уже существует таблица users, которую мне крайне не хотелось бы менять. На нее завязан майн, текущий ланчер и сайт.

    Шифрование я не использую. Как быть?
     
  14. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Ее не нужно менять, от туда берутся только аккаунты. Остальное пишется в usersession. В таблицу аккаунтов ничего не записывется, если отключить регу с лаунчера.
     
  15. Maddourufu

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

    Баллы:
    66
    Значит надо отключить регу в ланчере? Сейчас, если эклипс установится, попробую, отпишусь.
     
  16. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Я выключалку реги на php недописал, кек. Перекачаешь connect.php и reg.php.
     
  17. Maddourufu

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

    Баллы:
    66
    Ок.
    На убунту ланчер из еклипса не стартует, не видет 8ю яву, хотя только что поставил.
    Придется ждать до вечера(
     
  18. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Да он хоть на 6той собирается. Не имеет значения.
     
  19. Maddourufu

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

    Баллы:
    66
    Что-то не идет...

    Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    Syntax error, parameterized types are only available if source level is 1.5 or greater
    Syntax error, parameterized types are only available if source level is 1.5 or greater
    The method setProperty(String, Object) in the type BaseUtils is not applicable for the arguments (String, int)
    The method setProperty(String, Object) in the type BaseUtils is not applicable for the arguments (String, int)
    The method setProperty(String, Object) in the type BaseUtils is not applicable for the arguments (String, int)
    Syntax error, parameterized types are only available if source level is 1.5 or greater
    The method getDeclaredMethod(String, Class[]) in the type Class<capture#1-of ?> is not applicable for the arguments (String, Class<T>)
    The method invoke(Object, Object[]) in the type Method is not applicable for the arguments (null, int)

    at net.launcher.run.Starter.main(Starter.java:18)
    at net.launcher.run.Mainclass.main(Mainclass.java:39)


    ОТБОЙ, завелся
     
  20. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Ты на какой жабе собираешь то? :D
     
  21. Maddourufu

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

    Баллы:
    66
    Да чтоб я знал... Написано 1.7 она же 1.8...
    Щас выдает ошибку несовпадающих ключей.[DOUBLEPOST=1476104483,1476097337][/DOUBLEPOST]
    php пишет, что в launcher.php на 11 строке не существует переменная key2, а security.php на 22й - не может вызвать mcrypt_decrypt. У меня не ставится mcrypt, как его отключить?[DOUBLEPOST=1476106680][/DOUBLEPOST]
    Сейчас установил параметр release = true. Теперь ланчер просит его обновить. Без этого можно обойтись?


    Лог из ланчера:
    [16:41:53] [Launcher thread/WARN]: Ключ шифрование не совпадает или больше 16 символов, или полученна ошибка от launcher.php
    [16:41:53] [Launcher thread/WARN]: Проверьте настройку в Settings.java или connect.php

    [16:41:54] [Launcher thread/INFO]: Launcher updater started...
    [16:41:54] [Launcher thread/INFO]: Downloading file: http://minecraft.maddourufu.ru/launcherfix/launcher/technomagic.jar
    java.io.FileNotFoundException: /home/maddourufu/OwnCloud/Разработка/Eclipse/Technomagic s/bin (Это каталог)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:101)
    at net.launcher.utils.BaseUtils.updateLauncher(BaseUtils.java:613)
    at net.launcher.components.Frame$8.run(Frame.java:436)
    [16:41:54] [Launcher thread/INFO]: Error updating launcher!
     
    Последнее редактирование: 10 окт 2016

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