Войти или зарегистрироваться

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

  • Автор темы Автор темы Ccc
  • Дата начала Дата начала
Там должна быть папка bin(в client,zip) а в ней minecraft.jar+3 файлика lwjgl и прочее+папка natives
 
Здравствуйте, у меня вопрос, а как сделать так, что бы лаунчер sashok724 скачивал моды BuildCraft, IndustrialCraft и т.д, и что бы они (естественно) работали?
 
Их нужно поместить в клиент
Меня интересует как сделать выбор сервера и загрузка к нему модов
 
Помогите кто-нибудь. Я еще понял что клиент использует стандарт ную папку .minecraft где исправить что бы было по пути проект/HiTech?
 
При любом нике и пароле меня пускает в игру.Можете сказать,что я не так сделал или выкладывать конфиги?
 
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
 
Проблема с Launcher'ом "сашка".

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

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

Подскажите пожалуйста, где может быть загвоздка.
 
Проблема с Launcher'ом "сашка".

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

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

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

Not premium user и Bad Login появляется когда сервер не настроен под твою систему авторизации(не изменена ссылка на файл checkserver.php) и online mod:true
Попробуй поменять online mod на false или настрой так,как сказано здесь
 
При любом нике и пароле меня пускает в игру.Можете сказать,что я не так сделал или выкладывать конфиги?
выложи конфиги и скажи какой лаунчер использовал
 
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
скинь файлы,которые заливал на сайт
 
Помогите кто-нибудь. Я еще понял что клиент использует стандарт ную папку .minecraft где исправить что бы было по пути проект/HiTech?
вы лаунчере отредактировать название папки и в клиенте в minecraft.jar в папке net/minecraft/client/файл Minecraft.class нужно отредактировать через InClassTranslator
так делал?
 
Лаунчер от 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();
}
}
}
}

и еще несмотря на то что я файлы по фтп закинул,обновляет((
 
вы лаунчере отредактировать название папки и в клиенте в minecraft.jar в папке net/minecraft/client/файл Minecraft.class нужно отредактировать через InClassTranslator
так делал?
Да, извините забыл написать, что теперь все сохроняет в нужную мне папку, а как сделать теперь, что бы работали моды? У меня в minecraft.jar стоит forge папку META-INF я удалил, когда я закачиваю на хостинг в папку mods мод, при загрузке minecraft черный экран. В client.zip две папки mods и bin. P.S у меня minecraft 1.4.6
 
Ошибка при обновлении лаунчера-
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)
Нативсы скачивал с Офф сайта,все правильно настроил.С чем это может быть связано?
 
Назад
Верх