Hi,
ich würde gerne einen Minecraft-Bot programmieren und habe dazu diesen Link hier gefunden.
Jetzt hab ich mir erstmal sowas hier gebastelt (Konsolenanwendung)
Spoiler anzeigen
So... Die Verbindung geht schonmal...
Jetzt hab ich nur keine Ahnung, was ich jetzt senden muss.
Zum Beispiel wenn ich den Spielernamen senden möchte:
Und noch was:
Am Anfang der Function RECV findet man ja diesen Code hier:
Was soll ich statt einsetzen?
(Sorry, hab noch nie mit solchen Protokollen gearbeitet)
Hoffe mir kann jemand helfen
Janik
ich würde gerne einen Minecraft-Bot programmieren und habe dazu diesen Link hier gefunden.
Jetzt hab ich mir erstmal sowas hier gebastelt (Konsolenanwendung)
VB.NET-Quellcode
- Module Module1
- Dim sock As System.Net.Sockets.Socket
- Dim mcserver As String = "SERVERADRESSE"
- Dim port As Integer = 25565
- Dim nick As String = "SPIELERNAME"
- 'The following objects are for manipulating the console IN and OUT streams
- Dim cout As System.IO.TextWriter = Console.Out
- Dim cin As System.IO.TextReader = Console.In
- Sub Main()
- Dim ipHostInfo As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(mcserver)
- Dim EP As New System.Net.IPEndPoint(ipHostInfo.AddressList(0), port)
- sock = New System.Net.Sockets.Socket(EP.Address.AddressFamily, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)
- sock.Connect(mcserver, port)
- Console.WriteLine("[STATUS] Verbunden zu " & mcserver & " auf Port " & port)
- ' Hier sollte er jetzt die LOGIN-Daten an den Server senden...
- While sock.Connected = True
- Dim mail As String = recv()
- Console.WriteLine(mail)
- End While
- End Sub
- Sub send(ByVal msg As String)
- msg &= vbCr & vbLf
- Dim data() As Byte = System.Text.ASCIIEncoding.UTF8.GetBytes(msg)
- sock.Send(data, msg.Length, System.Net.Sockets.SocketFlags.None)
- End Sub
- Function recv() As String
- Try
- Dim data(4096) As Byte
- sock.Receive(data, 4096, System.Net.Sockets.SocketFlags.None)
- Dim mail As String = System.Text.ASCIIEncoding.UTF8.GetString(data)
- 'Auswerten
- mail = mail.TrimEnd(Chr(0))
- mail = mail.Remove(mail.LastIndexOf(vbLf), 1)
- mail = mail.Remove(mail.LastIndexOf(vbCr), 1)
- Return mail
- Catch
- Console.WriteLine("[AKTION] Verbindung geschlossen")
- Console.WriteLine("[FEHLER] Keine Verbindung zum Server!")
- Console.ReadKey()
- Return "ERROR"
- End Try
- End Function
- End Module
So... Die Verbindung geht schonmal...
Jetzt hab ich nur keine Ahnung, was ich jetzt senden muss.
Zum Beispiel wenn ich den Spielernamen senden möchte:
Eine genaue Beschreibung was man senden muss finde ich nicht (Der Hauptgrund dieses Posts)...
Und noch was:
Am Anfang der Function RECV findet man ja diesen Code hier:
Was soll ich statt einsetzen?
(Sorry, hab noch nie mit solchen Protokollen gearbeitet)
Hoffe mir kann jemand helfen
Janik