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

Туториал Делаем лаунчер для своего сервера

Discussion in 'Руководства, инструкции, утилиты' started by Ccc, Dec 28, 2012.

  1. WhiteSS

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

    Trophy Points:
    103
    Там должна быть папка bin(в client,zip) а в ней minecraft.jar+3 файлика lwjgl и прочее+папка natives
     
    Сникерсни likes this.
  2. Хостинг MineCraft
    <
  3. Markls1

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

    Trophy Points:
    123
    Skype:
    mistercraftg
    Имя в Minecraft:
    MarklsDidle
  4. Markls1

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

    Trophy Points:
    123
    Skype:
    mistercraftg
    Имя в Minecraft:
    MarklsDidle
  5. WhiteSS

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

    Trophy Points:
    103
    хммм.странно
     
  6. Markls1

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

    Trophy Points:
    123
    Skype:
    mistercraftg
    Имя в Minecraft:
    MarklsDidle
    Странно то. Когда захожу со старого лаунчера он заходит. В среде Еклипс он тоже заходит, после компиляции не заходит)
     
  7. egor26333

    egor26333 Активный участник

    Trophy Points:
    68
    Имя в Minecraft:
    egor26333
    Здравствуйте, у меня вопрос, а как сделать так, что бы лаунчер sashok724 скачивал моды BuildCraft, IndustrialCraft и т.д, и что бы они (естественно) работали?
     
  8. Markls1

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

    Trophy Points:
    123
    Skype:
    mistercraftg
    Имя в Minecraft:
    MarklsDidle
    Их нужно поместить в клиент
    Меня интересует как сделать выбор сервера и загрузка к нему модов
     
  9. WhiteSS

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

    Trophy Points:
    103
    ап
    Пиши скайп
     
  10. egor26333

    egor26333 Активный участник

    Trophy Points:
    68
    Имя в Minecraft:
    egor26333
    Помогите кто-нибудь. Я еще понял что клиент использует стандарт ную папку .minecraft где исправить что бы было по пути проект/HiTech?
     
  11. REZAYS

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

    Trophy Points:
    153
    При любом нике и пароле меня пускает в игру.Можете сказать,что я не так сделал или выкладывать конфиги?
     
  12. REZAYS

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

    Trophy Points:
    153
    java.io.FileNotFoundException: C:\Users\monk23\AppData\Roaming\.P\bin\[<a (Синтаксическая ошибка в имени файла, имени папки или метке тома)
    Fatal error occured (4): C:\Users\monk23\AppData\Roaming\.P\bin\[<a (Синтаксическая ошибка в имени файла, имени папки или метке тома)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at ru.maximusorg.launcher.GameUpdater.downloadJars(GameUpdater.java:442)
    at ru.maximusorg.launcher.GameUpdater.run(GameUpdater.java:241)
    at ru.maximusorg.launcher.Launcher$1.run(Launcher.java:84)
    java.io.FileNotFoundException: C:\Users\monk23\AppData\Roaming\.P\bin\[<a (Синтаксическая ошибка в имени файла, имени папки или метке тома)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at ru.maximusorg.launcher.GameUpdater.downloadJars(GameUpdater.java:442)
    at ru.maximusorg.launcher.GameUpdater.run(GameUpdater.java:241)
    at ru.maximusorg.launcher.Launcher$1.run(Launcher.java:84)
    Вот.
    или вот.
    java.lang.ArrayIndexOutOfBoundsException
     
  13. MrZer

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

    Trophy Points:
    78
    Проблема с Launcher'ом "сашка".

    I. При конекте к серверу:
    1.В окне игры пишет:
    а)Если обычный пользователь - "Not premium user"
    б)Если поставить премиум - "Bad Login"
    2.В командной строке сервера пишет - "Nickname IP - соединение потеряно"

    II. Думаю проблема в sql, но найти никак не могу.

    Подскажите пожалуйста, где может быть загвоздка.
     
  14. Автор темы
    Ccc

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

    Trophy Points:
    153
    Skype:
    Dyadyasasha1234
    Имя в Minecraft:
    Dyadyasasha1234
    Not premium user и Bad Login появляется когда сервер не настроен под твою систему авторизации(не изменена ссылка на файл checkserver.php) и online mod:true
    Попробуй поменять online mod на false или настрой так,как сказано здесь
     
  15. Автор темы
    Ccc

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

    Trophy Points:
    153
    Skype:
    Dyadyasasha1234
    Имя в Minecraft:
    Dyadyasasha1234
    выложи конфиги и скажи какой лаунчер использовал
     
  16. Автор темы
    Ccc

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

    Trophy Points:
    153
    Skype:
    Dyadyasasha1234
    Имя в Minecraft:
    Dyadyasasha1234
    скинь файлы,которые заливал на сайт
     
  17. Автор темы
    Ccc

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

    Trophy Points:
    153
    Skype:
    Dyadyasasha1234
    Имя в Minecraft:
    Dyadyasasha1234
    вы лаунчере отредактировать название папки и в клиенте в minecraft.jar в папке net/minecraft/client/файл Minecraft.class нужно отредактировать через InClassTranslator
    так делал?
     
  18. REZAYS

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

    Trophy Points:
    153
    Лаунчер от maximusorg

    auth.php
    <?php

    require_once('../system.php');
    $str = '';

    if (!empty($_POST['user']) and !empty($_POST['password']) and !empty($_POST['version'])) {


    require_once('../instruments/password.php');

    $login = $_POST['user'];
    $password = $_POST['password'];
    $ver = $_POST['version'];

    if (!preg_match("/^[a-zA-Z0-9_-]+$/", $login)) {

    $str = "Login process [Bad symbols Login] ";
    echo "Bad login";

    } elseif (!preg_match("/^[a-zA-Z0-9_-]+$/", $password)) {

    $str = "Login process [Bad symbols Password] ";
    echo "Bad login";

    } elseif (!preg_match("/^[0-9]+$/", $ver)) {

    $str = "Login process [Bad symbols Version] ";
    echo "Bad login";

    } elseif (getGameInfo('launcher') == $ver) {

    $result = BD("SELECT $bd_aPassword,$bd_aUsername,$bd_aLvl FROM $bd_table_accounts WHERE $bd_aUsername='$login'");

    $line = mysql_fetch_array($result);

    if (!$line) {
    vtxtlog("Login process [Unknown user] User [$login] Password [$password]");
    echo "Bad login";
    exit;
    }

    $user_lvl = $line[$bd_aLvl];

    if ($user_lvl <= 0) {

    $str = "Login process [Banned user] User [$login] Password [$password]";
    echo "Bad login";

    } else {

    $realPass = $line[$bd_aPassword];
    $orig_login = $line[$bd_aUsername];

    if (checkPass($realPass,$password))
    {
    $sessid = generateSessionId();
    $gamebuild = getGameInfo('build');

    BD("UPDATE $bd_table_accounts SET $bd_aSession='$sessid' WHERE $bd_aUsername='$login'");

    $dlticket = md5($orig_login);
    echo $gamebuild.':'.$dlticket.':'.$orig_login.':'.$sessid.':';
    $str = "Login process [Success] User [$login] Session [$sessid]";
    } else {
    $str = "Login process [Bad login] User [$login] Password [$password]";
    echo "Bad login";
    }
    }

    } else {
    $str = "Login process [Old version]";
    echo 'Old version';
    }

    } else {

    $str = "Login process [POST parameter empty] ";
    if (empty($_POST['user'])) $str .= "LOGIN parameter is empty | ";
    if (empty($_POST['password'])) $str .= "PASSWORD parameter is empty";
    if (empty($_POST['version'])) $str .= "VER parameter is empty";

    echo "Bad login";

    }

    vtxtlog($str);

    ?>
    config.java
    package ru.maximusorg.launcher;

    public class Config {
    public static String StrDown1 = "http://paradyse.ru/lk/upload/update/";
    public static String StrDown2 = "http://paradyse.ru/lk/upload/update/";
    public static String StrDown3 = "http://paradyse.ru/lk/upload/update/";
    public static String StrDown4 = "http://paradyse.ru/lk/upload/update/";
    public static String StrDown5 = "http://paradyse.ru/lk/upload/update/";
    public static String StrDown6 = "http://paradyse.ru/lk/upload/update/";
    public static String StrDown = "http://paradyse.ru/lk/upload/update/";
    public static String regURL = "http://paradyse.ru";

    //Название вашего лаунчера
    public static String title = "Paradyse.ru launcher";
    //версия лаунчера
    public static String version = "16";
    //Авторизация
    public static String auth = "http://paradyse.ru/lk/upload/auth.php?user=";
    //IP вашего сервера
    public static String serverip1 = "paradyse.dlinkddns.com";
    //Порт вашего сервера
    public static String serverport1 = "25565";
    //Загрузка новостей
    public static String news = "http://paradyse.ru/news/";
    //Регистрация
    public static String register = "http://paradyse.ru";
    //Откуда скачивать новый лаунчер
    public static String newlauncher = "http://paradyse.ru/launcher.exe";
    public static String server = "1";
    public static String serverport2 = "25576";
    public static String serverport3 = "25577";
    public static String serverport4 = "25578";
    public static String serverport5 = "25579";
    public static String serverport6 = "25580";
    public static String name = "(Paradyse.ru by rezays and maximusorg)";
    public static String site = "http://paradyse.ru";
    public static String forum = "http://paradyse.ru";
    public static String skinsystem = "http://paradyse.ru/lk/";
    public static String workdir = "Paradyse";

    /**
    Лаунчер сделан maximusorg, все вопросы по нему, а также настройка в скайп - K.N.A.Z
    */








    }

    package ru.maximusorg.launcher;

    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Frame;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.security.DigestInputStream;
    import java.security.MessageDigest;
    import java.util.Formatter;
    import java.util.HashMap;
    import java.util.Map;
    import javax.imageio.ImageIO;
    import javax.swing.JPanel;
    import javax.swing.UIManager;

    public class LauncherFrame extends Frame
    {
    public static String calculateHash(MessageDigest algorithm,
    String fileName) throws Exception{
    FileInputStream fis = new FileInputStream(fileName);
    BufferedInputStream bis = new BufferedInputStream(fis);
    @SuppressWarnings("resource")
    DigestInputStream dis = new DigestInputStream(bis, algorithm);

    while (dis.read() != -1);
    byte[] hash = algorithm.digest();

    return byteArray2Hex(hash);
    }
    private static String byteArray2Hex(byte[] hash) {
    @SuppressWarnings("resource")
    Formatter formatter = new Formatter();
    for (byte b : hash) {
    formatter.format("%02x", b);
    }
    return formatter.toString();
    }


    public static final int VERSION = 16;
    private static final long serialVersionUID = 1L;
    public Map<String, String> customParameters = new HashMap<String, String>();
    public Launcher launcher;
    public LoginForm loginForm;

    public LauncherFrame()
    {


    super(Config.title);

    setBackground(Color.BLACK);
    loginForm = new LoginForm(this);
    JPanel p = new JPanel();
    p.setLayout(new BorderLayout());
    p.add(loginForm, "Center");

    p.setPreferredSize(new Dimension(854, 480));

    setLayout(new BorderLayout());
    add(p, "Center");

    pack();
    setLocationRelativeTo(null);
    try
    {
    setIconImage(ImageIO.read(LauncherFrame.class.getResource("favicon.png")));
    } catch (IOException e1) {
    e1.printStackTrace();
    }

    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent arg0) {
    new Thread() {
    public void run() {
    try {
    Thread.sleep(30000L);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    System.out.println("FORCING EXIT!");
    System.exit(0);
    }
    }
    .start();
    if (launcher != null) {
    launcher.stop();
    launcher.destroy();
    }
    System.exit(0);
    } } );
    }

    public void playCached(String userName) {
    try {
    if ((userName == null) || (userName.length() <= 0)) {
    userName = "Player";
    }
    launcher = new Launcher();
    launcher.customParameters.putAll(customParameters);
    launcher.customParameters.put("userName", userName);
    launcher.init();
    removeAll();
    add(launcher, "Center");
    validate();
    launcher.start();
    loginForm = null;
    setTitle("Minecraft");
    } catch (Exception e) {
    e.printStackTrace();
    showError(e.toString());
    }
    }

    //--------------------------------
    // public String getFakeResult(String userName) {
    // return Util.getFakeLatestVersion() + ":35b9fd01865fda9d70b157e244cf801c:" + userName + ":12345:";
    // }
    //---------------------------------

    public void login(String userName, String password) {
    try {
    String parameters = "user=" + URLEncoder.encode(userName, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8") + "&version=" + (Config.version);
    String result = Util.excutePost(Config.auth, parameters);
    // String result = getFakeResult(userName);
    if (result == null) {
    showError("Невозможно подключится к серверу!");
    loginForm.setNoNetwork();
    return;
    }
    String applicationData = System.getenv("APPDATA");
    String f = applicationData + "/.paradyse/bin/minecraft.jar";

    try
    {

    MessageDigest md5 = MessageDigest.getInstance("MD5");
    String p = calculateHash(md5, f);


    URL localURL = new URL("http://paradyse.ru/no/minecraft/minecraft/md5.php?hash=" + p);
    BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(localURL.openStream()));
    String str2 = localBufferedReader.readLine();
    if (str2.equalsIgnoreCase("NO")){
    {
    GameUpdater.forceUpdate = true;
    }

    }
    else if (str2.equalsIgnoreCase("YES"))
    {
    }

    }
    и еще в папке bin появляются файлы без расширения:
    to
    version
    open
    и файлы с расширениями:
    system.php)
    stream&ticket=require_once(bd_con.php)



    catch(FileNotFoundException fnfn)
    {
    GameUpdater.forceUpdate = true;
    }




    if (!result.contains(":")) {
    if (result.trim().equals("Bad login")) {
    showError("Неправильный логин или пароль!");
    } else if (result.trim().equals("Старая версия лаунчера!")) {
    loginForm.setOutdated();
    showError("Нужно обновить лаунчер!");
    } else {
    showError(result);
    }
    loginForm.setNoNetwork();
    return;
    }
    String[] values = result.split(":");

    launcher = new Launcher();
    launcher.customParameters.putAll(customParameters);
    launcher.customParameters.put("userName", values[2].trim());
    launcher.customParameters.put("latestVersion", values[0].trim());
    launcher.customParameters.put("downloadTicket", values[1].trim());
    launcher.customParameters.put("sessionId", values[3].trim());
    launcher.init();

    if (LoginForm.server == "1") {
    launcher.customParameters.put("server", Config.serverip1);
    launcher.customParameters.put("port", Config.serverport1);}
    launcher.init();

    if (LoginForm.server == "2") {
    launcher.customParameters.put("server", Config.serverip1);
    launcher.customParameters.put("port", Config.serverport2);}
    launcher.init();

    if (LoginForm.server == "3") {
    launcher.customParameters.put("server", Config.serverip1);
    launcher.customParameters.put("port", Config.serverport3);}
    launcher.init();
    if (LoginForm.server == "4") {
    launcher.customParameters.put("server", Config.serverip1);
    launcher.customParameters.put("port", Config.serverport4);}
    launcher.init();
    if (LoginForm.server == "5") {
    launcher.customParameters.put("server", Config.serverip1);
    launcher.customParameters.put("port", Config.serverport5);}
    launcher.init();
    if (LoginForm.server == "6") {
    launcher.customParameters.put("server", Config.serverip1);
    launcher.customParameters.put("port", Config.serverport6);}
    launcher.init();



    removeAll();
    add(launcher, "Center");
    validate();
    launcher.start();
    loginForm.loginOk();
    loginForm = null;
    setTitle("Minecraft");
    } catch (Exception e) {
    e.printStackTrace();
    showError(e.toString());
    loginForm.setNoNetwork();
    }
    }

    private void showError(String error) {
    removeAll();
    add(loginForm);
    loginForm.setError(error);
    validate();
    }

    public boolean canPlayOffline(String userName) {
    Launcher launcher = new Launcher();
    launcher.customParameters.putAll(customParameters);
    launcher.init(userName, null, null, null);
    return launcher.canPlayOffline();
    }

    public static void main(String[] args) {
    try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch (Exception localException) {
    }
    LauncherFrame launcherFrame = new LauncherFrame();
    launcherFrame.setVisible(true);
    launcherFrame.customParameters.put("stand-alone", "true");

    if (args.length >= 3) {
    String ip = args[2];
    String port = "25565";
    if (ip.contains(":")) {
    String[] parts = ip.split(":");
    ip = parts[0];
    port = parts[1];
    }

    launcherFrame.customParameters.put("server", ip);
    launcherFrame.customParameters.put("port", port);
    }

    if (args.length >= 1) {
    launcherFrame.loginForm.userName.setText(args[0]);
    if (args.length >= 2) {
    launcherFrame.loginForm.password.setText(args[1]);
    launcherFrame.loginForm.doLogin();
    }
    }
    }
    }

    и еще несмотря на то что я файлы по фтп закинул,обновляет((
     
  19. egor26333

    egor26333 Активный участник

    Trophy Points:
    68
    Имя в Minecraft:
    egor26333
    Да, извините забыл написать, что теперь все сохроняет в нужную мне папку, а как сделать теперь, что бы работали моды? У меня в minecraft.jar стоит forge папку META-INF я удалил, когда я закачиваю на хостинг в папку mods мод, при загрузке minecraft черный экран. В client.zip две папки mods и bin. P.S у меня minecraft 1.4.6
     
  20. REZAYS

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

    Trophy Points:
    153
    Ошибка при обновлении лаунчера-
    Exception in thread "Thread-5" java.lang.SecurityException: SHA1 digest error for bag.class
    at sun.security.util.ManifestEntryVerifier.verify(Unknown Source)
    at java.util.jar.JarVerifier.processEntry(Unknown Source)
    at java.util.jar.JarVerifier.update(Unknown Source)
    at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source)
    at sun.misc.Resource.getBytes(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at net.minecraft.client.MinecraftApplet.init(SourceFile:38)
    at ru.maximusorg.launcher.Launcher.replace(Launcher.java:143)
    at ru.maximusorg.launcher.Launcher$1.run(Launcher.java:87)
    Нативсы скачивал с Офф сайта,все правильно настроил.С чем это может быть связано?
     
  21. Markls1

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

    Trophy Points:
    123
    Skype:
    mistercraftg
    Имя в Minecraft:
    MarklsDidle
    Mistercraftg
     

Share This Page