13
0
geforkt von Mirrors/Paper

#1153: Handle teleport reason in spreadplayers command

By: Doc <nachito94@msn.com>
Dieser Commit ist enthalten in:
CraftBukkit/Spigot 2023-03-23 20:52:34 +11:00
Ursprung bc7c41cfbc
Commit 2a51332a0c
2 geänderte Dateien mit 26 neuen und 4 gelöschten Zeilen

Datei anzeigen

@ -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) {

Datei anzeigen

@ -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<RelativeMovement> 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<RelativeMovement> 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;
}