|
| 1 | +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Jake Potrebic <jake.m.potrebic@gmail.com> |
| 3 | +Date: Sun, 16 May 2021 09:39:46 -0700 |
| 4 | +Subject: [PATCH] Add back EntityPortalExitEvent |
| 5 | + |
| 6 | + |
| 7 | +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java |
| 8 | +index 4f164f238177b5e2b18c76b7cc14596ec93409d1..5c0d4c5cfef969cf3864a2c055dd0a51d0cfa770 100644 |
| 9 | +--- a/src/main/java/net/minecraft/world/entity/Entity.java |
| 10 | ++++ b/src/main/java/net/minecraft/world/entity/Entity.java |
| 11 | +@@ -3179,6 +3179,19 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n |
| 12 | + if (shapedetectorshape == null) { |
| 13 | + return null; |
| 14 | + } else { |
| 15 | ++ // Paper start - Call EntityPortalExitEvent |
| 16 | ++ Vec3 position = shapedetectorshape.pos; |
| 17 | ++ float yaw = shapedetectorshape.yRot; |
| 18 | ++ float pitch = shapedetectorshape.xRot; |
| 19 | ++ Vec3 velocity = shapedetectorshape.speed; |
| 20 | ++ org.bukkit.event.entity.EntityPortalExitEvent event = new org.bukkit.event.entity.EntityPortalExitEvent(this.getBukkitEntity(), this.getBukkitEntity().getLocation(), shapedetectorshape.portalEventInfo.getTo(), this.getBukkitEntity().getVelocity(), org.bukkit.craftbukkit.util.CraftVector.toBukkit(shapedetectorshape.speed)); |
| 21 | ++ if (event.callEvent() && event.getTo() != null && this.isAlive()) { |
| 22 | ++ position = Vec3.atLowerCornerOf(MCUtil.toBlockPosition(event.getTo())); |
| 23 | ++ yaw = event.getTo().getYaw(); |
| 24 | ++ pitch = event.getTo().getPitch(); |
| 25 | ++ velocity = org.bukkit.craftbukkit.util.CraftVector.toNMS(event.getAfter()); |
| 26 | ++ } |
| 27 | ++ // Paper end |
| 28 | + // CraftBukkit start |
| 29 | + worldserver = shapedetectorshape.world; |
| 30 | + this.unRide(); |
| 31 | +@@ -3194,8 +3207,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n |
| 32 | + |
| 33 | + if (entity != null) { |
| 34 | + entity.restoreFrom(this); |
| 35 | +- entity.moveTo(shapedetectorshape.pos.x, shapedetectorshape.pos.y, shapedetectorshape.pos.z, shapedetectorshape.yRot, entity.getXRot()); |
| 36 | +- entity.setDeltaMovement(shapedetectorshape.speed); |
| 37 | ++ entity.moveTo(position.x, position.y, position.z, yaw, pitch); // Paper - respect EntityPortalExitEvent values |
| 38 | ++ entity.setDeltaMovement(velocity); // Paper - respect EntityPortalExitEvent values |
| 39 | + worldserver.addDuringTeleport(entity); |
| 40 | + if (worldserver.getTypeKey() == DimensionType.END_LOCATION) { // CraftBukkit |
| 41 | + ServerLevel.makeObsidianPlatform(worldserver, this); // CraftBukkit |
0 commit comments