mirror of
https://github.com/architectury/architectury-api.git
synced 2026-04-03 05:57:40 -05:00
Fix falling block land event to handle all (vanilla) blocks correctly
(Modded blocks need to have super.onLand(...) and then they'll be fine too)
This commit is contained in:
@@ -4,7 +4,8 @@ import me.shedaniel.architectury.event.events.BlockEvent;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.entity.item.FallingBlockEntity;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.AnvilBlock;
|
||||
import net.minecraft.world.level.block.ConcretePowderBlock;
|
||||
import net.minecraft.world.level.block.FallingBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
@@ -13,17 +14,10 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||
|
||||
@Mixin(FallingBlock.class)
|
||||
public abstract class MixinFallingBlock extends Block {
|
||||
|
||||
public MixinFallingBlock(Properties properties) {
|
||||
super(properties);
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
|
||||
@Mixin({FallingBlock.class, AnvilBlock.class, ConcretePowderBlock.class})
|
||||
public abstract class BlockLandingInvoker {
|
||||
@Inject(method = "onLand", at = @At("RETURN"), locals = LocalCapture.CAPTURE_FAILHARD)
|
||||
public void handleLand(Level level, BlockPos pos, BlockState fallState, BlockState landOn, FallingBlockEntity entity, CallbackInfo ci) {
|
||||
BlockEvent.FALLING_LAND.invoker().onLand(level, pos, fallState, landOn, entity);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
"client": [
|
||||
],
|
||||
"mixins": [
|
||||
"MixinFallingBlock",
|
||||
"BlockLandingInvoker",
|
||||
"MixinLightningBolt"
|
||||
],
|
||||
"injectors": {
|
||||
|
||||
Reference in New Issue
Block a user