Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Net
- Imports System.IO
- Public Class Form1
- 'Additional functions to wait for page load (not important)
- '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- Private Property pageready As Boolean = False
- Private Sub WaitForPageLoad()
- AddHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
- While Not pageready
- Application.DoEvents()
- End While
- pageready = False
- End Sub
- Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
- If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
- pageready = True
- RemoveHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
- End If
- End Sub
- '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- 'Actual functions:
- Private Function GetLobbyId(ByVal Address As String) As Long
- Dim content As String = ""
- Dim wRequest As WebRequest
- Dim wResponse As WebResponse
- Dim stream As StreamReader
- Try
- wRequest = WebRequest.Create(Address)
- wResponse = wRequest.GetResponse
- stream = New StreamReader(wResponse.GetResponseStream)
- content = stream.ReadToEnd
- stream.Close()
- wResponse.Close()
- Dim id As String = content.Split(New String() {"steam://joinlobby/730/"}, StringSplitOptions.None)(1)
- Return Convert.ToInt64(id.Split(New Char() {"/"})(0))
- Catch ex As Exception
- Return 0
- End Try
- End Function
- '////////////////////////////////////
- Dim WebBrowser1 As New WebBrowser
- Private Function CheckPlayer(ByVal Address As String) As Integer
- WebBrowser1.Navigate(Address)
- WaitForPageLoad()
- For Each elem As HtmlElement In WebBrowser1.Document.GetElementsByTagName("span")
- If elem.GetAttribute("classname") = "actual_persona_name" Then
- Dim player As String = elem.InnerText
- If player IsNot Nothing Then
- If playerList.Items.Contains(player) Then
- MsgBox("Player already on the list!", MsgBoxStyle.Information)
- Else
- playerList.Items.Add(player)
- linkList.Items.Add(Address)
- End If
- Return 0
- End If
- End If
- Next
- MsgBox("There is no such player!", MsgBoxStyle.Information)
- Return 0
- End Function
- Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
- If RadioButton1.Checked Then
- CheckPlayer("http://steamcommunity.com/id/" + playerName.Text)
- Else
- CheckPlayer(playerName.Text)
- End If
- playerName.Text = ""
- End Sub
- Dim idl As Long = 0
- Private Sub playerList_SelectedIndexChanged(sender As Object, e As EventArgs) Handles playerList.SelectedIndexChanged
- If playerList.SelectedItem IsNot Nothing Then
- btnRemove.Enabled = True
- Dim index As Integer = playerList.SelectedIndex
- Dim name As String = linkList.Items(index)
- idl = GetLobbyId(name)
- If idl = 0 Then
- Label1.Visible = True
- Label3.Visible = True
- Label4.Text = ""
- Label4.Visible = False
- btnJoin.Enabled = False
- btnCopyToClip.Enabled = False
- Else
- Label1.Visible = False
- Label3.Visible = True
- Label4.Text = idl
- Label4.Visible = True
- btnJoin.Enabled = True
- btnCopyToClip.Enabled = True
- End If
- Else
- btnRemove.Enabled = False
- Label1.Visible = False
- Label3.Visible = False
- Label4.Text = ""
- Label4.Visible = False
- btnJoin.Enabled = False
- btnCopyToClip.Enabled = False
- End If
- End Sub
- Private Function SaveLobby()
- Dim file As String = "players.ini"
- Dim objWriter As New System.IO.StreamWriter(file, False)
- For i As Integer = 0 To playerList.Items.Count - 1
- objWriter.Write(playerList.Items(i) & vbNewLine)
- objWriter.Write(linkList.Items(i) & vbNewLine)
- Next
- objWriter.Close()
- End Function
- Private Function ReadLobby()
- Dim file As String = "players.ini"
- Dim player As String
- Dim link As String
- Dim tmp As String
- If System.IO.File.Exists(file) = True Then
- Dim objReader As New System.IO.StreamReader(file, False)
- Do While objReader.Peek() <> -1
- player = objReader.ReadLine()
- tmp = vbNewLine
- link = objReader.ReadLine()
- tmp = vbNewLine
- playerList.Items.Add(player)
- linkList.Items.Add(link)
- Loop
- objReader.Close()
- End If
- End Function
- Private Sub btnRemove_Click(sender As Object, e As EventArgs) Handles btnRemove.Click
- Dim index As Integer = playerList.SelectedIndex
- linkList.Items.RemoveAt(index)
- playerList.Items.Remove(playerList.SelectedItem)
- End Sub
- Private Sub playerName_TextChanged(sender As Object, e As EventArgs) Handles playerName.TextChanged
- If playerName.Text = "" Then
- btnAdd.Enabled = False
- Else
- btnAdd.Enabled = True
- End If
- End Sub
- Private Sub btnJoin_Click(sender As Object, e As EventArgs) Handles btnJoin.Click
- Process.Start("steam://joinlobby/730/" + Convert.ToString(idl))
- End Sub
- Private Sub btnCopy_Click(sender As Object, e As EventArgs) Handles btnCopyToClip.Click
- Clipboard.SetText(idl)
- MsgBox("Copied: " & idl & " to clipboard!", MsgBoxStyle.Information)
- End Sub
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- ReadLobby()
- End Sub
- Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
- SaveLobby()
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement