diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandSpreadPlayers.patch b/paper-server/nms-patches/net/minecraft/server/commands/CommandSpreadPlayers.patch index e21ef716cf..b74d043eca 100644 --- a/paper-server/nms-patches/net/minecraft/server/commands/CommandSpreadPlayers.patch +++ b/paper-server/nms-patches/net/minecraft/server/commands/CommandSpreadPlayers.patch @@ -9,6 +9,15 @@ } } +@@ -200,7 +200,7 @@ + commandspreadplayers_a = acommandspreadplayers_a[j++]; + } + +- entity.teleportTo(worldserver, (double) MathHelper.floor(commandspreadplayers_a.x) + 0.5D, (double) commandspreadplayers_a.getSpawnY(worldserver, i), (double) MathHelper.floor(commandspreadplayers_a.z) + 0.5D, Set.of(), entity.getYRot(), entity.getXRot()); ++ entity.teleportTo(worldserver, (double) MathHelper.floor(commandspreadplayers_a.x) + 0.5D, (double) commandspreadplayers_a.getSpawnY(worldserver, i), (double) MathHelper.floor(commandspreadplayers_a.z) + 0.5D, Set.of(), entity.getYRot(), entity.getXRot(), org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.COMMAND); // CraftBukkit - handle teleport reason + d1 = Double.MAX_VALUE; + CommandSpreadPlayers.a[] acommandspreadplayers_a1 = acommandspreadplayers_a; + int k = acommandspreadplayers_a.length; @@ -299,7 +299,7 @@ for (boolean flag2 = iblockaccess.getBlockState(blockposition_mutableblockposition).isAir(); blockposition_mutableblockposition.getY() > iblockaccess.getMinBuildHeight(); flag2 = flag1) { diff --git a/paper-server/nms-patches/net/minecraft/world/entity/Entity.patch b/paper-server/nms-patches/net/minecraft/world/entity/Entity.patch index 62398bc9ec..1e55a10083 100644 --- a/paper-server/nms-patches/net/minecraft/world/entity/Entity.patch +++ b/paper-server/nms-patches/net/minecraft/world/entity/Entity.patch @@ -698,14 +698,14 @@ - WorldServer.makeObsidianPlatform(worldserver); + if (worldserver.getTypeKey() == WorldDimension.END) { // CraftBukkit + WorldServer.makeObsidianPlatform(worldserver, this); // CraftBukkit - } ++ } + // CraftBukkit start - Forward the CraftEntity to the new entity + this.getBukkitEntity().setHandle(entity); + entity.bukkitEntity = this.getBukkitEntity(); + + if (this instanceof EntityInsentient) { + ((EntityInsentient) this).dropLeash(true, false); // Unleash to prevent duping of leads. -+ } + } + // CraftBukkit end } @@ -803,7 +803,20 @@ } public boolean canChangeDimensions() { -@@ -2773,7 +3225,26 @@ +@@ -2644,6 +3096,12 @@ + } + } + ++ // CraftBukkit start ++ public boolean teleportTo(WorldServer worldserver, double d0, double d1, double d2, Set set, float f, float f1, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause cause) { ++ return this.teleportTo(worldserver, d0, d1, d2, set, f, f1); ++ } ++ // CraftBukkit end ++ + public boolean teleportTo(WorldServer worldserver, double d0, double d1, double d2, Set set, float f, float f1) { + float f2 = MathHelper.clamp(f1, -90.0F, 90.0F); + +@@ -2773,7 +3231,26 @@ } public final void setBoundingBox(AxisAlignedBB axisalignedbb) { @@ -831,7 +844,7 @@ } protected float getEyeHeight(EntityPose entitypose, EntitySize entitysize) { -@@ -3084,6 +3555,11 @@ +@@ -3084,6 +3561,11 @@ vec3d = vec3d.add(vec3d1); ++k1; }