From b8d8af67f2161dedf8e5d7303565016ce4a2d898 Mon Sep 17 00:00:00 2001 From: Micle Date: Sat, 24 May 2025 19:27:15 +0100 Subject: [PATCH] Collecting all relevant operations for broken block. --- .../common/OnBlockBreakEventHandler.java | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/micle/xptools/events/common/OnBlockBreakEventHandler.java b/src/main/java/dev/micle/xptools/events/common/OnBlockBreakEventHandler.java index 5485e05..fbe8367 100644 --- a/src/main/java/dev/micle/xptools/events/common/OnBlockBreakEventHandler.java +++ b/src/main/java/dev/micle/xptools/events/common/OnBlockBreakEventHandler.java @@ -1,12 +1,44 @@ package dev.micle.xptools.events.common; import dev.micle.xptools.XpTools; +import dev.micle.xptools.config.Config; +import dev.micle.xptools.config.OperationItem; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagKey; +import net.minecraft.world.level.block.Block; import net.minecraftforge.event.level.BlockEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.registries.ForgeRegistries; + +import java.util.ArrayList; +import java.util.List; public class OnBlockBreakEventHandler { @SubscribeEvent public void OnBlockBreakEvent(BlockEvent.BreakEvent event) { - XpTools.LOGGER.debug(String.valueOf(event.getExpToDrop())); + List operations = new ArrayList<>(); + + // Collect operations on relevant block_id + ResourceLocation block_rl = ForgeRegistries.BLOCKS.getKey(event.getState().getBlock()); + if (block_rl != null) { + String block_id = block_rl.toString(); + for (OperationItem operationItem : Config.Server.blockBreakOperationItems) { + if (!operationItem.isTag() && operationItem.getId().equals(block_id)) { + operations.add(operationItem); + } + } + } + + // Collect operations on relevant tag_id + for (TagKey tagKey : event.getState().getTags().toList()) { + String tag_id = tagKey.location().toString(); + for (OperationItem operationItem : Config.Server.blockBreakOperationItems) { + if (operationItem.isTag() && operationItem.getId().equals(tag_id)) { + operations.add(operationItem); + } + } + } + + XpTools.LOGGER.debug(operations.toString()); } }