Collecting all relevant operations for broken block.
This commit is contained in:
@ -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());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user