Collecting all relevant operations for broken block.
This commit is contained in:
@ -1,12 +1,44 @@
|
|||||||
package dev.micle.xptools.events.common;
|
package dev.micle.xptools.events.common;
|
||||||
|
|
||||||
import dev.micle.xptools.XpTools;
|
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.event.level.BlockEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class OnBlockBreakEventHandler {
|
public class OnBlockBreakEventHandler {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void OnBlockBreakEvent(BlockEvent.BreakEvent event) {
|
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