| 
									
										
										
										
											2019-10-18 20:28:06 +02:00
										 |  |  | --- a/net/minecraft/server/IBlockAccess.java
 | 
					
						
							|  |  |  | +++ b/net/minecraft/server/IBlockAccess.java
 | 
					
						
							| 
									
										
										
										
											2020-06-25 10:00:00 +10:00
										 |  |  | @@ -30,8 +30,8 @@
 | 
					
						
							|  |  |  |          return BlockPosition.a(axisalignedbb).map(this::getType); | 
					
						
							| 
									
										
										
										
											2019-10-18 20:28:06 +02:00
										 |  |  |      } | 
					
						
							|  |  |  |   | 
					
						
							|  |  |  | -    default MovingObjectPositionBlock rayTrace(RayTrace raytrace) {
 | 
					
						
							|  |  |  | -        return (MovingObjectPositionBlock) a(raytrace, (raytrace1, blockposition) -> {
 | 
					
						
							|  |  |  | +    // CraftBukkit start - moved block handling into separate method for use by Block#rayTrace
 | 
					
						
							|  |  |  | +    default MovingObjectPositionBlock rayTraceBlock(RayTrace raytrace1, BlockPosition blockposition) {
 | 
					
						
							|  |  |  |              IBlockData iblockdata = this.getType(blockposition); | 
					
						
							|  |  |  |              Fluid fluid = this.getFluid(blockposition); | 
					
						
							|  |  |  |              Vec3D vec3d = raytrace1.b(); | 
					
						
							| 
									
										
										
										
											2020-06-25 10:00:00 +10:00
										 |  |  | @@ -44,6 +44,12 @@
 | 
					
						
							| 
									
										
										
										
											2019-10-18 20:28:06 +02:00
										 |  |  |              double d1 = movingobjectpositionblock1 == null ? Double.MAX_VALUE : raytrace1.b().distanceSquared(movingobjectpositionblock1.getPos()); | 
					
						
							|  |  |  |   | 
					
						
							|  |  |  |              return d0 <= d1 ? movingobjectpositionblock : movingobjectpositionblock1; | 
					
						
							|  |  |  | +    }
 | 
					
						
							|  |  |  | +    // CraftBukkit end
 | 
					
						
							|  |  |  | +
 | 
					
						
							|  |  |  | +    default MovingObjectPositionBlock rayTrace(RayTrace raytrace) {
 | 
					
						
							|  |  |  | +        return (MovingObjectPositionBlock) a(raytrace, (raytrace1, blockposition) -> {
 | 
					
						
							|  |  |  | +            return this.rayTraceBlock(raytrace1, blockposition); // CraftBukkit - moved into separate method
 | 
					
						
							|  |  |  |          }, (raytrace1) -> { | 
					
						
							|  |  |  |              Vec3D vec3d = raytrace1.b().d(raytrace1.a()); | 
					
						
							|  |  |  |   | 
					
						
							| 
									
										
										
										
											2020-06-25 10:00:00 +10:00
										 |  |  | @@ -101,7 +107,7 @@
 | 
					
						
							| 
									
										
										
										
											2019-10-18 20:28:06 +02:00
										 |  |  |                  double d13 = d10 * (i1 > 0 ? 1.0D - MathHelper.h(d4) : MathHelper.h(d4)); | 
					
						
							|  |  |  |                  double d14 = d11 * (j1 > 0 ? 1.0D - MathHelper.h(d5) : MathHelper.h(d5)); | 
					
						
							|  |  |  |   | 
					
						
							|  |  |  | -                Object object;
 | 
					
						
							|  |  |  | +                T object; // CraftBukkit - decompile error
 | 
					
						
							|  |  |  |   | 
					
						
							|  |  |  |                  do { | 
					
						
							|  |  |  |                      if (d12 > 1.0D && d13 > 1.0D && d14 > 1.0D) { |