-
Notifications
You must be signed in to change notification settings - Fork 0
/
versions_types.go
75 lines (64 loc) · 2.58 KB
/
versions_types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package launcher
import (
"github.com/brawaru/marct/sdtypes"
"github.com/go-playground/validator/v10"
)
var _ *validator.Validate
const (
LatestSnapshotID = "latest-snapshot"
LatestReleaseID = "latest-release"
)
type Download struct {
SHA1 string `json:"sha1" validate:"required"`
Size uint64 `json:"size" validate:"required"`
URL string `json:"url" validate:"required"`
}
type Version struct {
Arguments *Arguments `json:"arguments,omitempty"`
AssetIndex *AssetIndexDescriptor `json:"assetIndex,omitempty"`
Assets *string `json:"assets,omitempty"`
ComplianceLevel *int `json:"complianceLevel,omitempty"`
Downloads map[string]Download `json:"downloads,omitempty"`
ID string `json:"id"`
JavaVersion *JavaVersionRecommendation `json:"javaVersion,omitempty"`
Libraries []Library `json:"libraries"`
Logging map[string]LoggingConfiguration `json:"logging,omitempty"`
MainClass string `json:"mainClass"`
MinimumLauncherVersion int `json:"minimumLauncherVersion"`
ReleaseTime *sdtypes.ISOTime `json:"releaseTime"`
Time *sdtypes.ISOTime `json:"time"`
Type *string `json:"type"`
InheritsFrom *string `json:"inheritsFrom,omitempty"`
MinecraftArguments *string `json:"minecraftArguments,omitempty"`
}
type LatestVersions struct {
Release string `json:"release"`
Snapshot string `json:"snapshot"`
}
type VersionDescriptor struct {
ID string `json:"id"`
Type string `json:"type"`
URL string `json:"url"`
Time sdtypes.RFC3339Time `json:"time"`
ReleaseTime sdtypes.RFC3339Time `json:"releaseTime"`
SHA1 string `json:"sha1"`
ComplianceLevel int `json:"complianceLevel"`
}
type VersionsManifest struct {
Latest LatestVersions `json:"latest"`
Versions []VersionDescriptor `json:"versions"`
}
func (v *VersionsManifest) GetVersion(id string) *VersionDescriptor {
switch id {
case LatestSnapshotID:
id = v.Latest.Snapshot
case LatestReleaseID:
id = v.Latest.Release
}
for _, version := range v.Versions {
if version.ID == id {
return &version
}
}
return nil
}