Advertisement
daavid245

VB.NET CS:GO Lobby Finder

Mar 25th, 2015
841
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Imports System.Net
  2. Imports System.IO
  3.  
  4. Public Class Form1
  5.  
  6.     'Additional functions to wait for page load (not important)
  7.    '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8.  
  9.     Private Property pageready As Boolean = False
  10.  
  11.     Private Sub WaitForPageLoad()
  12.  
  13.         AddHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
  14.  
  15.         While Not pageready
  16.             Application.DoEvents()
  17.         End While
  18.  
  19.         pageready = False
  20.  
  21.     End Sub
  22.  
  23.     Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
  24.  
  25.         If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
  26.             pageready = True
  27.             RemoveHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
  28.         End If
  29.  
  30.     End Sub
  31.  
  32.     '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  33.  
  34.     'Actual functions:
  35.  
  36.     Private Function GetLobbyId(ByVal Address As String) As Long
  37.  
  38.         Dim content As String = ""
  39.         Dim wRequest As WebRequest
  40.         Dim wResponse As WebResponse
  41.         Dim stream As StreamReader
  42.  
  43.         Try
  44.             wRequest = WebRequest.Create(Address)
  45.             wResponse = wRequest.GetResponse
  46.  
  47.             stream = New StreamReader(wResponse.GetResponseStream)
  48.  
  49.             content = stream.ReadToEnd
  50.  
  51.             stream.Close()
  52.             wResponse.Close()
  53.  
  54.             Dim id As String = content.Split(New String() {"steam://joinlobby/730/"}, StringSplitOptions.None)(1)
  55.  
  56.             Return Convert.ToInt64(id.Split(New Char() {"/"})(0))
  57.  
  58.         Catch ex As Exception
  59.             Return 0
  60.         End Try
  61.  
  62.     End Function
  63.  
  64.     '////////////////////////////////////
  65.  
  66.     Dim WebBrowser1 As New WebBrowser
  67.  
  68.     Private Function CheckPlayer(ByVal Address As String) As Integer
  69.  
  70.         WebBrowser1.Navigate(Address)
  71.         WaitForPageLoad()
  72.  
  73.         For Each elem As HtmlElement In WebBrowser1.Document.GetElementsByTagName("span")
  74.  
  75.             If elem.GetAttribute("classname") = "actual_persona_name" Then
  76.                 Dim player As String = elem.InnerText
  77.  
  78.                 If player IsNot Nothing Then
  79.                     If playerList.Items.Contains(player) Then
  80.                         MsgBox("Player already on the list!", MsgBoxStyle.Information)
  81.                     Else
  82.                         playerList.Items.Add(player)
  83.                         linkList.Items.Add(Address)
  84.                     End If
  85.  
  86.                     Return 0
  87.                 End If
  88.  
  89.             End If
  90.  
  91.         Next
  92.  
  93.         MsgBox("There is no such player!", MsgBoxStyle.Information)
  94.         Return 0
  95.     End Function
  96.  
  97.     Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
  98.  
  99.         If RadioButton1.Checked Then
  100.             CheckPlayer("http://steamcommunity.com/id/" + playerName.Text)
  101.         Else
  102.             CheckPlayer(playerName.Text)
  103.         End If
  104.  
  105.         playerName.Text = ""
  106.     End Sub
  107.  
  108.  
  109.     Dim idl As Long = 0
  110.     Private Sub playerList_SelectedIndexChanged(sender As Object, e As EventArgs) Handles playerList.SelectedIndexChanged
  111.  
  112.         If playerList.SelectedItem IsNot Nothing Then
  113.             btnRemove.Enabled = True
  114.  
  115.             Dim index As Integer = playerList.SelectedIndex
  116.             Dim name As String = linkList.Items(index)
  117.  
  118.             idl = GetLobbyId(name)
  119.  
  120.             If idl = 0 Then
  121.                 Label1.Visible = True
  122.                 Label3.Visible = True
  123.                 Label4.Text = ""
  124.                 Label4.Visible = False
  125.  
  126.                 btnJoin.Enabled = False
  127.                 btnCopyToClip.Enabled = False
  128.             Else
  129.                 Label1.Visible = False
  130.                 Label3.Visible = True
  131.                 Label4.Text = idl
  132.                 Label4.Visible = True
  133.  
  134.                 btnJoin.Enabled = True
  135.                 btnCopyToClip.Enabled = True
  136.             End If
  137.  
  138.         Else
  139.             btnRemove.Enabled = False
  140.  
  141.             Label1.Visible = False
  142.             Label3.Visible = False
  143.             Label4.Text = ""
  144.             Label4.Visible = False
  145.  
  146.             btnJoin.Enabled = False
  147.             btnCopyToClip.Enabled = False
  148.         End If
  149.  
  150.     End Sub
  151.  
  152.     Private Function SaveLobby()
  153.  
  154.         Dim file As String = "players.ini"
  155.         Dim objWriter As New System.IO.StreamWriter(file, False)
  156.  
  157.         For i As Integer = 0 To playerList.Items.Count - 1
  158.  
  159.             objWriter.Write(playerList.Items(i) & vbNewLine)
  160.             objWriter.Write(linkList.Items(i) & vbNewLine)
  161.  
  162.         Next
  163.  
  164.         objWriter.Close()
  165.  
  166.     End Function
  167.  
  168.     Private Function ReadLobby()
  169.  
  170.         Dim file As String = "players.ini"
  171.  
  172.         Dim player As String
  173.         Dim link As String
  174.         Dim tmp As String
  175.  
  176.         If System.IO.File.Exists(file) = True Then
  177.             Dim objReader As New System.IO.StreamReader(file, False)
  178.  
  179.             Do While objReader.Peek() <> -1
  180.                 player = objReader.ReadLine()
  181.                 tmp = vbNewLine
  182.                 link = objReader.ReadLine()
  183.                 tmp = vbNewLine
  184.  
  185.                 playerList.Items.Add(player)
  186.                 linkList.Items.Add(link)
  187.             Loop
  188.  
  189.             objReader.Close()
  190.         End If
  191.  
  192.     End Function
  193.  
  194.     Private Sub btnRemove_Click(sender As Object, e As EventArgs) Handles btnRemove.Click
  195.         Dim index As Integer = playerList.SelectedIndex
  196.  
  197.         linkList.Items.RemoveAt(index)
  198.         playerList.Items.Remove(playerList.SelectedItem)
  199.  
  200.     End Sub
  201.  
  202.     Private Sub playerName_TextChanged(sender As Object, e As EventArgs) Handles playerName.TextChanged
  203.  
  204.         If playerName.Text = "" Then
  205.             btnAdd.Enabled = False
  206.         Else
  207.             btnAdd.Enabled = True
  208.         End If
  209.  
  210.     End Sub
  211.  
  212.     Private Sub btnJoin_Click(sender As Object, e As EventArgs) Handles btnJoin.Click
  213.  
  214.         Process.Start("steam://joinlobby/730/" + Convert.ToString(idl))
  215.  
  216.     End Sub
  217.  
  218.     Private Sub btnCopy_Click(sender As Object, e As EventArgs) Handles btnCopyToClip.Click
  219.  
  220.         Clipboard.SetText(idl)
  221.         MsgBox("Copied: " & idl & " to clipboard!", MsgBoxStyle.Information)
  222.  
  223.     End Sub
  224.  
  225.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  226.  
  227.         ReadLobby()
  228.  
  229.     End Sub
  230.  
  231.     Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
  232.  
  233.         SaveLobby()
  234.  
  235.     End Sub
  236. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement