Attribute VB_Name = "LogInLogOut"
Private Headers As String
Private LoginData As String

Public Function LogOut()

FrmConnect.cmd_logout.Enabled = False
FrmPackets.txt_packetlogs_dec.Text = ""
FrmPackets.txt_packetlogs_enc.Text = ""
FrmBrowser.Hide
FrmConnect.txt_status.Text = "Status: Logged out"
FrmConnect.cbo_hotel.Enabled = True
FrmConnect.txt_username.Enabled = True
FrmConnect.txt_password.Enabled = True
FrmConnect.cmd_logout.Enabled = False
FrmConnect.Show
FrmConnect.txt_status.Text = "Status: Logging out..."
' Zu Ausloggen navigieren
Do
DoEvents
Loop Until FrmBrowser.HabboNet.StillExecuting = False
Headers = "User-Agent: Mozilla/5.0" & vbCrLf & "Cookie: LOGINCOOKIE=ok" & vbCrLf & "Content-Type: application/x-www-form-urlencoded" & vbCrLf
FrmBrowser.HabboNet.Execute FrmConnect.Hotel & "/account/logout", "POST", "", Headers
FrmConnect.txt_status.Text = "Status: Logged out"
Do
DoEvents
Loop Until FrmBrowser.HabboNet.StillExecuting = False
FrmBrowser.HabboNet.Execute FrmConnect.Hotel & "/account/logout_ok", "POST", "", Headers
Do
DoEvents
Loop Until FrmBrowser.HabboNet.StillExecuting = False

End Function

Public Function LogIn(Hotel As String, Username As String, Password As String)
On Error GoTo LoginFailed

