Files
2026-07-25 16:20:42 -05:00

29 lines
1.1 KiB
Plaintext

import crafttweaker.event.PlayerInteractBlockEvent;
import crafttweaker.block.IMaterial;
import native.net.minecraftforge.fluids.capability.CapabilityFluidHandler;
// script by ChaossStrikez
// Prevent ProjectE amulets from breaking any block.
events.onPlayerInteractBlock(function(event as PlayerInteractBlockEvent){
val world = event.world;
val item = event.item;
if (world.isRemote() || isNull(item)) {
return;
}
if (item.definition.id == "projecte:item.pe_evertide_amulet" ||
item.definition.id == "projecte:item.pe_volcanite_amulet") {
val tile = world.native.getTileEntity(event.position);
// Allow amulet fill functionality.
if (!isNull(tile) && tile.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, event.face.native)) {
return;
}
val posToFill = event.position.getOffset(event.face, 1);
val blockState = world.getBlockState(posToFill);
val material = blockState.material;
// This is the check that ProjectE forgot.
if (!material.matches(IMaterial.air()) && material.isSolid() && !blockState.isReplaceable(world, posToFill)) {
event.useItem = "DENY";
}
}
});