Skip to content

Commit 326c687

Browse files
committed
Fix whack diff from last commit
1 parent 2b73d19 commit 326c687

File tree

2 files changed

+14
-22
lines changed

2 files changed

+14
-22
lines changed

paper-server/patches/sources/net/minecraft/world/level/BlockGetter.java.patch

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,47 +25,39 @@
2525
FluidState getFluidState(BlockPos pos);
2626

2727
default int getLightEmission(BlockPos pos) {
28-
@@ -66,19 +_,46 @@
28+
@@ -66,10 +_,25 @@
2929
);
3030
}
3131

3232
- default BlockHitResult clip(ClipContext context) {
3333
- return traverseBlocks(context.getFrom(), context.getTo(), context, (traverseContext, traversePos) -> {
3434
- BlockState blockState = this.getBlockState(traversePos);
3535
- FluidState fluidState = this.getFluidState(traversePos);
36-
- Vec3 from = traverseContext.getFrom();
37-
- Vec3 to = traverseContext.getTo();
38-
- VoxelShape blockShape = traverseContext.getBlockShape(blockState, this, traversePos);
3936
+ // CraftBukkit start - moved block handling into separate method for use by Block#rayTrace
40-
+ default BlockHitResult clip(ClipContext context, BlockPos traversePos) {
37+
+ default BlockHitResult clip(ClipContext traverseContext, BlockPos traversePos) {
4138
+ // Paper start - Add predicate for blocks when raytracing
42-
+ return clip(context, traversePos, null);
39+
+ return clip(traverseContext, traversePos, null);
4340
+ }
4441
+
45-
+ default BlockHitResult clip(ClipContext context, BlockPos traversePos, java.util.function.Predicate<? super org.bukkit.block.Block> canCollide) {
42+
+ default BlockHitResult clip(ClipContext traverseContext, BlockPos traversePos, java.util.function.Predicate<? super org.bukkit.block.Block> canCollide) {
4643
+ // Paper end - Add predicate for blocks when raytracing
4744
+ // Paper start - Prevent raytrace from loading chunks
4845
+ BlockState blockState = this.getBlockStateIfLoaded(traversePos);
4946
+ if (blockState == null) {
5047
+ // copied the last function parameter (listed below)
51-
+ Vec3 vec3d = context.getFrom().subtract(context.getTo());
48+
+ Vec3 vec3d = traverseContext.getFrom().subtract(traverseContext.getTo());
5249
+
53-
+ return BlockHitResult.miss(context.getTo(), Direction.getApproximateNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(context.getTo()));
50+
+ return BlockHitResult.miss(traverseContext.getTo(), Direction.getApproximateNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(traverseContext.getTo()));
5451
+ }
5552
+ // Paper end - Prevent raytrace from loading chunks
5653
+ if (blockState.isAir() || (canCollide != null && this instanceof LevelAccessor levelAccessor && !canCollide.test(org.bukkit.craftbukkit.block.CraftBlock.at(levelAccessor, traversePos)))) return null; // Paper - Perf: optimise air cases & check canCollide predicate
5754
+ FluidState fluidState = blockState.getFluidState(); // Paper - Perf: don't need to go to world state again
58-
+ Vec3 from = context.getFrom();
59-
+ Vec3 to = context.getTo();
60-
+ VoxelShape blockShape = context.getBlockShape(blockState, this, traversePos);
61-
BlockHitResult blockHitResult = this.clipWithInteractionOverride(from, to, traversePos, blockShape, blockState);
62-
- VoxelShape fluidShape = traverseContext.getFluidShape(fluidState, this, traversePos);
63-
+ VoxelShape fluidShape = context.getFluidShape(fluidState, this, traversePos);
64-
BlockHitResult blockHitResult1 = fluidShape.clip(from, to, traversePos);
65-
- double d = blockHitResult == null ? Double.MAX_VALUE : traverseContext.getFrom().distanceToSqr(blockHitResult.getLocation());
66-
- double d1 = blockHitResult1 == null ? Double.MAX_VALUE : traverseContext.getFrom().distanceToSqr(blockHitResult1.getLocation());
67-
+ double d = blockHitResult == null ? Double.MAX_VALUE : context.getFrom().distanceToSqr(blockHitResult.getLocation());
68-
+ double d1 = blockHitResult1 == null ? Double.MAX_VALUE : context.getFrom().distanceToSqr(blockHitResult1.getLocation());
55+
Vec3 from = traverseContext.getFrom();
56+
Vec3 to = traverseContext.getTo();
57+
VoxelShape blockShape = traverseContext.getBlockShape(blockState, this, traversePos);
58+
@@ -79,6 +_,18 @@
59+
double d = blockHitResult == null ? Double.MAX_VALUE : traverseContext.getFrom().distanceToSqr(blockHitResult.getLocation());
60+
double d1 = blockHitResult1 == null ? Double.MAX_VALUE : traverseContext.getFrom().distanceToSqr(blockHitResult1.getLocation());
6961
return d <= d1 ? blockHitResult : blockHitResult1;
7062
+ }
7163
+ // CraftBukkit end

paper-server/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -613,8 +613,8 @@ public BlockHitResult isBlockInLine(ClipBlockStateContext context) {
613613
}
614614

615615
@Override
616-
public BlockHitResult clip(ClipContext context, BlockPos traversePos) {
617-
return this.handle.clip(context, traversePos);
616+
public BlockHitResult clip(ClipContext traverseContext, BlockPos traversePos) {
617+
return this.handle.clip(traverseContext, traversePos);
618618
}
619619

620620
@Override

0 commit comments

Comments
 (0)