9147456fc9
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: ab8ace685 SPIGOT-7236: Bone meal doesn't increase use statistic 7dcb59b8e Avoid switch on material in previous commit Spigot Changes: 19641c75 SPIGOT-7235: World.Spigot#strikeLightningEffect doesn't do anything
45 lines
3.2 KiB
Diff
45 lines
3.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Sun, 16 May 2021 09:39:46 -0700
|
|
Subject: [PATCH] Add back EntityPortalExitEvent
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
index f8d9864de8ec5e49d8d48d6808d0027c839b7bb6..5483a6a81b6a9de524e7116356fa71af686c70aa 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
@@ -3197,6 +3197,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
|
} else {
|
|
// CraftBukkit start
|
|
worldserver = shapedetectorshape.world;
|
|
+ // Paper start - Call EntityPortalExitEvent
|
|
+ CraftEntity bukkitEntity = this.getBukkitEntity();
|
|
+ Vec3 position = shapedetectorshape.pos;
|
|
+ float yaw = shapedetectorshape.yRot;
|
|
+ float pitch = bukkitEntity.getLocation().getPitch(); // Keep entity pitch as per moveTo line below
|
|
+ Vec3 velocity = shapedetectorshape.speed;
|
|
+ org.bukkit.event.entity.EntityPortalExitEvent event = new org.bukkit.event.entity.EntityPortalExitEvent(bukkitEntity,
|
|
+ bukkitEntity.getLocation(), new Location(worldserver.getWorld(), position.x, position.y, position.z, yaw, pitch),
|
|
+ bukkitEntity.getVelocity(), org.bukkit.craftbukkit.util.CraftVector.toBukkit(shapedetectorshape.speed));
|
|
+ if (event.callEvent() && event.getTo() != null && this.isAlive()) {
|
|
+ worldserver = ((CraftWorld) event.getTo().getWorld()).getHandle();
|
|
+ position = new Vec3(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ());
|
|
+ yaw = event.getTo().getYaw();
|
|
+ pitch = event.getTo().getPitch();
|
|
+ velocity = org.bukkit.craftbukkit.util.CraftVector.toNMS(event.getAfter());
|
|
+ }
|
|
+ // Paper end
|
|
if (worldserver == this.level) {
|
|
// SPIGOT-6782: Just move the entity if a plugin changed the world to the one the entity is already in
|
|
this.moveTo(shapedetectorshape.pos.x, shapedetectorshape.pos.y, shapedetectorshape.pos.z, shapedetectorshape.yRot, shapedetectorshape.xRot);
|
|
@@ -3216,8 +3233,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
|
|
|
if (entity != null) {
|
|
entity.restoreFrom(this);
|
|
- entity.moveTo(shapedetectorshape.pos.x, shapedetectorshape.pos.y, shapedetectorshape.pos.z, shapedetectorshape.yRot, entity.getXRot());
|
|
- entity.setDeltaMovement(shapedetectorshape.speed);
|
|
+ entity.moveTo(position.x, position.y, position.z, yaw, pitch); // Paper - use EntityPortalExitEvent values
|
|
+ entity.setDeltaMovement(velocity); // Paper - use EntityPortalExitEvent values
|
|
worldserver.addDuringTeleport(entity);
|
|
if (worldserver.getTypeKey() == LevelStem.END) { // CraftBukkit
|
|
ServerLevel.makeObsidianPlatform(worldserver, this); // CraftBukkit
|