diff --git a/src/main/java/clientapi/load/mixin/MixinBlock.java b/src/main/java/clientapi/load/mixin/MixinBlock.java index 9f894eae..bd88478e 100644 --- a/src/main/java/clientapi/load/mixin/MixinBlock.java +++ b/src/main/java/clientapi/load/mixin/MixinBlock.java @@ -55,19 +55,23 @@ private void canCollideCheck(IBlockState state, boolean hitIfLiquid, CallbackInf @Inject(method = "addCollisionBoxToList(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;Z)V", at = @At("HEAD")) - private void in(IBlockState state, World world, BlockPos pos, AxisAlignedBB entityBox, List collidingBoxes, @Nullable Entity entity, boolean isActualState, CallbackInfo ci) { - Block block = (Block) (Object) (this); - bbEvent = new BoundingBoxEvent(block, pos, block.getCollisionBoundingBox(state, world, pos), collidingBoxes, entity); - ClientAPI.EVENT_BUS.post(bbEvent); + private void addCollisionBox(IBlockState state, World world, BlockPos pos, AxisAlignedBB entityBox, List collidingBoxes, @Nullable Entity entity, boolean isActualState, CallbackInfo ci) { + synchronized (this) { + Block block = (Block) (Object) (this); + bbEvent = new BoundingBoxEvent(block, pos, block.getCollisionBoundingBox(state, world, pos), collidingBoxes, entity); + ClientAPI.EVENT_BUS.post(bbEvent); + } } @Redirect(method = "addCollisionBoxToList(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;Z)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/state/IBlockState;getCollisionBoundingBox(Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/util/math/AxisAlignedBB;")) private AxisAlignedBB getBB(IBlockState state, IBlockAccess world, BlockPos pos) { - AxisAlignedBB bb = (bbEvent == null) ? - state.getCollisionBoundingBox(world, pos): - bbEvent.getBoundingBox(); - bbEvent = null; - return bb; + synchronized (this) { + AxisAlignedBB bb = (bbEvent == null) ? + state.getCollisionBoundingBox(world, pos) : + bbEvent.getBoundingBox(); + bbEvent = null; + return bb; + } } }