Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Лаунчер Империя

Brhr

Старожил
Пользователь
Баллы
103
Имя в Minecraft
Brhr
launcher.png
​
​
Лаунчер от "Империи". Распространяется бесплатно, уже были случаи его продажи, причем этот человек даже не удосужился объяснять своим покупателям "как" и "что" настраивать.​

Лаунчер многофункционален:​
- Профиль​
- Показатель баланса (можно связать с ЛК Добрика)​
- Система скинов​
- Просмотр скина​
- Красивый дизайн​
- Мультиклиент​
- Проверка мд5​
- Хранение настроек лаунчера​
- Загрузка настроек с сайта если сайт не доступен ставятся настройки из лаунчера​
- Приветствие​
- Регистрация прямо в лаунчере​

Исходники лаунчера хорошо редактируются через NetBeans и Eclipse. Но вы можете использовать любую другую программную среду.​
Регистрация/авторизация работает с любыми CMS, но лучше всего использовать DLE (уже настроена авторизация).​
​
Туториалы по редактирования на NetBeans и Eclipse от Star Cheater.

Как правильно все сделать в NetBeans:
Запускаем NetBeans, жмем Файл -> Создать проект -> Проект Java с существующими исходными файлами -> Имя проекта [как назовете] - Существующие исходные файлы [Добавить папку - Путь до папки src с исходниками лаунчера] -> Готово. Потом в проекте есть папка Библиотеки - пкм по ней - Добавить архив jar или папку - указываете два файла commons-codec-1.6.jar и commons-io-2.3.jar - Open.
Последний шаг - клик пкм на названии проекта - Свойства - первая вкладка Исходные файлы - в окне внизу Кодировка - windows-1251 - ОК.
Все! Очистить и построить.
PS. Возникла ошибка в LoginForm.java 41-43 строки. Можно смело закоментировать их - всеравно не используются.

Как правильно все сделать в Eclipse:
Запускаем Eclipse, запоминаем куда положили workspace
File - New Java Project - Project name [как назовете проект], Use an execution environment JRE: [лучше JavaSE-1.7], Project layout - (*) Create separate folders for sources and class files -> Finish.
Клик по [+] проекта. Открываем вторым окном папку с готовыми исходниками (внутри папки src), выделяем их, и зажав лкм переносим на папку src внутри Eclipse. Появится вопрос - File and Folder Operation, Select how files and folders should be imported into the project: Выбираем Copy files and folders - OK. Сразу появятся ошибки - это нормально.
Теперь открываем архив с commons-codec-1.6.jar и commons-io-2.3.jar (они находятся в архиве lib или Libraries), выделяем их и переносим на папку проекта в Eclipse. В появившемся окне аналогично выбираем Copy files.
Теперь кликаем пкм на имени проекта, Properties -> (слева в новом окне) Java Build Path -> (По центру в окне) Libraries -> Add Jar -> Кликаем по [+] Нашего проекта -> Выделяем наши библиотеки -> ОK -> OK.
После этого ошибки должны исчезнуть. На Warnings можно смело плевать. Все!


Скрины лаунчера:​
examplelaunch.png
​
*DOWNLOAD скачать лаунчер*​
*DOWNLOAD веб часть*​

(для редактирования скина загрузите char.png вашего сервера или стандартный char.png который можно скачать на оф. сайте)​

char.png - ссылка.


Веб часть для DLE (присутствуют файлы Webmcr, описание по настройке в архиве) - ссылка.
Измененные, рабочие исходники лаунчера - ссылка.

Доделанный лаунчер, предоставленный XeroXP - ссылка.

Урезанная система авторизации от byxar'а + небольшой скрипт отладки от Star Cheater - позволяет посмотреть, как на самом деле на хостинге называются базы данных и что в них лежит.
Для byxar'овской системы ОБЯЗАТЕЛЬНО настроить connect.php. лаунчер подключать к login.php - ссылка.

P.S. Дабы автор не возникал - тема была взята и немного переоформлена с этого сайта.​
 
