// ReadHandshakePacket reads a handshake packet (packet ID 0) and decodes it. func ReadHandshakePacket(s protocol.Stream) (HandshakePacket, error) { handshake := HandshakePacket{} var err error if handshake.ProtocolNumber, err = s.ReadVarInt(); err != nil { return HandshakePacket{}, err } if handshake.ServerAddress, err = s.ReadString(); err != nil { return HandshakePacket{}, err } if handshake.ServerPort, err = s.ReadUInt16(); err != nil { return HandshakePacket{}, err } handshake.NextState, err = s.ReadVarInt() return handshake, err }