Finished login process. Next: configuration

This commit is contained in:
Verox001 2025-02-25 01:42:03 +01:00
parent ec4f67ced7
commit 4efb1e4012

45
main.go
View File

@ -13,11 +13,13 @@ import (
)
const (
HandshakePacketID = 0x00
StatusRequestID = 0x00
StatusResponseID = 0x00
PingRequestID = 0x01
PongResponseID = 0x01
HandshakePacketID = 0x00
StatusRequestID = 0x00
StatusResponseID = 0x00
PingRequestID = 0x01
PongResponseID = 0x01
LoginPluginResponseID = 0x02
LoginAcknowledgedID = 0x03
)
type PrefixedByteArray struct {
@ -206,6 +208,25 @@ func handleConnection(client *ClientState) {
} else {
fmt.Println("Pong response sent successfully:", timestamp)
}
case LoginAcknowledgedID:
fmt.Println("Received login acknowledge")
// TODO: Switch state to configuration
case LoginPluginResponseID:
sharedSecret, err := readPrefixedByteArray(packetReader)
if err != nil {
fmt.Println("Error reading shared secret:", err)
break
}
verifyToken, err := readPrefixedByteArray(packetReader)
if err != nil {
fmt.Println("Error reading verify token:", err)
break
}
fmt.Println("Shared Secret:", sharedSecret)
fmt.Println("Verify Token:", verifyToken)
}
}
}
@ -397,3 +418,17 @@ func readUUID(reader *bytes.Reader) (string, error) {
return fmt.Sprintf("%x-%x-%x-%x-%x", uuid[0:4], uuid[4:6], uuid[6:8], uuid[8:10], uuid[10:]), nil
}
func readPrefixedByteArray(reader *bytes.Reader) (PrefixedByteArray, error) {
length, err := readVarInt(reader)
if err != nil {
return PrefixedByteArray{}, err
}
data := make([]byte, length)
if _, err := reader.Read(data); err != nil {
return PrefixedByteArray{}, err
}
return PrefixedByteArray{Length: length, Data: data}, nil
}