diff --git a/domain/structures.go b/domain/structures.go index 337c499..9fa0aa8 100644 --- a/domain/structures.go +++ b/domain/structures.go @@ -1,23 +1,24 @@ package domain -// type JavaVersion struct { -// VersionNums `json:"version"` -// Specifics []struct { -// Os string `json:"os"` -// Arch string `json:"arch"` -// URL string `json:"URL"` -// Sha1 string `json:"SHA1"` -// } `json:"specifics"` -// } - type JavaVersion struct { - VersionNums `json:"versionnums"` - Specifics []struct { - Os string `json:"os"` - Arch string `json:"arch"` - URL string `json:"URL"` - Sha1 string `json:"SHA1"` - } `json:"specifics"` + VersionNums `json:"version"` + Specifics []JavaVersionSpecifics `json:"specifics"` +} + +type JavaVersionSpecifics struct { + Os string `json:"os"` + Arch string `json:"arch"` + URL string `json:"URL"` + Sha1 string `json:"SHA1"` +} + +func (jv *JavaVersion) FindOs(os string, arch string) *JavaVersionSpecifics { + for _, s := range jv.Specifics { + if s.Os == os && s.Arch == arch { + return &s + } + } + return nil } type VersionNums struct { @@ -38,10 +39,11 @@ type Version struct { ID string `json:"id"` Libraries []Lib `json:"libraries"` //ClientLog LogCfg - MainClass string `json:"mainClass"` - GameArgs []Argument - JVMArgs []Argument - Type string `json:"type"` + MainClass string `json:"mainClass"` + GameArgs []Argument + JVMArgs []Argument + Type string `json:"type"` + JavaVersion JavaVersion `json:"javaVersion"` } type AssetIndex struct { @@ -50,6 +52,16 @@ type AssetIndex struct { Artifact } +// type Argument struct { +// Value string `json:"value"` +// Rules []Rule `json:"rules"` +// } + +type JavaVersionClientDistribution struct { //TODO Rename + Component string `json:"component"` + MajorVersion int `json:"majorVersion"` +} + type Rule struct { Action RuleAct `json:"action" mapstructure:"action"` // OS information. All fields are regexes.