mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-25 03:55:14 +01:00
Fix riding distance statistics (#7021/SPIGOT-6475) (#7033)
This commit is contained in:
parent
686bbd33d4
commit
64f9225c94
@ -295,3 +295,6 @@ public net.minecraft.world.entity.monster.Skeleton inPowderSnowTime
|
|||||||
|
|
||||||
# Add health methods for item entities
|
# Add health methods for item entities
|
||||||
public net.minecraft.world.entity.item.ItemEntity health
|
public net.minecraft.world.entity.item.ItemEntity health
|
||||||
|
|
||||||
|
# Fix riding distance statistics
|
||||||
|
public net.minecraft.world.entity.player.Player checkRidingStatistics(DDD)V
|
||||||
|
46
patches/server/0843-Fix-riding-distance-statistics.patch
Normal file
46
patches/server/0843-Fix-riding-distance-statistics.patch
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marvin Rieple <derrieple@gmail.com>
|
||||||
|
Date: Sun, 5 Dec 2021 16:42:07 +0100
|
||||||
|
Subject: [PATCH] Fix riding distance statistics
|
||||||
|
|
||||||
|
Fixes entity ride distance stats not being awarded correctly.
|
||||||
|
Based upon https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/pull-requests/900
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
index b9e0dc98243bee3de7eb291dd3fb25049c0a8f2b..3c7e3d5b06409bf2e98a35d678564f0e477481a9 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
@@ -608,7 +608,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||||
|
Location curPos = this.getCraftPlayer().getLocation(); // Spigot
|
||||||
|
|
||||||
|
entity.absMoveTo(d3, d4, d5, f, f1);
|
||||||
|
- this.player.absMoveTo(d3, d4, d5, this.player.getYRot(), this.player.getXRot()); // CraftBukkit
|
||||||
|
+ // Paper start - SPIGOT-4396: Synchronize player and vehicle
|
||||||
|
+ // Based upon https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/pull-requests/900
|
||||||
|
+ Vec3 oldPlayerPosition = this.player.position();
|
||||||
|
+ entity.positionRider(this.player);
|
||||||
|
+ this.player.xo = oldPlayerPosition.x;
|
||||||
|
+ this.player.yo = oldPlayerPosition.y;
|
||||||
|
+ this.player.zo = oldPlayerPosition.z;
|
||||||
|
+ // Paper end
|
||||||
|
// Paper start - optimise out extra getCubes
|
||||||
|
boolean teleportBack = flag1; // violating this is always a fail
|
||||||
|
if (!teleportBack) {
|
||||||
|
@@ -620,10 +627,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||||
|
}
|
||||||
|
if (teleportBack) { // Paper end - optimise out extra getCubes
|
||||||
|
entity.absMoveTo(d0, d1, d2, f, f1);
|
||||||
|
- this.player.absMoveTo(d0, d1, d2, this.player.getYRot(), this.player.getXRot()); // CraftBukkit
|
||||||
|
+ // Paper start - SPIGOT-6475
|
||||||
|
+ entity.positionRider(this.player);
|
||||||
|
+ this.player.xo = oldPlayerPosition.x;
|
||||||
|
+ this.player.yo = oldPlayerPosition.y;
|
||||||
|
+ this.player.zo = oldPlayerPosition.z;
|
||||||
|
+ // Paper end
|
||||||
|
this.connection.send(new ClientboundMoveVehiclePacket(entity));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
+ player.checkRidingStatistics(player.getX() - oldPlayerPosition.x, player.getY() - oldPlayerPosition.y, player.getZ() - oldPlayerPosition.z); // Paper - SPIGOT-6475: Update riding statistic
|
||||||
|
|
||||||
|
// CraftBukkit start - fire PlayerMoveEvent
|
||||||
|
Player player = this.getCraftPlayer();
|
Loading…
Reference in New Issue
Block a user