1
1
use serde:: { Deserialize , Serialize } ;
2
2
3
3
#[ derive( Deserialize , Serialize , Debug ) ]
4
- #[ serde( rename_all = "camelCase" ) ]
4
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
5
5
pub struct MojangVersionManifest {
6
6
/// The latest version of Minecraft.
7
7
pub latest : MojangVersionManifestLatest ,
@@ -11,7 +11,7 @@ pub struct MojangVersionManifest {
11
11
12
12
/// The latest version of Minecraft.
13
13
#[ derive( Deserialize , Serialize , Debug ) ]
14
- #[ serde( rename_all = "camelCase" ) ]
14
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
15
15
pub struct MojangVersionManifestLatest {
16
16
/// The latest release version of Minecraft.
17
17
pub release : String ,
@@ -21,7 +21,7 @@ pub struct MojangVersionManifestLatest {
21
21
22
22
/// A version of Minecraft.
23
23
#[ derive( Deserialize , Serialize , Debug ) ]
24
- #[ serde( rename_all = "camelCase" ) ]
24
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
25
25
pub struct MojangVersionManifestVersion {
26
26
/// The ID of the version.
27
27
pub id : String ,
@@ -36,10 +36,12 @@ pub struct MojangVersionManifestVersion {
36
36
pub release_time : String ,
37
37
/// Compliance level
38
38
pub compliance_level : i32 ,
39
+ /// The sha1 hash of the version's JSON.
40
+ pub sha1 : String ,
39
41
}
40
42
41
43
#[ derive( Deserialize , Serialize , Debug ) ]
42
- #[ serde( rename_all = "camelCase" ) ]
44
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
43
45
pub struct AssetIndex {
44
46
pub id : String ,
45
47
pub sha1 : String ,
@@ -49,29 +51,32 @@ pub struct AssetIndex {
49
51
}
50
52
51
53
#[ derive( Deserialize , Serialize , Debug ) ]
52
- #[ serde( rename_all = "camelCase" ) ]
54
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
53
55
pub struct VersionDownload {
54
56
pub sha1 : String ,
55
57
pub size : i32 ,
56
58
pub url : String ,
57
59
}
58
60
59
61
#[ derive( Deserialize , Serialize , Debug ) ]
60
- #[ serde( rename_all = "camelCase" ) ]
62
+ #[ serde( deny_unknown_fields ) ]
61
63
pub struct VersionDownloads {
62
64
pub client : VersionDownload ,
63
65
pub server : Option < VersionDownload > ,
66
+ pub windows_server : Option < VersionDownload > ,
67
+ pub client_mappings : Option < VersionDownload > ,
68
+ pub server_mappings : Option < VersionDownload > ,
64
69
}
65
70
66
71
#[ derive( Deserialize , Serialize , Debug ) ]
67
- #[ serde( rename_all = "camelCase" ) ]
72
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
68
73
pub struct JavaVersion {
69
74
pub component : String ,
70
75
pub major_version : i32 ,
71
76
}
72
77
73
78
#[ derive( Deserialize , Serialize , Debug ) ]
74
- #[ serde( rename_all = "camelCase" ) ]
79
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
75
80
pub struct VersionLibraryDownloadInfo {
76
81
pub path : String ,
77
82
pub sha1 : String ,
@@ -80,41 +85,49 @@ pub struct VersionLibraryDownloadInfo {
80
85
}
81
86
82
87
#[ derive( Deserialize , Serialize , Debug ) ]
83
- #[ serde( rename_all = "camelCase" ) ]
88
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
84
89
pub struct VersionLibraryClassifiers {
85
90
pub javadoc : Option < VersionLibraryDownloadInfo > ,
86
91
#[ serde( rename = "natives-linux" ) ]
87
92
pub natives_linux : Option < VersionLibraryDownloadInfo > ,
88
93
#[ serde( rename = "natives-macos" ) ]
89
94
pub natives_macos : Option < VersionLibraryDownloadInfo > ,
95
+ #[ serde( rename = "natives-osx" ) ]
96
+ pub natives_osx : Option < VersionLibraryDownloadInfo > ,
90
97
#[ serde( rename = "natives-windows" ) ]
91
98
pub natives_windows : Option < VersionLibraryDownloadInfo > ,
99
+ #[ serde( rename = "natives-windows-32" ) ]
100
+ pub natives_windows_32 : Option < VersionLibraryDownloadInfo > ,
101
+ #[ serde( rename = "natives-windows-64" ) ]
102
+ pub natives_windows_64 : Option < VersionLibraryDownloadInfo > ,
103
+ #[ serde( rename = "linux-x86_64" ) ]
104
+ pub linux_x86_64 : Option < VersionLibraryDownloadInfo > ,
92
105
pub sources : Option < VersionLibraryDownloadInfo > ,
93
106
}
94
107
95
108
#[ derive( Deserialize , Serialize , Debug ) ]
96
- #[ serde( rename_all = "camelCase" ) ]
109
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
97
110
pub struct VersionLibraryNatives {
98
111
pub linux : Option < String > ,
99
112
pub osx : Option < String > ,
100
113
pub windows : Option < String > ,
101
114
}
102
115
103
116
#[ derive( Deserialize , Serialize , Debug ) ]
104
- #[ serde( rename_all = "camelCase" ) ]
117
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
105
118
pub struct VersionLibraryDownloads {
106
119
pub artifact : Option < VersionLibraryDownloadInfo > ,
107
120
pub classifiers : Option < VersionLibraryClassifiers > ,
108
121
}
109
122
110
123
#[ derive( Deserialize , Serialize , Debug ) ]
111
- #[ serde( rename_all = "camelCase" ) ]
124
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
112
125
pub struct VersionLibraryExtract {
113
126
pub exclude : Vec < String > ,
114
127
}
115
128
116
129
#[ derive( Deserialize , Serialize , Debug ) ]
117
- #[ serde( rename_all = "camelCase" ) ]
130
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
118
131
pub struct VersionLibrary {
119
132
pub name : String ,
120
133
pub downloads : VersionLibraryDownloads ,
@@ -124,36 +137,36 @@ pub struct VersionLibrary {
124
137
}
125
138
126
139
#[ derive( Deserialize , Serialize , Debug ) ]
127
- #[ serde( rename_all = "camelCase" ) ]
140
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
128
141
pub struct ManifestRule {
129
142
pub action : String ,
130
143
pub os : Option < ManifestRuleOS > ,
131
144
pub features : Option < ManifestRuleFeatures > ,
132
145
}
133
146
134
147
#[ derive( Deserialize , Serialize , Debug ) ]
135
- #[ serde( rename_all = "camelCase" ) ]
148
+ #[ serde( deny_unknown_fields ) ]
136
149
pub struct ManifestRuleFeatures {
137
150
pub is_demo_user : Option < bool > ,
138
151
pub has_custom_resolution : Option < bool > ,
139
152
}
140
153
141
154
#[ derive( Deserialize , Serialize , Debug ) ]
142
- #[ serde( rename_all = "camelCase" ) ]
155
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
143
156
pub struct ManifestRuleOS {
144
157
pub name : Option < String > ,
145
158
pub version : Option < String > ,
146
159
pub arch : Option < String > ,
147
160
}
148
161
149
162
#[ derive( Deserialize , Serialize , Debug ) ]
150
- #[ serde( rename_all = "camelCase" ) ]
163
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
151
164
pub struct VersionLogging {
152
165
pub client : VersionLoggingClient ,
153
166
}
154
167
155
168
#[ derive( Deserialize , Serialize , Debug ) ]
156
- #[ serde( rename_all = "camelCase" ) ]
169
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
157
170
pub struct VersionLoggingClient {
158
171
pub argument : String ,
159
172
pub file : VersionLoggingClientFile ,
@@ -162,7 +175,7 @@ pub struct VersionLoggingClient {
162
175
}
163
176
164
177
#[ derive( Deserialize , Serialize , Debug ) ]
165
- #[ serde( rename_all = "camelCase" ) ]
178
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
166
179
pub struct VersionLoggingClientFile {
167
180
pub id : String ,
168
181
pub sha1 : String ,
@@ -185,21 +198,21 @@ pub enum VersionArgumentValue {
185
198
}
186
199
187
200
#[ derive( Deserialize , Serialize , Debug ) ]
188
- #[ serde( rename_all = "camelCase" ) ]
201
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
189
202
pub struct VersionArgumentObject {
190
203
pub rules : Vec < ManifestRule > ,
191
204
pub value : VersionArgumentValue ,
192
205
}
193
206
194
207
#[ derive( Deserialize , Serialize , Debug ) ]
195
- #[ serde( rename_all = "camelCase" ) ]
208
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
196
209
pub struct VersionArguments {
197
210
pub game : Vec < VersionArgument > ,
198
211
pub jvm : Vec < VersionArgument > ,
199
212
}
200
213
201
214
#[ derive( Deserialize , Serialize , Debug ) ]
202
- #[ serde( rename_all = "camelCase" ) ]
215
+ #[ serde( rename_all = "camelCase" , deny_unknown_fields ) ]
203
216
pub struct MinecraftVersion {
204
217
pub asset_index : AssetIndex ,
205
218
pub assets : String ,
0 commit comments