9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-25 01:49:30 +00:00

修复1.21.2重叠item model json生成

This commit is contained in:
XiaoMoMi
2025-09-07 17:54:46 +08:00
parent ff4efa13a0
commit ab2d02afad
2 changed files with 30 additions and 8 deletions

View File

@@ -1851,9 +1851,13 @@ public abstract class AbstractPackManager implements PackManager {
}
JsonArray overrides = new JsonArray();
for (LegacyOverridesModel legacyOverridesModel : legacyOverridesModels) {
overrides.add(legacyOverridesModel.toLegacyPredicateElement());
if (legacyOverridesModel.hasPredicate()) {
overrides.add(legacyOverridesModel.toLegacyPredicateElement());
}
}
if (!overrides.isEmpty()) {
itemJson.add("overrides", overrides);
}
itemJson.add("overrides", overrides);
} catch (IOException e) {
this.plugin.logger().warn("Failed to read item json " + itemPath.toAbsolutePath());
continue;
@@ -1861,13 +1865,31 @@ public abstract class AbstractPackManager implements PackManager {
} else {
// 如果路径不存在则需要我们创建一个json对象并对接model的路径
itemJson = new JsonObject();
LegacyOverridesModel firstModel = legacyOverridesModels.getFirst();
itemJson.addProperty("parent", firstModel.model());
JsonArray overrides = new JsonArray();
LegacyOverridesModel firstBaseModel = null;
List<JsonObject> overrideJsons = new ArrayList<>();
for (LegacyOverridesModel legacyOverridesModel : legacyOverridesModels) {
overrides.add(legacyOverridesModel.toLegacyPredicateElement());
if (!legacyOverridesModel.hasPredicate()) {
if (firstBaseModel == null) {
firstBaseModel = legacyOverridesModel;
}
} else {
JsonObject legacyPredicateElement = legacyOverridesModel.toLegacyPredicateElement();
overrideJsons.add(legacyPredicateElement);
}
}
if (firstBaseModel == null) {
firstBaseModel = legacyOverridesModels.getFirst();
}
itemJson.addProperty("parent", firstBaseModel.model());
if (!overrideJsons.isEmpty()) {
JsonArray overrides = new JsonArray();
for (JsonObject override : overrideJsons) {
overrides.add(override);
}
itemJson.add("overrides", overrides);
}
itemJson.add("overrides", overrides);
}
try {
Files.createDirectories(itemPath.getParent());

View File

@@ -27,7 +27,7 @@ public class LegacyOverridesModel implements Comparable<LegacyOverridesModel> {
}
public boolean hasPredicate() {
return !predicate.isEmpty();
return predicate != null && !predicate.isEmpty();
}
public String model() {