diff --git a/patches/api/0322-Adds-PlayerArmSwingEvent.patch b/patches/api/0322-Adds-PlayerArmSwingEvent.patch new file mode 100644 index 0000000000..75e45a71f8 --- /dev/null +++ b/patches/api/0322-Adds-PlayerArmSwingEvent.patch @@ -0,0 +1,71 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Fri, 12 Mar 2021 19:20:03 -0800 +Subject: [PATCH] Adds PlayerArmSwingEvent + + +diff --git a/src/main/java/io/papermc/paper/event/player/PlayerArmSwingEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerArmSwingEvent.java +new file mode 100644 +index 0000000000000000000000000000000000000000..1a4550a73e89f9cf92d2831d21bcfb46f92fd189 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/event/player/PlayerArmSwingEvent.java +@@ -0,0 +1,27 @@ ++package io.papermc.paper.event.player; ++ ++import org.bukkit.entity.Player; ++import org.bukkit.event.player.PlayerAnimationEvent; ++import org.bukkit.event.player.PlayerAnimationType; ++import org.bukkit.inventory.EquipmentSlot; ++import org.jetbrains.annotations.NotNull; ++ ++public class PlayerArmSwingEvent extends PlayerAnimationEvent { ++ ++ private final EquipmentSlot equipmentSlot; ++ ++ public PlayerArmSwingEvent(@NotNull Player player, @NotNull EquipmentSlot equipmentSlot) { ++ super(player, PlayerAnimationType.ARM_SWING); ++ this.equipmentSlot = equipmentSlot; ++ } ++ ++ /** ++ * Returns the hand of the arm swing. ++ * ++ * @return the hand ++ */ ++ @NotNull ++ public EquipmentSlot getHand() { ++ return this.equipmentSlot; ++ } ++} +diff --git a/src/main/java/org/bukkit/event/player/PlayerAnimationEvent.java b/src/main/java/org/bukkit/event/player/PlayerAnimationEvent.java +index 6cd236cd1fa10ec37e6e0228c7bbd4415b39399d..4d18b0f2984b301bb2d909c9c362de4cbd4366fe 100644 +--- a/src/main/java/org/bukkit/event/player/PlayerAnimationEvent.java ++++ b/src/main/java/org/bukkit/event/player/PlayerAnimationEvent.java +@@ -7,6 +7,7 @@ import org.jetbrains.annotations.NotNull; + + /** + * Represents a player animation event ++ *
Use {@link io.papermc.paper.event.player.PlayerArmSwingEvent} for determining which arm was swung. + */ + public class PlayerAnimationEvent extends PlayerEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); +@@ -18,12 +19,19 @@ public class PlayerAnimationEvent extends PlayerEvent implements Cancellable { + * + * @param player The player instance + */ ++ @Deprecated // Paper + public PlayerAnimationEvent(@NotNull final Player player) { + super(player); + + // Only supported animation type for now: + animationType = PlayerAnimationType.ARM_SWING; + } ++ // Paper start ++ public PlayerAnimationEvent(@NotNull final Player player, @NotNull PlayerAnimationType animationType) { ++ super(player); ++ this.animationType = animationType; ++ } ++ // Paper end + + /** + * Get the type of this animation event diff --git a/patches/server/0725-Adds-PlayerArmSwingEvent.patch b/patches/server/0725-Adds-PlayerArmSwingEvent.patch new file mode 100644 index 0000000000..77c383400c --- /dev/null +++ b/patches/server/0725-Adds-PlayerArmSwingEvent.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Fri, 12 Mar 2021 19:22:21 -0800 +Subject: [PATCH] Adds PlayerArmSwingEvent + + +diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +index 6ff04fc7202a7eb1f2b5978a2e2a573945d9dde1..1befdf30aef80dd12f005df3a6b667162bbcc3c1 100644 +--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java ++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +@@ -2204,7 +2204,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser + } + + // Arm swing animation +- PlayerAnimationEvent event = new PlayerAnimationEvent(this.getCraftPlayer()); ++ io.papermc.paper.event.player.PlayerArmSwingEvent event = new io.papermc.paper.event.player.PlayerArmSwingEvent(this.getCraftPlayer(), packet.getHand() == InteractionHand.MAIN_HAND ? org.bukkit.inventory.EquipmentSlot.HAND : org.bukkit.inventory.EquipmentSlot.OFF_HAND); // Paper + this.cserver.getPluginManager().callEvent(event); + + if (event.isCancelled()) return;