Он и так в паблике :fp:
И да тема 146% копия того что на рус*акките
 
Я и написал о том, что тема слита снизу.
 
Ну если он в паблике то я пожалуй видео-урок сделаю, как его поставить, думаю многим понравится :)
 
когда начал редактировать
в ​
NetBeans​

с самого начала пишет ошибку в LoginForm.java на 67 строчке и на 1101​
​

ПОМОГИТЕ ПЛИЗ !
 
Лаунчер для Java 7 и только.

http://gengine/monitor/monitorLaunch.php
Где взять?)
писать самому) есть статьи по типу "Делаем свой статус\мониторинг сервера Minecraft", там сможешь сделать свой вывод.
Для себя сделал формат Offline или 0:100 (онлайн:макс_колво_игроков), но для этого пришлось править LoginForm.java, конкретно функцию private JPanel buildMonitor()
Java:
try {
        localURL = new URL(setting.monitorLink);
        onofoff = 2;
        BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader(localURL.openStream()));
        String result = localBufferedReader.readLine();
          text.setForeground(onColor);
        text.setFont(fontMonitor);
     
        if (result.equals("Offline")){
            text.setText("Сервер выключен");
            text.setForeground(offColor);
            onofoff = 2;
        } else {
            String[] values = result.split(":");
            String onlineUser = values[0];
            String allUser = values[1];
            if (result.contains(":")){
                text.setText("Сервер включен, играют " + onlineUser + " из " + allUser + " возможных");
                onofoff = 1;
            }
            else{
                text.setText("Неизвестная ошибка");
                text.setForeground(offColor);
                onofoff = 2;
            }
        }
        } catch (Exception e) {
              e.printStackTrace();
              text.setText("Ошибка при подключении к серверу");
              text.setForeground(offColor);
              onofoff = 2;
        }
 
Вот оригинальный monitorLaunch.php
<?php
/**
* Minecraft Server Status Class
* @copyright© 2011 Nox Nebula - Patrick Kleinschmidt
* @websitehttps://github.com/NoxNebula/MC-Server-Status
* @licenseGNU Public Licence - Version 3
* @authorNox Nebula - Patrick Kleinschmidt
**/

class MinecraftStatus {
private $Socket, $Info;
public $Online, $MOTD, $CurPlayers, $MaxPlayers, $IP, $Port, $Error;

public function __construct($IP, $Port = '25565') {
$this->IP = $IP;
$this->Port = $Port;

// Remove any protocols from serveraddress
if(preg_match('/(.*):\/\//', $this->IP)) {
$this->IP = preg_replace('/(.*):\/\//', '', $this->IP);
}
if(strpos($this->IP, '/') !== false) {
$this->IP = rtrim($this->IP, '/');
if(strpos($this->IP, '/') !== false) {
$this->Failed();
$this->Error = 'Unsupported IP/Domain format, no \'/\'s allowed';
return;
}
}
if(preg_match_all('/:/', $this->IP, $matches) > 1) {
unset($matches);
// IP6
if(strpos($this->IP, '[') === false && strpos($this->IP, ']') === false)
$this->IP = '['.$this->IP.']';
} else if(strpos($this->IP, ':') !== false) {
$this->Failed();
$this->Error = 'Unsupported IP/Domain format';
return;
}

if($this->Socket = @stream_socket_client('tcp://'.$this->IP.':'.$Port, $ErrNo, $ErrStr, 1)) {
// If IP6 remove brackets
if(strpos($this->IP, '[') === 0 && strpos($this->IP, ']') === (strlen($this->IP) - 1))
$this->IP = trim($this->IP, '[]');

$this->Online = true;

fwrite($this->Socket, "\xfe");
$Handle = fread($this->Socket, 2048);
$Handle = str_replace("\x00", '', $Handle);
$Handle = substr($Handle, 2);
$this->Info = explode("\xa7", $Handle); // Separate Infos
unset($Handle);
fclose($this->Socket);

if(sizeof($this->Info) == 3) {
$this->MOTD = $this->Info[0];
$this->CurPlayers = (int)$this->Info[1];
$this->MaxPlayers = (int)$this->Info[2];
$this->Error = false;
} else if(sizeof($this->Info) > 3) { // Handle error, Minecraft don't handle this.
$Temp = '';
for($i = 0; $i < sizeof($this->Info) - 2; $i++) {
$Temp .= ($i > 0 ? '§' : '').$this->Info[$i];
}
$this->MOTD = $Temp;
$this->CurPlayers = (int)$this->Info[sizeof($this->Info) - 2];
$this->MaxPlayers = (int)$this->Info[sizeof($this->Info) - 1];
$this->Error = 'Faulty motd or outdated script';
} else {
$this->Failed();
$this->Error = 'Unexpected error, cause may be an outdated script';
}
} else {
$this->Online = false;
$this->Failed();
$this->Error = 'Can not reach the server';
}
}

public function Info() {
return array(
'MOTD' => $this->MOTD,
'CurPlayers' => $this->CurPlayers,
'MaxPlayers' => $this->MaxPlayers
);
}

private function Failed() {
$this->MOTD = false;
$this->CurPlayers = false;
$this->MaxPlayers = false;
}
}
?>
<?php
header('charset: UTF-8;Content-Length:en-US;');
$Server = new MinecraftStatus('IP');
$online1 = $Server->Online ? 'ON' : 'OFF';

