From bae6839c719740bccc5ca2f06d715d1bf5e605e0 Mon Sep 17 00:00:00 2001 From: "yrsegal@gmail.com" Date: Wed, 13 Apr 2022 17:14:50 -0400 Subject: [PATCH] fix slates becoming initialized incorrectly when broken --- .../at/petrak/hexcasting/common/items/ItemSlate.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/main/java/at/petrak/hexcasting/common/items/ItemSlate.java b/src/main/java/at/petrak/hexcasting/common/items/ItemSlate.java index 90cafd18..ef695d26 100644 --- a/src/main/java/at/petrak/hexcasting/common/items/ItemSlate.java +++ b/src/main/java/at/petrak/hexcasting/common/items/ItemSlate.java @@ -33,7 +33,7 @@ public class ItemSlate extends BlockItem implements DataHolderItem { var tag = stack.getTag(); if (tag != null && tag.contains("BlockEntityTag", Tag.TAG_COMPOUND)) { var bet = tag.getCompound("BlockEntityTag"); - return bet.contains(BlockEntitySlate.TAG_PATTERN, Tag.TAG_COMPOUND); + return bet.contains(BlockEntitySlate.TAG_PATTERN, Tag.TAG_COMPOUND) && !bet.getCompound(BlockEntitySlate.TAG_PATTERN).isEmpty(); } return false; } @@ -50,6 +50,8 @@ public class ItemSlate extends BlockItem implements DataHolderItem { } var patTag = beTag.getCompound(BlockEntitySlate.TAG_PATTERN); + if (patTag.isEmpty()) + return null; var out = new CompoundTag(); out.put(SpellDatum.TAG_PATTERN, patTag); return out; @@ -61,17 +63,12 @@ public class ItemSlate extends BlockItem implements DataHolderItem { return false; } - if (!stack.hasTag()) - return true; - - var beTag = stack.getTagElement("BlockEntityTag"); - return beTag == null || !beTag.contains(BlockEntitySlate.TAG_PATTERN, Tag.TAG_COMPOUND); + return readDatumTag(stack) == null; } @Override public void writeDatum(ItemStack stack, SpellDatum datum) { if (this.canWrite(stack, datum) && datum.getPayload() instanceof HexPattern pat) { - CompoundTag tag = stack.getOrCreateTag(); var beTag = stack.getOrCreateTagElement("BlockEntityTag"); beTag.put(BlockEntitySlate.TAG_PATTERN, pat.serializeToNBT()); }