29 lines
1.1 KiB
Plaintext
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";
|
|
}
|
|
}
|
|
}); |