From e03da34f55193eddb06b7afc5776ff0859c6721b Mon Sep 17 00:00:00 2001 From: DoctorMacc Date: Sun, 16 Aug 2020 23:15:20 -0400 Subject: [PATCH] Don't assume CanPlaceOn tag is ListTag I guess somewhere in my testing I made a CanPlaceOn tag that was a byte value and the client disconnected on me when I put ViaBackwards on my testing instance. This commit doesn't translate the CanPlaceOn tag if it isn't a ListTag. --- .../protocol1_12_2to1_13/packets/BlockItemPackets1_13.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java index f4b32837..a903bdef 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java @@ -625,6 +625,8 @@ public class BlockItemPackets1_13 extends nl.matsv.viabackwards.api.rewriters.It } private void rewriteCanPlaceToClient(CompoundTag tag, String tagName) { + // The tag was manually created incorrectly so ignore rewriting it + if (!(tag.get(tagName) instanceof ListTag)) return; ListTag blockTag = tag.get(tagName); if (blockTag == null) return; @@ -865,6 +867,7 @@ public class BlockItemPackets1_13 extends nl.matsv.viabackwards.api.rewriters.It } private void rewriteCanPlaceToServer(CompoundTag tag, String tagName) { + if (!(tag.get(tagName) instanceof ListTag)) return; ListTag blockTag = tag.remove(extraNbtTag + "|" + tagName); if (blockTag != null) { tag.put(ConverterRegistry.convertToTag(tagName, ConverterRegistry.convertToValue(blockTag)));