Browse Source

Fixed a crash when playing on a server where conditions might not be known to the client

Guntram Blohm 4 năm trước cách đây
mục cha
commit
1a595558fd

+ 1 - 1
build.gradle

@@ -18,7 +18,7 @@ ext.Versions = new Properties()
 Versions.load(file("Versionfiles/mcversion-1.16.2.properties").newReader())
 
 archivesBaseName = "advancementinfo"
-ext.projectVersion = "1.1"
+ext.projectVersion = "1.1.1"
 
 version = "${Versions['minecraft_version']}-fabric${Versions['fabric_versiononly']}-${project.projectVersion}"
 

+ 8 - 6
src/main/java/de/guntram/mcmod/advancementinfo/AdvancementInfo.java

@@ -68,12 +68,14 @@ public class AdvancementInfo implements ClientModInitializer
             }
             if (translation == null) {
                 CriterionConditions conditions = ((AdvancementProgressAccessor)(progress)).getCriterion(s).getConditions();
-                JsonObject o = conditions.toJson(AdvancementEntityPredicateSerializer.INSTANCE);
-                JsonObject effects = o.getAsJsonObject("effects");
-                if (effects != null) {
-                    details = new ArrayList<>(effects.entrySet().size());
-                    for (Map.Entry<String, JsonElement> entry: effects.entrySet()) {
-                        details.add(I18n.translate("effect."+entry.getKey().replace(':', '.')));
+                if (conditions != null) {
+                    JsonObject o = conditions.toJson(AdvancementEntityPredicateSerializer.INSTANCE);
+                    JsonObject effects = o.getAsJsonObject("effects");
+                    if (effects != null) {
+                        details = new ArrayList<>(effects.entrySet().size());
+                        for (Map.Entry<String, JsonElement> entry: effects.entrySet()) {
+                            details.add(I18n.translate("effect."+entry.getKey().replace(':', '.')));
+                        }
                     }
                 }
                 translation = key;