From 4e5184009df3345c39d81ee2054ca7ef5ed96209 Mon Sep 17 00:00:00 2001 From: gnembon Date: Sat, 17 Apr 2021 00:35:47 -0300 Subject: [PATCH] incorrect carpet data shoudn't crash the client. Fixes #812 --- .../java/carpet/network/ClientNetworkHandler.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/carpet/network/ClientNetworkHandler.java b/src/main/java/carpet/network/ClientNetworkHandler.java index 477c556b..13d25492 100644 --- a/src/main/java/carpet/network/ClientNetworkHandler.java +++ b/src/main/java/carpet/network/ClientNetworkHandler.java @@ -22,7 +22,7 @@ import java.util.function.BiConsumer; public class ClientNetworkHandler { - private static Map> dataHandlers = new HashMap>(); + private static final Map> dataHandlers = new HashMap>(); static { dataHandlers.put("Rules", (p, t) -> { @@ -61,7 +61,7 @@ public class ClientNetworkHandler if (rule != null) { String value = ruleNBT.getString("Value"); - rule.set(null, value); + try { rule.set(null, value); } catch (Exception ignored) { } } } }); @@ -133,8 +133,15 @@ public class ClientNetworkHandler if (compound == null) return; for (String key: compound.getKeys()) { - if (dataHandlers.containsKey(key)) - dataHandlers.get(key).accept(player, compound.get(key)); + if (dataHandlers.containsKey(key)) { + try { + dataHandlers.get(key).accept(player, compound.get(key)); + } + catch (Exception exc) + { + CarpetSettings.LOG.info("Corrupt carpet data for "+key); + } + } else CarpetSettings.LOG.error("Unknown carpet data: "+key); }