Skip to content

Commit eaaf94a

Browse files
Preserve Java version when merging Fabric metadata
1 parent 7b978c4 commit eaaf94a

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

Natives/MinecraftResourceDownloadTask.m

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,12 +202,20 @@ - (void)downloadVersionMetadata:(NSDictionary *)version success:(void (^)())succ
202202
}
203203

204204
if (localInheritedVersion) {
205+
id inheritedJavaVersion = metadata[@"javaVersion"];
205206
[MinecraftResourceUtils processVersion:localInheritedVersion inheritsFrom:metadata];
207+
if ([inheritedJavaVersion isKindOfClass:NSDictionary.class]) {
208+
metadata[@"javaVersion"] = inheritedJavaVersion;
209+
}
206210
self.metadata = metadata;
207211
} else if (metadata[@"inheritsFrom"]) {
208212
NSMutableDictionary *inheritsFromDict = parseJSONFromFile([NSString stringWithFormat:@"%1$s/versions/%2$@/%2$@.json", getenv("POJAV_GAME_DIR"), metadata[@"inheritsFrom"]]);
209213
if (inheritsFromDict) {
214+
id inheritedJavaVersion = inheritsFromDict[@"javaVersion"];
210215
[MinecraftResourceUtils processVersion:metadata inheritsFrom:inheritsFromDict];
216+
if ([inheritedJavaVersion isKindOfClass:NSDictionary.class]) {
217+
inheritsFromDict[@"javaVersion"] = inheritedJavaVersion;
218+
}
211219
self.metadata = inheritsFromDict;
212220
} else {
213221
self.metadata = metadata;

Natives/MinecraftResourceUtils.m

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,12 @@ + (void)processVersion:(NSMutableDictionary *)json inheritsFrom:(NSMutableDictio
4444

4545
+ (void)insertSafety:(NSMutableDictionary *)targetVer from:(NSDictionary *)fromVer arr:(NSArray *)arr {
4646
for (NSString *key in arr) {
47-
if (([fromVer[key] isKindOfClass:NSString.class] && [fromVer[key] length] > 0) || targetVer[key] == nil) {
48-
targetVer[key] = fromVer[key];
47+
id value = fromVer[key];
48+
if (!value || value == NSNull.null) {
49+
continue;
50+
}
51+
if (([value isKindOfClass:NSString.class] && [value length] > 0) || targetVer[key] == nil) {
52+
targetVer[key] = value;
4953
} else {
5054
NSLog(@"[MCDL] insertSafety: how to insert %@?", key);
5155
}

0 commit comments

Comments
 (0)