浏览代码

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

Guntram Blohm 4 年之前
父节点
当前提交
1a595558fd
共有 2 个文件被更改,包括 9 次插入7 次删除
  1. 1 1
      build.gradle
  2. 8 6
      src/main/java/de/guntram/mcmod/advancementinfo/AdvancementInfo.java

+ 1 - 1
build.gradle

@@ -18,7 +18,7 @@ ext.Versions = new Properties()
 Versions.load(file("Versionfiles/mcversion-1.16.2.properties").newReader())
 Versions.load(file("Versionfiles/mcversion-1.16.2.properties").newReader())
 
 
 archivesBaseName = "advancementinfo"
 archivesBaseName = "advancementinfo"
-ext.projectVersion = "1.1"
+ext.projectVersion = "1.1.1"
 
 
 version = "${Versions['minecraft_version']}-fabric${Versions['fabric_versiononly']}-${project.projectVersion}"
 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) {
             if (translation == null) {
                 CriterionConditions conditions = ((AdvancementProgressAccessor)(progress)).getCriterion(s).getConditions();
                 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;
                 translation = key;