Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[SZUKAM] Logowanie Minecraft


Rekomendowane odpowiedzi

Opublikowano

Witajcie! Mam problem z logowaniem premium, kilka miesięcy temu pisałem swój launcher (jest obecnie opublikowany na forum) i do dziś brakuje mi tej funkcji, prace (wtedy) stanąły na następującym kodzie:

 

Private Shared Sub odpalMC(ByVal login As String, ByVal haslo As String, Optional ByVal minimumRam As Integer = 512, Optional ByVal maksRam As Integer = 1024, Optional ByVal wersja As Integer = 147)
        Dim sciezka As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\"
        'ścieżka do appdata
        If Not System.IO.File.Exists(String.Format("{0}.minecraft/bin/minecraft.jar", sciezka)) Then
            'jeżeli minecraft nie znajduje się na dysku...
            Return
        End If
        'wychodzimy z funkcji
        Dim psi As New System.Diagnostics.ProcessStartInfo("java")
        psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden
        'ukrywamy konsolę od mc
        Dim response As String = pobierzDane(login, haslo, wersja)
        'pobieramy dane w formacie ?:deprecated:login:sesja (jeżeli wersja jest starsza niż aktualna (147) będzie posiadała - na początku):?
        If response.Contains("Bad") Then
            MsgBox("Problem z logowaniem")
            'jeżeli nie istnieje konto o z podanym loginem i hasłem uzyskamy "Bad login"
            Return
        End If
        'opuszczamy funkcję
        psi.Arguments = String.Format("-Xms{0}M -Xmx{1}M -Djava.library.path={2}.minecraft/bin/natives -cp {2}.minecraft/bin/minecraft.jar;{2}.minecraft/bin/jinput.jar;{2}.minecraft/bin/lwjgl.jar;{2}.minecraft/bin/lwjgl_util.jar net.minecraft.client.Minecraft", minimumRam, maksRam, sciezka, login, response.Split(":")(3))
        'argumenty dla javy
        System.Diagnostics.Process.Start(psi)
        'Shell("start javaw -Xmx1000m -Djava.library.path=%APPDATA%/.minecraft/bin/natives -cp %APPDATA%/.minecraft/bin/minecraft.jar;%APPDATA%/.minecraft/bin/jinput.jar;%APPDATA%/.minecraft/bin/lwjgl.jar;%APPDATA%/.minecraft/bin/lwjgl_util.jar net.minecraft.client.Minecraft", response.Split(":"c)(2), response.Split(":"c)(3))
        'uruchamiamy MC
    End Sub
    Private Shared Function pobierzDane(ByVal login As String, ByVal haslo As String, ByVal wersja As Integer) As String
        Return New System.IO.StreamReader(System.Net.HttpWebRequest.Create(String.Format("https://login.minecraft.net?user={0}&password={1}&version={2}", login, haslo, wersja)).GetResponse().GetResponseStream()).ReadToEnd()
    End Function


 

Jeśli macie jakieś pomysły, bardzo proszę o pomoc. Samo logowanie działa jednak mam problem z uruchomieniem gry :) Udało mi się ją włączyć ale nick to email z logowania ;c

apple.png

Opublikowano

Nie o to mi chodziło i źle opisałem mój problem. To co ty dałeś w niczym się nie przyda <_< czytaj a potem dodawaj odpowiedzi...

 

Zacznijmy od tego że nawet wkleiłem nie to co trzeba :huh: Dwa,

psi.Arguments = String.Format("-Xms{0}M -Xmx{1}M -Djava.library.path={2}.minecraft/bin/natives -cp {2}.minecraft/bin/minecraft.jar;{2}.minecraft/bin/jinput.jar;{2}.minecraft/bin/lwjgl.jar;{2}.minecraft/bin/lwjgl_util.jar net.minecraft.client.Minecraft", minimumRam, maksRam, sciezka, login, response.Split(":")(3))