Dim HTTPS_Hotel As String
Dim Source As String
Dim PageTicket As String
    
    FrmConnect.Hotel = Hotel
    FrmConnect.Username = Username
    FrmConnect.Password = Password
    
        ' Write to hostsfile
        If fileexists(GetWinDir & "\system32\drivers\etc\hosts") = False Then
        txt_WriteAll GetWinDir & "\system32\drivers\etc\hosts", "# Copyright (c) 1993-1999 Microsoft Corp."
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "#"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# Dies ist eine HOSTS-Beispieldatei, die von Microsoft TCP/IP"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# für Windows 2000 verwendet wird."
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "#"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# Diese Datei enthält die Zuordnungen der IP-Adressen zu Hostnamen."
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# Jeder Eintrag muss in einer eigenen Zeile stehen. Die IP-"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# Adresse sollte in der ersten Spalte gefolgt vom zugehörigen"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# Hostnamen stehen."
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# Die IP-Adresse und der Hostname müssen durch mindestens ein"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# Leerzeichen getrennt sein."
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "#"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# Zusätzliche Kommentare (so wie in dieser Datei) können in"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# einzelnen Zeilen oder hinter dem Computernamen eingefügt werden,"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# aber müssen mit dem Zeichen '#' eingegeben werden."
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "#"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "# Zum Beispiel:"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "#"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "#      102.54.94.97     rhino.acme.com          # Quellserver"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "#       38.25.63.10     x.acme.com              # x-Clienthost"
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", ""
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", "127.0.0.1       localhost"
        End If
        
        If StrCount(txt_ReadAll(GetWinDir & "\system32\drivers\etc\hosts"), "127.0.0.1" & "       " & "SnGScriptConsole") < 1 Then
        FrmConnect.txt_status.Text = "Status: Writing new host to hosts file..."
        txt_AppendLine GetWinDir & "\system32\drivers\etc\hosts", vbNewLine & "127.0.0.1" & "       " & "SnGScriptConsole"
        FrmConnect.txt_status.Text = "Status: Wrote new host to hosts file"
        End If
        
    FrmBrowser.Hide
    FrmBrowser.HabboBrowser.Silent = True
    
        Do
        DoEvents
        Loop Until FrmBrowser.HabboNet.StillExecuting = False
        Headers = "User-Agent: Mozilla/5.0" & vbCrLf & "Cookie: LOGINCOOKIE=ok" & vbCrLf & "Content-Type: application/x-www-form-urlencoded" & vbCrLf
        FrmBrowser.HabboNet.Execute FrmConnect.Hotel & "/account/logout", "POST", "", Headers
        FrmConnect.txt_status.Text = "Status: Logged out"
        Do
        DoEvents
        Loop Until FrmBrowser.HabboNet.StillExecuting = False
        FrmBrowser.HabboNet.Execute FrmConnect.Hotel & "/account/logout_ok", "POST", "", Headers
        Do
        DoEvents
        Loop Until FrmBrowser.HabboNet.StillExecuting = False
        HTTPS_Hotel = Split(Hotel, "http://www.")(1)
        HTTPS_Hotel = "https://www." & HTTPS_Hotel
        'Gets the Html source
        Source = GetUrlSource(HTTPS_Hotel & "/account/login?service=%2Fsecurity_check")
        ' Splits it to get ticket
        If InStr(Source, "URL has moved") Then
        Do
        DoEvents
        Loop Until FrmBrowser.HabboNet.StillExecuting = False
        Headers = "User-Agent: Mozilla/5.0" & vbCrLf & "Cookie: LOGINCOOKIE=ok" & vbCrLf & "Content-Type: application/x-www-form-urlencoded" & vbCrLf
        FrmBrowser.HabboNet.Execute FrmConnect.Hotel & "/account/logout", "POST", "", Headers
        FrmConnect.txt_status.Text = "Status: Logged out"
        Do
        DoEvents
        Loop Until FrmBrowser.HabboNet.StillExecuting = False
        SleepUntil (2000)
        Source = GetUrlSource(HTTPS_Hotel & "/account/login?service=%2Fsecurity_check")
        End If
        ' Goes to the Habbo's site to get the ticket
        If FrmConnect.opt_version_17.Value = True Then
        PageTicket = Split(Source, "<input type=" & Chr(34) & "hidden" & Chr(34) & " name=" & Chr(34) & "loginTicket" & Chr(34) & " value=" & Chr(34))(1)
        PageTicket = Split(PageTicket, Chr(34) & " />")(0)
        Do
        DoEvents
        Loop Until FrmBrowser.HabboNet.StillExecuting = False
        Headers = "User-Agent: Mozilla/5.0" & vbCrLf & "Cookie: LOGINCOOKIE=ok" & vbCrLf & "Content-Type: application/x-www-form-urlencoded" & vbCrLf
        FrmBrowser.HabboNet.Execute FrmConnect.Hotel & "/login?page=/", "POST", "", Headers
        Do
        DoEvents
        Loop Until FrmBrowser.HabboNet.StillExecuting = False
        End If
        'Reauthentication
            If InStr(GetUrlSource(Hotel & "/client"), "reauthentication-submit") Then
            FrmConnect.txt_status.Text = "Reauthentication..."
                Do
                DoEvents
                Loop Until FrmBrowser.HabboNet.StillExecuting = False
                Headers = "User-Agent: Mozilla/5.0" & vbCrLf & "Cookie: LOGINCOOKIE=ok" & vbCrLf & "Content-Type: application/x-www-form-urlencoded" & vbCrLf
                LoginData = "&page=/&credentials.password=" & Password
                FrmBrowser.HabboNet.Execute HTTPS_Hotel & "/account/reauthenticate", "POST", LoginData, Headers
                Do
                DoEvents
                Loop Until FrmBrowser.HabboNet.StillExecuting = False
            Call FrmBrowser.SplitIt(Hotel & "/client")
            FrmBrowser.HabboBrowser.Height = 8655 - 12
            FrmBrowser.HabboBrowser.Width = 11565 - 1
            FrmPackets.txt_packetlogs_dec.Text = ""
            FrmPackets.txt_packetlogs_enc.Text = ""
            End If
            Do
            DoEvents
            Loop Until FrmBrowser.HabboNet.StillExecuting = False
            Headers = "User-Agent: Mozilla/5.0" & vbCrLf & "Cookie: LOGINCOOKIE=ok" & vbCrLf & "Content-Type: application/x-www-form-urlencoded" & vbCrLf
            If FrmConnect.opt_version_17.Value = True Then
            LoginData = "loginTicket=" & PageTicket & "&page=/&service=/security_check&credentials.username=" & Username & "&credentials.password=" & Password
            ElseIf FrmConnect.opt_version_18.Value = True Then
            LoginData = "page=/&service=/security_check&credentials.username=" & Username & "&credentials.password=" & Password
            End If
            FrmBrowser.HabboNet.Execute HTTPS_Hotel & "/account/submit", "POST", LoginData, Headers
            Do
            DoEvents
            Loop Until FrmBrowser.HabboNet.StillExecuting = False
        Do
        DoEvents
        Loop Until FrmBrowser.HabboBrowser.Busy = False
            If InStr(GetUrlSource(Hotel & "/client"), "login-submit") Then
LoginFailed:
            FrmConnect.txt_status.Text = "Status: Login failed..."
            FrmBrowser.Hide
            FrmConnect.cbo_hotel.Enabled = True
            FrmConnect.txt_username.Enabled = True
            FrmConnect.txt_password.Enabled = True
            FrmConnect.cmd_logout.Enabled = False
            FrmConnect.Show
            Exit Function
            End If
        Call FrmBrowser.SplitIt(Hotel & "/client")
        FrmBrowser.HabboBrowser.Height = 8655 - 12
        FrmBrowser.HabboBrowser.Width = 11565 - 1
        FrmPackets.txt_packetlogs_dec.Text = ""
        FrmPackets.txt_packetlogs_enc.Text = ""

        If fileexists(App.path & "\" & "login.html") = True Then
        fDelete App.path & "\" & "login.html", False, False
        End If
    
End Function