if (!strcmp($online1, 'OFF')){
die ("OFF");
} else {
echo "ON:".$Server->CurPlayers.":".$Server->MaxPlayers.":";
}
?>
 
Вот оригинальный monitorLaunch.php

Здорово, никаких доп плагинов не нужно. Можешь подсказать, где skinLoad.php еще можно найти?

С учетом оригинального monitorLaunch.php, в моей правке строки
Java:
 if (result.equals("Offline"))
...
String onlineUser = values[0];
String allUser = values[1];
нужно заменить на
Java:
if (result.equals(" OFF"))
...
String onlineUser = values[1];
String allUser = values[2];
 
Здорово, никаких доп плагинов не нужно. Можешь подсказать, где skinLoad.php еще можно найти?

С учетом оригинального monitorLaunch.php, в моей правке строки
Java:
 if (result.equals("Offline"))
...
String onlineUser = values[0];
String allUser = values[1];
нужно заменить на
Java:
if (result.equals(" OFF"))
...
String onlineUser = values[1];
String allUser = values[2];
Его нет к сожалению, исходники удалил с пк, еще давно. Но если найдете кидайте в тред, соберу заново исходники :)
 
печальные результаты копания показывают, что char.png с дефаултным скином должен быть обязательно в корне с прочими файлами web-обвязки.
в mysql должна быть база base с таблицей accounts с полями
id int(11) AUTO_INCREMENT
playername text
password text
email text
registerdate date

в registerServer.php ошибка при создании пароля.
нужно исправить
PHP:
$postPass = 148822825634;
на
PHP:
$postPass = $password;
В loginServer.php если не сделать обвязку с iconomy не позволит войти. как временное решение
PHP:
if($checkPass == $row[password])
{
$mysqlZapros2 = "SELECT username, balance
FROM iconomy
WHERE username ='{$login2}'
LIMIT 1";
$resultMysql2 = mysql_query($mysqlZapros2) or die("1:35b9fd01865fda9d70b157e244cf801c:$loginName:12345:0:");
$row2 = mysql_fetch_assoc($resultMysql2);
$balance = $row2[balance];
echo "1:35b9fd01865fda9d70b157e244cf801c:$loginName:12345:$balance:";
}

Как баг обнаружил, что даже при установке своего расположения папки в лаунчере, файлы ресурсов и сохранений все равно создаются в папке .minecraft
 
Как баг обнаружил, что даже при установке своего расположения папки в лаунчере, файлы ресурсов и сохранений все равно создаются в папке .minecraft
Я не помню что за класс отвечает за это, но это в minecraft.jar такое, а не от лаунчера.
 

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

Назад
Верх