to nonpremium <_<, trzy, pytasz się do czego meil, a pomyśl że teraz dużo osób używa konta z mojang.com, loginem jest email ;) Wprowadziłem w błąd i przepraszam ;) Poradziłem sobie posiłkując się tym:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

//Additional includes
using System.IO;
using System.Net;
using System.Diagnostics;
using System.Windows.Forms;

namespace SharpLauncher
{
    class Class1
    {
    }
}

namespace MCLoginLib
{
    public class Login
    {
        /// <summary>
        /// Used to generate a session with login.minecraft.net for online use only
        /// </summary>
        /// <param name="username">The player's username</param>
        /// <param name="password">The player's password</param>
        /// <param name="clientVer">The client version (look here http://wiki.vg/Session)</param>
        /// <returns>Returns 5 values split by ":" Current Version : Download Ticket : Username : Session ID : UID</returns>
        public static string generateSession(string username, string password, int clientVer)
        {
            string netResponse = httpGET("https://login.minecraft.net?user=" + username + "&password=" + password + "&version=" + clientVer);
            return netResponse;
        }

        public static string httpGET(string URI)
        {
            WebRequest req = WebRequest.Create(URI);
            WebResponse resp = req.GetResponse();
            StreamReader sr = new StreamReader(resp.GetResponseStream());
            return sr.ReadToEnd().Trim();
        }

        /// <summary>
        /// Used to start minecraft with certain arguments
        /// </summary>
        /// <param name="mode">True for online and false for offline</param>
        /// <param name="ramMin">Equivalent to the -Xms argument</param>
        /// <param name="ramMax">Equivalent to the -Xmx argument</param>
        /// <param name="username">The player's username</param>
        /// <param name="sessionID">The session id generated from login.minecraft.net</param>
        /// <param name="debug">True for console boot and false for no console</param>
        public static void startMinecraft(bool mode, int ramMin, int ramMax, string username, string sessionID, bool debug)
        {
            string appPath = Path.GetDirectoryName(Application.ExecutablePath) + @"\";
            string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\";
            Process proc = new Process();
            if (debug == true)
            {
                proc.StartInfo.FileName = "java";
            }
            else
            {
                proc.StartInfo.FileName = "javaw";
            }

            //Online and offline modes
            if (mode == true)
            {
                proc.StartInfo.Arguments = "-Xms" + ramMin + "M -Xmx" + ramMax + "M -Djava.library.path=" + appData + ".minecraft/bin/natives -cp " + appData + ".minecraft/bin/minecraft.jar;" + appData + ".minecraft/bin/jinput.jar;" + appData + ".minecraft/bin/lwjgl.jar;" + appData + ".minecraft/bin/lwjgl_util.jar net.minecraft.client.Minecraft " + username + " " + sessionID;
            }
            else
            {
                proc.StartInfo.Arguments = "-Xms" + ramMin + "M -Xmx" + ramMax + "M -Djava.library.path=" + appData + ".minecraft/bin/natives -cp " + appData + ".minecraft/bin/minecraft.jar;" + appData + ".minecraft/bin/jinput.jar;" + appData + ".minecraft/bin/lwjgl.jar;" + appData + ".minecraft/bin/lwjgl_util.jar net.minecraft.client.Minecraft " + username;
            }
            proc.Start();
        }
    }
}

(C#), ale na pewno pomoże :) I żeby rozwiązać problem z loginem/meilem:

 

string sessInfo = MCLoginLib.generateSession(username, password)
string[] info = sessInfo.Split(':');
string username = info[2];

apple.png

Opublikowano

Hmm, prace stanęły na kodzie z mojego poradnika?

Sprawdź co masz w response

Opublikowano

Hmm, prace stanęły na kodzie z mojego poradnika?

Sprawdź co masz w response

 

Bo byłem głupi, niepotrzebnie bawiłem się narzędziami C#->VB.NET Online itd. <_< Osobiście problem rozwiązałem :P

apple.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...