geforkt von Mirrors/Paper
#994: Fix changing world in portal events not updating used world border
Also clamp the event's target location to the world border By: Phoenix616 <max@themoep.de>
Dieser Commit ist enthalten in:
Ursprung
c5f623b0ac
Commit
a8b86ea421
@ -662,7 +662,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.removeAfterChangingDimensions();
|
this.removeAfterChangingDimensions();
|
||||||
@@ -2389,20 +2774,33 @@
|
@@ -2389,20 +2774,34 @@
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
protected ShapeDetectorShape findDimensionEntryPoint(WorldServer worldserver) {
|
protected ShapeDetectorShape findDimensionEntryPoint(WorldServer worldserver) {
|
||||||
@ -693,7 +693,8 @@
|
|||||||
+ return null;
|
+ return null;
|
||||||
+ }
|
+ }
|
||||||
+ final WorldServer worldserverFinal = worldserver = ((CraftWorld) event.getTo().getWorld()).getHandle();
|
+ final WorldServer worldserverFinal = worldserver = ((CraftWorld) event.getTo().getWorld()).getHandle();
|
||||||
+ blockposition = new BlockPosition(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ());
|
+ worldborder = worldserverFinal.getWorldBorder();
|
||||||
|
+ blockposition = worldborder.clampToBounds(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ());
|
||||||
|
|
||||||
- return (ShapeDetectorShape) this.getExitPortal(worldserver, blockposition, flag2, worldborder).map((blockutil_rectangle) -> {
|
- return (ShapeDetectorShape) this.getExitPortal(worldserver, blockposition, flag2, worldborder).map((blockutil_rectangle) -> {
|
||||||
+ return (ShapeDetectorShape) this.getExitPortal(worldserver, blockposition, flag2, worldborder, event.getSearchRadius(), event.getCanCreatePortal(), event.getCreationRadius()).map((blockutil_rectangle) -> {
|
+ return (ShapeDetectorShape) this.getExitPortal(worldserver, blockposition, flag2, worldborder, event.getSearchRadius(), event.getCanCreatePortal(), event.getCreationRadius()).map((blockutil_rectangle) -> {
|
||||||
@ -701,7 +702,7 @@
|
|||||||
IBlockData iblockdata = this.level.getBlockState(this.portalEntrancePos);
|
IBlockData iblockdata = this.level.getBlockState(this.portalEntrancePos);
|
||||||
EnumDirection.EnumAxis enumdirection_enumaxis;
|
EnumDirection.EnumAxis enumdirection_enumaxis;
|
||||||
Vec3D vec3d;
|
Vec3D vec3d;
|
||||||
@@ -2419,8 +2817,8 @@
|
@@ -2419,8 +2818,8 @@
|
||||||
vec3d = new Vec3D(0.5D, 0.0D, 0.0D);
|
vec3d = new Vec3D(0.5D, 0.0D, 0.0D);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -712,7 +713,7 @@
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
BlockPosition blockposition1;
|
BlockPosition blockposition1;
|
||||||
@@ -2430,8 +2828,15 @@
|
@@ -2430,8 +2829,15 @@
|
||||||
} else {
|
} else {
|
||||||
blockposition1 = worldserver.getHeightmapPos(HeightMap.Type.MOTION_BLOCKING_NO_LEAVES, worldserver.getSharedSpawnPos());
|
blockposition1 = worldserver.getHeightmapPos(HeightMap.Type.MOTION_BLOCKING_NO_LEAVES, worldserver.getSharedSpawnPos());
|
||||||
}
|
}
|
||||||
@ -729,7 +730,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2439,8 +2844,23 @@
|
@@ -2439,8 +2845,23 @@
|
||||||
return BlockPortalShape.getRelativePosition(blockutil_rectangle, enumdirection_enumaxis, this.position(), this.getDimensions(this.getPose()));
|
return BlockPortalShape.getRelativePosition(blockutil_rectangle, enumdirection_enumaxis, this.position(), this.getDimensions(this.getPose()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -755,7 +756,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean canChangeDimensions() {
|
public boolean canChangeDimensions() {
|
||||||
@@ -2649,7 +3069,26 @@
|
@@ -2649,7 +3070,26 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void setBoundingBox(AxisAlignedBB axisalignedbb) {
|
public final void setBoundingBox(AxisAlignedBB axisalignedbb) {
|
||||||
@ -783,7 +784,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected float getEyeHeight(EntityPose entitypose, EntitySize entitysize) {
|
protected float getEyeHeight(EntityPose entitypose, EntitySize entitysize) {
|
||||||
@@ -2933,6 +3372,11 @@
|
@@ -2933,6 +3373,11 @@
|
||||||
vec3d = vec3d.add(vec3d1);
|
vec3d = vec3d.add(vec3d1);
|
||||||
++k1;
|
++k1;
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren