diff options
Diffstat (limited to 'patch-remap/mache-spigotflower/net/minecraft/world/level/block/BellBlock.java.patch')
-rw-r--r-- | patch-remap/mache-spigotflower/net/minecraft/world/level/block/BellBlock.java.patch | 373 |
1 files changed, 373 insertions, 0 deletions
diff --git a/patch-remap/mache-spigotflower/net/minecraft/world/level/block/BellBlock.java.patch b/patch-remap/mache-spigotflower/net/minecraft/world/level/block/BellBlock.java.patch new file mode 100644 index 0000000000..8f9aeb26d2 --- /dev/null +++ b/patch-remap/mache-spigotflower/net/minecraft/world/level/block/BellBlock.java.patch @@ -0,0 +1,373 @@ +--- a/net/minecraft/world/level/block/BellBlock.java ++++ b/net/minecraft/world/level/block/BellBlock.java +@@ -8,7 +8,7 @@ + import net.minecraft.sounds.SoundEvents; + import net.minecraft.sounds.SoundSource; + import net.minecraft.stats.Stats; +-import net.minecraft.world.InteractionHand; ++import net.minecraft.world.EnumHand; + import net.minecraft.world.InteractionResult; + import net.minecraft.world.entity.Entity; + import net.minecraft.world.entity.player.Player; +@@ -25,7 +25,7 @@ + import net.minecraft.world.level.block.entity.BlockEntityTicker; + import net.minecraft.world.level.block.entity.BlockEntityType; + import net.minecraft.world.level.block.state.BlockBehaviour; +-import net.minecraft.world.level.block.state.BlockState; ++import net.minecraft.world.level.block.state.IBlockData; + import net.minecraft.world.level.block.state.StateDefinition; + import net.minecraft.world.level.block.state.properties.BellAttachType; + import net.minecraft.world.level.block.state.properties.BlockStateProperties; +@@ -33,7 +33,7 @@ + import net.minecraft.world.level.block.state.properties.DirectionProperty; + import net.minecraft.world.level.block.state.properties.EnumProperty; + import net.minecraft.world.level.gameevent.GameEvent; +-import net.minecraft.world.level.pathfinder.PathComputationType; ++import net.minecraft.world.level.pathfinder.PathMode; + import net.minecraft.world.phys.BlockHitResult; + import net.minecraft.world.phys.shapes.CollisionContext; + import net.minecraft.world.phys.shapes.Shapes; +@@ -60,53 +60,49 @@ + public static final int EVENT_BELL_RING = 1; + + @Override +- @Override + public MapCodec<BellBlock> codec() { + return BellBlock.CODEC; + } + +- public BellBlock(BlockBehaviour.Properties blockbehaviour_properties) { +- super(blockbehaviour_properties); +- this.registerDefaultState((BlockState) ((BlockState) ((BlockState) ((BlockState) this.stateDefinition.any()).setValue(BellBlock.FACING, Direction.NORTH)).setValue(BellBlock.ATTACHMENT, BellAttachType.FLOOR)).setValue(BellBlock.POWERED, false)); ++ public BellBlock(BlockBehaviour.Properties properties) { ++ super(properties); ++ this.registerDefaultState((IBlockData) ((IBlockData) ((IBlockData) ((IBlockData) this.stateDefinition.any()).setValue(BellBlock.FACING, Direction.NORTH)).setValue(BellBlock.ATTACHMENT, BellAttachType.FLOOR)).setValue(BellBlock.POWERED, false)); + } + + @Override +- @Override +- public void neighborChanged(BlockState blockstate, Level level, BlockPos blockpos, Block block, BlockPos blockpos1, boolean flag) { +- boolean flag1 = level.hasNeighborSignal(blockpos); ++ public void neighborChanged(IBlockData state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { ++ boolean flag1 = level.hasNeighborSignal(pos); + +- if (flag1 != (Boolean) blockstate.getValue(BellBlock.POWERED)) { ++ if (flag1 != (Boolean) state.getValue(BellBlock.POWERED)) { + if (flag1) { +- this.attemptToRing(level, blockpos, (Direction) null); ++ this.attemptToRing(level, pos, (Direction) null); + } + +- level.setBlock(blockpos, (BlockState) blockstate.setValue(BellBlock.POWERED, flag1), 3); ++ level.setBlock(pos, (IBlockData) state.setValue(BellBlock.POWERED, flag1), 3); + } + + } + + @Override +- @Override +- public void onProjectileHit(Level level, BlockState blockstate, BlockHitResult blockhitresult, Projectile projectile) { ++ public void onProjectileHit(Level level, IBlockData state, BlockHitResult hit, Projectile projectile) { + Entity entity = projectile.getOwner(); +- Player player = entity instanceof Player ? (Player) entity : null; ++ Player entityhuman = entity instanceof Player ? (Player) entity : null; + +- this.onHit(level, blockstate, blockhitresult, player, true); ++ this.onHit(level, state, hit, entityhuman, true); + } + + @Override +- @Override +- public InteractionResult use(BlockState blockstate, Level level, BlockPos blockpos, Player player, InteractionHand interactionhand, BlockHitResult blockhitresult) { +- return this.onHit(level, blockstate, blockhitresult, player, true) ? InteractionResult.sidedSuccess(level.isClientSide) : InteractionResult.PASS; ++ public InteractionResult use(IBlockData state, Level level, BlockPos pos, Player player, EnumHand hand, BlockHitResult hit) { ++ return this.onHit(level, state, hit, player, true) ? InteractionResult.sidedSuccess(level.isClientSide) : InteractionResult.PASS; + } + +- public boolean onHit(Level level, BlockState blockstate, BlockHitResult blockhitresult, @Nullable Player player, boolean flag) { +- Direction direction = blockhitresult.getDirection(); +- BlockPos blockpos = blockhitresult.getBlockPos(); +- boolean flag1 = !flag || this.isProperHit(blockstate, direction, blockhitresult.getLocation().y - (double) blockpos.getY()); ++ public boolean onHit(Level level, IBlockData state, BlockHitResult result, @Nullable Player player, boolean canRingBell) { ++ Direction enumdirection = result.getDirection(); ++ BlockPos blockposition = result.getBlockPos(); ++ boolean flag1 = !canRingBell || this.isProperHit(state, enumdirection, result.getLocation().y - (double) blockposition.getY()); + + if (flag1) { +- boolean flag2 = this.attemptToRing(player, level, blockpos, direction); ++ boolean flag2 = this.attemptToRing(player, level, blockposition, enumdirection); + + if (flag2 && player != null) { + player.awardStat(Stats.BELL_RING); +@@ -118,17 +114,17 @@ + } + } + +- private boolean isProperHit(BlockState blockstate, Direction direction, double d0) { +- if (direction.getAxis() != Direction.Axis.Y && d0 <= 0.8123999834060669D) { +- Direction direction1 = (Direction) blockstate.getValue(BellBlock.FACING); +- BellAttachType bellattachtype = (BellAttachType) blockstate.getValue(BellBlock.ATTACHMENT); ++ private boolean isProperHit(IBlockData pos, Direction direction, double distanceY) { ++ if (direction.getAxis() != Direction.Axis.Y && distanceY <= 0.8123999834060669D) { ++ Direction enumdirection1 = (Direction) pos.getValue(BellBlock.FACING); ++ BellAttachType blockpropertybellattach = (BellAttachType) pos.getValue(BellBlock.ATTACHMENT); + +- switch (bellattachtype) { ++ switch (blockpropertybellattach) { + case FLOOR: +- return direction1.getAxis() == direction.getAxis(); ++ return enumdirection1.getAxis() == direction.getAxis(); + case SINGLE_WALL: + case DOUBLE_WALL: +- return direction1.getAxis() != direction.getAxis(); ++ return enumdirection1.getAxis() != direction.getAxis(); + case CEILING: + return true; + default: +@@ -139,80 +135,81 @@ + } + } + +- public boolean attemptToRing(Level level, BlockPos blockpos, @Nullable Direction direction) { +- return this.attemptToRing((Entity) null, level, blockpos, direction); ++ public boolean attemptToRing(Level level, BlockPos pos, @Nullable Direction direction) { ++ return this.attemptToRing((Entity) null, level, pos, direction); + } + +- public boolean attemptToRing(@Nullable Entity entity, Level level, BlockPos blockpos, @Nullable Direction direction) { +- BlockEntity blockentity = level.getBlockEntity(blockpos); ++ public boolean attemptToRing(@Nullable Entity entity, Level level, BlockPos pos, @Nullable Direction direction) { ++ BlockEntity tileentity = level.getBlockEntity(pos); + +- if (!level.isClientSide && blockentity instanceof BellBlockEntity) { ++ if (!level.isClientSide && tileentity instanceof BellBlockEntity) { + if (direction == null) { +- direction = (Direction) level.getBlockState(blockpos).getValue(BellBlock.FACING); ++ direction = (Direction) level.getBlockState(pos).getValue(BellBlock.FACING); + } ++ // CraftBukkit start ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.handleBellRingEvent(level, pos, direction, entity)) { ++ return false; ++ } ++ // CraftBukkit end + +- ((BellBlockEntity) blockentity).onHit(direction); +- level.playSound((Player) null, blockpos, SoundEvents.BELL_BLOCK, SoundSource.BLOCKS, 2.0F, 1.0F); +- level.gameEvent(entity, GameEvent.BLOCK_CHANGE, blockpos); ++ ((BellBlockEntity) tileentity).onHit(direction); ++ level.playSound((Player) null, pos, SoundEvents.BELL_BLOCK, SoundSource.BLOCKS, 2.0F, 1.0F); ++ level.gameEvent(entity, GameEvent.BLOCK_CHANGE, pos); + return true; + } else { + return false; + } + } + +- private VoxelShape getVoxelShape(BlockState blockstate) { +- Direction direction = (Direction) blockstate.getValue(BellBlock.FACING); +- BellAttachType bellattachtype = (BellAttachType) blockstate.getValue(BellBlock.ATTACHMENT); ++ private VoxelShape getVoxelShape(IBlockData state) { ++ Direction enumdirection = (Direction) state.getValue(BellBlock.FACING); ++ BellAttachType blockpropertybellattach = (BellAttachType) state.getValue(BellBlock.ATTACHMENT); + +- return bellattachtype == BellAttachType.FLOOR ? (direction != Direction.NORTH && direction != Direction.SOUTH ? BellBlock.EAST_WEST_FLOOR_SHAPE : BellBlock.NORTH_SOUTH_FLOOR_SHAPE) : (bellattachtype == BellAttachType.CEILING ? BellBlock.CEILING_SHAPE : (bellattachtype == BellAttachType.DOUBLE_WALL ? (direction != Direction.NORTH && direction != Direction.SOUTH ? BellBlock.EAST_WEST_BETWEEN : BellBlock.NORTH_SOUTH_BETWEEN) : (direction == Direction.NORTH ? BellBlock.TO_NORTH : (direction == Direction.SOUTH ? BellBlock.TO_SOUTH : (direction == Direction.EAST ? BellBlock.TO_EAST : BellBlock.TO_WEST))))); ++ return blockpropertybellattach == BellAttachType.FLOOR ? (enumdirection != Direction.NORTH && enumdirection != Direction.SOUTH ? BellBlock.EAST_WEST_FLOOR_SHAPE : BellBlock.NORTH_SOUTH_FLOOR_SHAPE) : (blockpropertybellattach == BellAttachType.CEILING ? BellBlock.CEILING_SHAPE : (blockpropertybellattach == BellAttachType.DOUBLE_WALL ? (enumdirection != Direction.NORTH && enumdirection != Direction.SOUTH ? BellBlock.EAST_WEST_BETWEEN : BellBlock.NORTH_SOUTH_BETWEEN) : (enumdirection == Direction.NORTH ? BellBlock.TO_NORTH : (enumdirection == Direction.SOUTH ? BellBlock.TO_SOUTH : (enumdirection == Direction.EAST ? BellBlock.TO_EAST : BellBlock.TO_WEST))))); + } + + @Override +- @Override +- public VoxelShape getCollisionShape(BlockState blockstate, BlockGetter blockgetter, BlockPos blockpos, CollisionContext collisioncontext) { +- return this.getVoxelShape(blockstate); ++ public VoxelShape getCollisionShape(IBlockData state, BlockGetter level, BlockPos pos, CollisionContext context) { ++ return this.getVoxelShape(state); + } + + @Override +- @Override +- public VoxelShape getShape(BlockState blockstate, BlockGetter blockgetter, BlockPos blockpos, CollisionContext collisioncontext) { +- return this.getVoxelShape(blockstate); ++ public VoxelShape getShape(IBlockData state, BlockGetter level, BlockPos pos, CollisionContext context) { ++ return this.getVoxelShape(state); + } + + @Override +- @Override +- public RenderShape getRenderShape(BlockState blockstate) { +- return RenderShape.MODEL; ++ public EnumRenderType getRenderShape(IBlockData state) { ++ return EnumRenderType.MODEL; + } + + @Nullable + @Override +- @Override +- public BlockState getStateForPlacement(BlockPlaceContext blockplacecontext) { +- Direction direction = blockplacecontext.getClickedFace(); +- BlockPos blockpos = blockplacecontext.getClickedPos(); +- Level level = blockplacecontext.getLevel(); +- Direction.Axis direction_axis = direction.getAxis(); +- BlockState blockstate; ++ public IBlockData getStateForPlacement(BlockPlaceContext context) { ++ Direction enumdirection = context.getClickedFace(); ++ BlockPos blockposition = context.getClickedPos(); ++ Level world = context.getLevel(); ++ Direction.Axis enumdirection_enumaxis = enumdirection.getAxis(); ++ IBlockData iblockdata; + +- if (direction_axis == Direction.Axis.Y) { +- blockstate = (BlockState) ((BlockState) this.defaultBlockState().setValue(BellBlock.ATTACHMENT, direction == Direction.DOWN ? BellAttachType.CEILING : BellAttachType.FLOOR)).setValue(BellBlock.FACING, blockplacecontext.getHorizontalDirection()); +- if (blockstate.canSurvive(blockplacecontext.getLevel(), blockpos)) { +- return blockstate; ++ if (enumdirection_enumaxis == Direction.Axis.Y) { ++ iblockdata = (IBlockData) ((IBlockData) this.defaultBlockState().setValue(BellBlock.ATTACHMENT, enumdirection == Direction.DOWN ? BellAttachType.CEILING : BellAttachType.FLOOR)).setValue(BellBlock.FACING, context.getHorizontalDirection()); ++ if (iblockdata.canSurvive(context.getLevel(), blockposition)) { ++ return iblockdata; + } + } else { +- boolean flag = direction_axis == Direction.Axis.X && level.getBlockState(blockpos.west()).isFaceSturdy(level, blockpos.west(), Direction.EAST) && level.getBlockState(blockpos.east()).isFaceSturdy(level, blockpos.east(), Direction.WEST) || direction_axis == Direction.Axis.Z && level.getBlockState(blockpos.north()).isFaceSturdy(level, blockpos.north(), Direction.SOUTH) && level.getBlockState(blockpos.south()).isFaceSturdy(level, blockpos.south(), Direction.NORTH); ++ boolean flag = enumdirection_enumaxis == Direction.Axis.X && world.getBlockState(blockposition.west()).isFaceSturdy(world, blockposition.west(), Direction.EAST) && world.getBlockState(blockposition.east()).isFaceSturdy(world, blockposition.east(), Direction.WEST) || enumdirection_enumaxis == Direction.Axis.Z && world.getBlockState(blockposition.north()).isFaceSturdy(world, blockposition.north(), Direction.SOUTH) && world.getBlockState(blockposition.south()).isFaceSturdy(world, blockposition.south(), Direction.NORTH); + +- blockstate = (BlockState) ((BlockState) this.defaultBlockState().setValue(BellBlock.FACING, direction.getOpposite())).setValue(BellBlock.ATTACHMENT, flag ? BellAttachType.DOUBLE_WALL : BellAttachType.SINGLE_WALL); +- if (blockstate.canSurvive(blockplacecontext.getLevel(), blockplacecontext.getClickedPos())) { +- return blockstate; ++ iblockdata = (IBlockData) ((IBlockData) this.defaultBlockState().setValue(BellBlock.FACING, enumdirection.getOpposite())).setValue(BellBlock.ATTACHMENT, flag ? BellAttachType.DOUBLE_WALL : BellAttachType.SINGLE_WALL); ++ if (iblockdata.canSurvive(context.getLevel(), context.getClickedPos())) { ++ return iblockdata; + } + +- boolean flag1 = level.getBlockState(blockpos.below()).isFaceSturdy(level, blockpos.below(), Direction.UP); ++ boolean flag1 = world.getBlockState(blockposition.below()).isFaceSturdy(world, blockposition.below(), Direction.UP); + +- blockstate = (BlockState) blockstate.setValue(BellBlock.ATTACHMENT, flag1 ? BellAttachType.FLOOR : BellAttachType.CEILING); +- if (blockstate.canSurvive(blockplacecontext.getLevel(), blockplacecontext.getClickedPos())) { +- return blockstate; ++ iblockdata = (IBlockData) iblockdata.setValue(BellBlock.ATTACHMENT, flag1 ? BellAttachType.FLOOR : BellAttachType.CEILING); ++ if (iblockdata.canSurvive(context.getLevel(), context.getClickedPos())) { ++ return iblockdata; + } + } + +@@ -220,92 +217,83 @@ + } + + @Override +- @Override +- public void onExplosionHit(BlockState blockstate, Level level, BlockPos blockpos, Explosion explosion, BiConsumer<ItemStack, BlockPos> biconsumer) { +- if (explosion.getBlockInteraction() == Explosion.BlockInteraction.TRIGGER_BLOCK && !level.isClientSide()) { +- this.attemptToRing(level, blockpos, (Direction) null); ++ public void onExplosionHit(IBlockData iblockdata, Level world, BlockPos blockposition, Explosion explosion, BiConsumer<ItemStack, BlockPos> biconsumer) { ++ if (explosion.getBlockInteraction() == Explosion.Effect.TRIGGER_BLOCK && !world.isClientSide()) { ++ this.attemptToRing(world, blockposition, (Direction) null); + } + +- super.onExplosionHit(blockstate, level, blockpos, explosion, biconsumer); ++ super.onExplosionHit(iblockdata, world, blockposition, explosion, biconsumer); + } + + @Override +- @Override +- public BlockState updateShape(BlockState blockstate, Direction direction, BlockState blockstate1, LevelAccessor levelaccessor, BlockPos blockpos, BlockPos blockpos1) { +- BellAttachType bellattachtype = (BellAttachType) blockstate.getValue(BellBlock.ATTACHMENT); +- Direction direction1 = getConnectedDirection(blockstate).getOpposite(); ++ public IBlockData updateShape(IBlockData state, Direction facing, IBlockData facingState, LevelAccessor level, BlockPos currentPos, BlockPos facingPos) { ++ BellAttachType blockpropertybellattach = (BellAttachType) state.getValue(BellBlock.ATTACHMENT); ++ Direction enumdirection1 = getConnectedDirection(state).getOpposite(); + +- if (direction1 == direction && !blockstate.canSurvive(levelaccessor, blockpos) && bellattachtype != BellAttachType.DOUBLE_WALL) { ++ if (enumdirection1 == facing && !state.canSurvive(level, currentPos) && blockpropertybellattach != BellAttachType.DOUBLE_WALL) { + return Blocks.AIR.defaultBlockState(); + } else { +- if (direction.getAxis() == ((Direction) blockstate.getValue(BellBlock.FACING)).getAxis()) { +- if (bellattachtype == BellAttachType.DOUBLE_WALL && !blockstate1.isFaceSturdy(levelaccessor, blockpos1, direction)) { +- return (BlockState) ((BlockState) blockstate.setValue(BellBlock.ATTACHMENT, BellAttachType.SINGLE_WALL)).setValue(BellBlock.FACING, direction.getOpposite()); ++ if (facing.getAxis() == ((Direction) state.getValue(BellBlock.FACING)).getAxis()) { ++ if (blockpropertybellattach == BellAttachType.DOUBLE_WALL && !facingState.isFaceSturdy(level, facingPos, facing)) { ++ return (IBlockData) ((IBlockData) state.setValue(BellBlock.ATTACHMENT, BellAttachType.SINGLE_WALL)).setValue(BellBlock.FACING, facing.getOpposite()); + } + +- if (bellattachtype == BellAttachType.SINGLE_WALL && direction1.getOpposite() == direction && blockstate1.isFaceSturdy(levelaccessor, blockpos1, (Direction) blockstate.getValue(BellBlock.FACING))) { +- return (BlockState) blockstate.setValue(BellBlock.ATTACHMENT, BellAttachType.DOUBLE_WALL); ++ if (blockpropertybellattach == BellAttachType.SINGLE_WALL && enumdirection1.getOpposite() == facing && facingState.isFaceSturdy(level, facingPos, (Direction) state.getValue(BellBlock.FACING))) { ++ return (IBlockData) state.setValue(BellBlock.ATTACHMENT, BellAttachType.DOUBLE_WALL); + } + } + +- return super.updateShape(blockstate, direction, blockstate1, levelaccessor, blockpos, blockpos1); ++ return super.updateShape(state, facing, facingState, level, currentPos, facingPos); + } + } + + @Override +- @Override +- public boolean canSurvive(BlockState blockstate, LevelReader levelreader, BlockPos blockpos) { +- Direction direction = getConnectedDirection(blockstate).getOpposite(); ++ public boolean canSurvive(IBlockData state, LevelReader level, BlockPos pos) { ++ Direction enumdirection = getConnectedDirection(state).getOpposite(); + +- return direction == Direction.UP ? Block.canSupportCenter(levelreader, blockpos.above(), Direction.DOWN) : FaceAttachedHorizontalDirectionalBlock.canAttach(levelreader, blockpos, direction); ++ return enumdirection == Direction.UP ? Block.canSupportCenter(level, pos.above(), Direction.DOWN) : FaceAttachedHorizontalDirectionalBlock.canAttach(level, pos, enumdirection); + } + +- private static Direction getConnectedDirection(BlockState blockstate) { +- switch ((BellAttachType) blockstate.getValue(BellBlock.ATTACHMENT)) { ++ private static Direction getConnectedDirection(IBlockData state) { ++ switch ((BellAttachType) state.getValue(BellBlock.ATTACHMENT)) { + case FLOOR: + return Direction.UP; + case CEILING: + return Direction.DOWN; + default: +- return ((Direction) blockstate.getValue(BellBlock.FACING)).getOpposite(); ++ return ((Direction) state.getValue(BellBlock.FACING)).getOpposite(); + } + } + + @Override +- @Override +- protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> statedefinition_builder) { +- statedefinition_builder.add(BellBlock.FACING, BellBlock.ATTACHMENT, BellBlock.POWERED); ++ protected void createBlockStateDefinition(StateDefinition.Builder<Block, IBlockData> builder) { ++ builder.add(BellBlock.FACING, BellBlock.ATTACHMENT, BellBlock.POWERED); + } + + @Nullable + @Override +- @Override +- public BlockEntity newBlockEntity(BlockPos blockpos, BlockState blockstate) { +- return new BellBlockEntity(blockpos, blockstate); ++ public BlockEntity newBlockEntity(BlockPos pos, IBlockData state) { ++ return new BellBlockEntity(pos, state); + } + + @Nullable + @Override +- @Override +- public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level level, BlockState blockstate, BlockEntityType<T> blockentitytype) { +- return createTickerHelper(blockentitytype, BlockEntityType.BELL, level.isClientSide ? BellBlockEntity::clientTick : BellBlockEntity::serverTick); ++ public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level level, IBlockData state, BlockEntityType<T> blockEntityType) { ++ return createTickerHelper(blockEntityType, BlockEntityType.BELL, level.isClientSide ? BellBlockEntity::clientTick : BellBlockEntity::serverTick); + } + + @Override +- @Override +- public boolean isPathfindable(BlockState blockstate, BlockGetter blockgetter, BlockPos blockpos, PathComputationType pathcomputationtype) { ++ public boolean isPathfindable(IBlockData state, BlockGetter level, BlockPos pos, PathMode type) { + return false; + } + + @Override +- @Override +- public BlockState rotate(BlockState blockstate, Rotation rotation) { +- return (BlockState) blockstate.setValue(BellBlock.FACING, rotation.rotate((Direction) blockstate.getValue(BellBlock.FACING))); ++ public IBlockData rotate(IBlockData state, Rotation rotation) { ++ return (IBlockData) state.setValue(BellBlock.FACING, rotation.rotate((Direction) state.getValue(BellBlock.FACING))); + } + + @Override +- @Override +- public BlockState mirror(BlockState blockstate, Mirror mirror) { +- return blockstate.rotate(mirror.getRotation((Direction) blockstate.getValue(BellBlock.FACING))); ++ public IBlockData mirror(IBlockData state, Mirror mirror) { ++ return state.rotate(mirror.getRotation((Direction) state.getValue(BellBlock.FACING))); + } + } |