geforkt von Mirrors/Paper
fb25dc17c6
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: da08d022 SPIGOT-4700: Add PlayerFishEvent.State.REEL_IN 0cef14e4 Remove draft API from selectEntities CraftBukkit Changes:a46fdbc6
Remove outdated build delay.3697519b
SPIGOT-4708: Fix ExactChoice recipes neglecting material9ead7009
SPIGOT-4677: Add minecraft.admin.command_feedback permissionc3749a23
Remove the Damage tag from items when it is 0.f74c7b95
SPIGOT-4706: Can't interact with active item494eef45
Mention requirement of JIRA ticket for bug fixes51d62dec
SPIGOT-4702: Exception when middle clicking certain slotsbe557e69
SPIGOT-4700: Add PlayerFishEvent.State.REEL_IN
71 Zeilen
3.7 KiB
Diff
71 Zeilen
3.7 KiB
Diff
From 089a524589f6065314534ab6607df461a97426e0 Mon Sep 17 00:00:00 2001
|
|
From: Zach Brown <zach.brown@destroystokyo.com>
|
|
Date: Thu, 28 Sep 2017 17:21:44 -0400
|
|
Subject: [PATCH] Add PlayerJumpEvent
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
|
|
index 298012f37c..bfae875ebb 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
|
@@ -1483,6 +1483,7 @@ public abstract class EntityHuman extends EntityLiving {
|
|
return 0;
|
|
}
|
|
|
|
+ public void jump() { this.cH(); } // Paper - OBFHELPER
|
|
public void cH() {
|
|
super.cH();
|
|
this.a(StatisticList.JUMP);
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
index ac64fcfb31..5fa3268b59 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
@@ -58,6 +58,8 @@ import org.bukkit.inventory.CraftingInventory;
|
|
import org.bukkit.inventory.EquipmentSlot;
|
|
import org.bukkit.inventory.InventoryView;
|
|
import org.bukkit.util.NumberConversions;
|
|
+import com.destroystokyo.paper.event.player.IllegalPacketEvent; // Paper
|
|
+import com.destroystokyo.paper.event.player.PlayerJumpEvent; // Paper
|
|
import co.aikar.timings.MinecraftTimings; // Paper
|
|
// CraftBukkit end
|
|
|
|
@@ -872,7 +874,34 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
|
d8 = d5 - this.p;
|
|
d9 = d6 - this.q;
|
|
if (this.player.onGround && !packetplayinflying.b() && d8 > 0.0D) {
|
|
- this.player.cH();
|
|
+ // Paper start - Add player jump event
|
|
+ Player player = this.getPlayer();
|
|
+ Location from = new Location(player.getWorld(), lastPosX, lastPosY, lastPosZ, lastYaw, lastPitch); // Get the Players previous Event location.
|
|
+ Location to = player.getLocation().clone(); // Start off the To location as the Players current location.
|
|
+
|
|
+ // If the packet contains movement information then we update the To location with the correct XYZ.
|
|
+ if (packetplayinflying.hasPos) {
|
|
+ to.setX(packetplayinflying.x);
|
|
+ to.setY(packetplayinflying.y);
|
|
+ to.setZ(packetplayinflying.z);
|
|
+ }
|
|
+
|
|
+ // If the packet contains look information then we update the To location with the correct Yaw & Pitch.
|
|
+ if (packetplayinflying.hasLook) {
|
|
+ to.setYaw(packetplayinflying.yaw);
|
|
+ to.setPitch(packetplayinflying.pitch);
|
|
+ }
|
|
+
|
|
+ PlayerJumpEvent event = new PlayerJumpEvent(player, from, to);
|
|
+
|
|
+ if (event.callEvent()) {
|
|
+ this.player.jump();
|
|
+ } else {
|
|
+ from = event.getFrom();
|
|
+ this.internalTeleport(from.getX(), from.getY(), from.getZ(), from.getYaw(), from.getPitch(), Collections.emptySet());
|
|
+ return;
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
|
|
this.player.move(EnumMoveType.PLAYER, d7, d8, d9);
|
|
--
|
|
2.21.0
|
|
|