Вообщем, буду вас учить зарабатывать денюжки, или юзать СВОЙ лаунчер на Своём сервере)
А внизу будут сорцы лаунчера авторизацией и запуском
Топик я разобью по частям:
1. Авторизация
2. Запуск Minecraft
3. Остальное(Потом допишем
)
Видео-уроки(Болело горло, извиняйте):
Начнём с 1 части...
1 ЧАСТЬ:
Код авторизации:
Код:
string username = Login.Text;
string pattern = @"\d*:\w*:\w*:\w*";
Regex regex = new Regex(pattern);
WebRequest request = WebRequest.Create([COLOR=#ff0000]"http://clannr.org/scripts/login/auth.php"[/COLOR]);
request.Method = "POST";
string postData = [COLOR=#ff0000]"user=" + Login.Text + "&password=" + Password.Text + "&version=13"[/COLOR];
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
string s = sr.ReadToEnd();
P.S Я тут своё юзал, так что не обижайтесь, если что-то не подходит именно вам...
string username = Login.Text; - Login.Text - textBox называется Login
string pattern = @"\d*:\w*:\w*:\w*"; - Строка, проверка ответа с сервера, пока не нужна
2 строка(тут мне было лень копировать каждую строку) -
3 строка - регекс и тд - Тот же самый паттерн(использование)
4 строка - Создание запроса(Заканчивается аж на... 15 строчке(код до конца)
Теперь рассмотрим строчку WebRequest request =... :
Что туда писать? Ссылку на авторизацию...
Далее, строка string postData = "user="... :
Строка, отвечающая за аргументы запроса, т.е ник, пароль, версия лаунчера.
Далее, я думаю, разъяснять не нужно, потому что вы и так читать не любите

D
Запрос авторизации готов! Что теперь? Теперь нужно проверить ответ с сервера!:
Код:
if (responseFromServer.Contains(" Bad login"))
{
MessageBox.Show("Неправильный логин/пароль!");
}
else if (responseFromServer.Contains(" Old version"))
{
MessageBox.Show("Обновите лаунчер!(Скачайте новую версию с сайта clanNr.org)");
}
Смотрим...
if - переводится как ЕСЛИ, т.е перевод скриптового языка: если ответ с сервера равен " Bad Login", то показывает окно с текстом, неправильный логин или пароль
else if - ИНАЧЕ ЕСЛИ, т.е перевод: Иначе если 1 ЕСЛИ не равняется, то проверка: ответ с сервера равен " Old Version" то выскакивает окошко.... ну дальше понятно...
Авторизация готова!
ЧАСТЬ 2
Запуск Minecraft после успешной авторизации с парсингом сессии
После авторизации, прямо сразу же пишем:
Код:
else if (match.Success)
{
string input = responseFromServer;
string[] split = input.Split(':');
string final = split[3];
ProcessStartInfo mcStartInfo = new ProcessStartInfo("javaw", "-Xms1G -Xmx1G -cp \"" + appData + "\\.ClanNR\\bin\\minecraft1.jar;" + appData + "\\.ClanNR\\bin\\jinput.jar;" + appData + "\\.ClanNR\\bin\\lwjgl.jar;" + appData + "\\.ClanNR\\bin\\lwjgl_util.jar \" -Djava.library.path=\"" + appData + "\\.ClanNR\\bin\\natives\" net.minecraft.client.Minecraft" + " " + username;
Process.Start(mcStartInfo);
this.Close();
reader.Close();
dataStream.Close();
response.Close();
}
Разбираем:
string[] split =... - проверка сессии, так же, как и 2 строка
ProcessStartInfo... - Аргументы запуска. Изменяйте как пожелаете
Process.Start... - Запуск Minecraft
Остальные строчки закрывают запрос (Не позволяют запрос оставаться даже после успешного входа)
Вход готов! Тестируйте!
Оказывается, тут нашёлся ещё 1 C#-дев, вот вам строка, ускоряющая процесс POST-запроса(Авторизации)(Спасибо
Raptor2108):
Код:
request.Proxy = new WebProxy();
ДОПОЛНЯЖЖКИ:
Делаем показ скина:
1. Изменяем кнопку с текстом Старт! на "Вход!"
2. Добавляем точно такую же(копию) кнопку, и размещаем её точно так же, как и кнопка входа
3. Добавим свойства(в свойствах формы, т.е. в граф. редакторе):
Кнопка Старт! - Visible = False
Кнопка Вход! - Visible = True
Далее смотрим по видео, тут описывать долго и нудно