Collecting all relevant operations for broken block.

This commit is contained in:
2025-05-24 19:27:15 +01:00
parent e796927bf0
commit b8d8af67f2

View File

@ -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<OperationItem> 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<Block> 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());
}
}