Call stopRiding() on a Players death

Currently, when a player dies they are not automatically ejected from the entity they are riding, which allows
for the ridden entity to affect the players location on respawn (we're still riding it for a part of a tick), as well as allows a dupe to occur with the ridden entity teleporting to the new world with the player
This commit is contained in:
Shane Freeder 2017-04-18 15:08:27 +01:00
parent 63beca49fe
commit 674913df0a
No known key found for this signature in database
GPG key ID: A3F61EA5A085289C

View file

@ -0,0 +1,22 @@
From fb9a4072a4c5fd2d0e109e626e49e348463d0ef7 Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Tue, 18 Apr 2017 15:01:43 +0100
Subject: [PATCH] call stopRiding on players death.
When a death occurs, any entity that the player is riding has the potential to be duplicated, as well as affecting the position of the entities position after respawning
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index a5c5bd4be..ad3218108 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -495,6 +495,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
entityliving.b(this, this.bb);
}
+ this.stopRiding(); // Paper - stop riding entities on death, preventing the entity from adjusting our location or duping the ridden entity
this.b(StatisticList.A);
this.a(StatisticList.h);
this.extinguish();
--
2.12.2