From f8bf8b3da7f6a63012c7a1921df2dda0f463ea6f Mon Sep 17 00:00:00 2001 From: DaFuqs Date: Wed, 15 Jan 2025 10:55:07 +0100 Subject: [PATCH] casting banish curse on pastel upgrade code --- .../blocks/pastel_network/nodes/PastelNodeBlock.java | 8 ++++++-- .../pastel_network/nodes/PastelNodeBlockEntity.java | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlock.java index 0d3d2f2097..c72f42bfae 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlock.java @@ -134,6 +134,8 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt player.getInventory().offerOrDrop(removed); blockEntity.updateUpgrades(); + blockEntity.markDirty(); + blockEntity.updateInClientWorld(); } } return ActionResult.success(world.isClient()); @@ -143,12 +145,14 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt return ActionResult.PASS; } else if (stack.isOf(SpectrumItems.PAINTBRUSH)) { return sendDebugMessage(world, player, blockEntity); - } else if (AdvancementHelper.hasAdvancement(player, SpectrumAdvancements.PASTEL_NODE_UPGRADING) && stack.isIn(SpectrumItemTags.PASTEL_NODE_UPGRADES) && blockEntity.tryInteractRings(stack, pastelNodeType)) { - if (!world.isClient()) { + } else if (AdvancementHelper.hasAdvancement(player, SpectrumAdvancements.PASTEL_NODE_UPGRADING) && stack.isIn(SpectrumItemTags.PASTEL_NODE_UPGRADES)) { + if (!world.isClient() && blockEntity.tryInteractRings(stack, pastelNodeType)) { SpectrumAdvancementCriteria.PASTEL_NODE_UPGRADING.trigger((ServerPlayerEntity) player, stack); if (!player.getAbilities().creativeMode) stack.decrement(1); blockEntity.updateUpgrades(); + blockEntity.markDirty(); + blockEntity.updateInClientWorld(); } world.playSoundAtBlockCenter(pos, SpectrumSoundEvents.MEDIUM_CRYSTAL_RING, SoundCategory.BLOCKS, 0.25F, 0.9F + world.getRandom().nextFloat() * 0.2F, true); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlockEntity.java index 84e2b092fa..e032f83206 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlockEntity.java @@ -245,8 +245,6 @@ public void updateUpgrades() { filterItems.set(i, ItemVariant.blank()); } } - - markDirty(); } @Override @@ -354,12 +352,18 @@ public void readNbt(NbtCompound nbt) { } if (nbt.contains("OuterRing")) { outerRing = Optional.ofNullable(SpectrumRegistries.PASTEL_UPGRADE.get(Identifier.tryParse(nbt.getString("OuterRing")))); + } else { + outerRing = Optional.empty(); } if (nbt.contains("InnerRing")) { innerRing = Optional.ofNullable(SpectrumRegistries.PASTEL_UPGRADE.get(Identifier.tryParse(nbt.getString("InnerRing")))); + } else { + innerRing = Optional.empty(); } if (nbt.contains("RedstoneRing")) { redstoneRing = Optional.ofNullable(SpectrumRegistries.PASTEL_UPGRADE.get(Identifier.tryParse(nbt.getString("RedstoneRing")))); + } else { + redstoneRing = Optional.empty(); } if (this.getNodeType().usesFilters()) { FilterConfigurable.readFilterNbt(nbt, this.filterItems);