mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-01 20:52:12 -07:00
Cancel PlayerLaunchProjectileEvent properly for enderpearls (#12223)
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/world/item/EnderpearlItem.java
|
--- a/net/minecraft/world/item/EnderpearlItem.java
|
||||||
+++ b/net/minecraft/world/item/EnderpearlItem.java
|
+++ b/net/minecraft/world/item/EnderpearlItem.java
|
||||||
@@ -21,22 +_,38 @@
|
@@ -21,22 +_,42 @@
|
||||||
@Override
|
@Override
|
||||||
public InteractionResult use(Level level, Player player, InteractionHand hand) {
|
public InteractionResult use(Level level, Player player, InteractionHand hand) {
|
||||||
ItemStack itemInHand = player.getItemInHand(hand);
|
ItemStack itemInHand = player.getItemInHand(hand);
|
||||||
@@ -39,7 +39,11 @@
|
|||||||
+ );
|
+ );
|
||||||
+ player.awardStat(Stats.ITEM_USED.get(this));
|
+ player.awardStat(Stats.ITEM_USED.get(this));
|
||||||
+ } else {
|
+ } else {
|
||||||
+ // Paper end - PlayerLaunchProjectileEvent
|
+ if (player instanceof net.minecraft.server.level.ServerPlayer serverPlayer) {
|
||||||
|
+ serverPlayer.deregisterEnderPearl(thrownEnderpearl.projectile());
|
||||||
|
+ serverPlayer.connection.send(new net.minecraft.network.protocol.game.ClientboundCooldownPacket(player.getCooldowns().getCooldownGroup(itemInHand), 0)); // prevent visual desync of cooldown on the slot
|
||||||
|
+ }
|
||||||
|
+ // Paper end - PlayerLaunchProjectileEvent
|
||||||
+ player.containerMenu.sendAllDataToRemote();
|
+ player.containerMenu.sendAllDataToRemote();
|
||||||
+ return InteractionResult.FAIL;
|
+ return InteractionResult.FAIL;
|
||||||
+ }
|
+ }
|
||||||
|
Reference in New Issue
Block a user