mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-23 07:39:16 +01:00
Add hand to fish event for all player interactions (#9929)
This commit is contained in:
parent
531ef27e89
commit
9548629853
2 changed files with 97 additions and 0 deletions
|
@ -0,0 +1,22 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: booky10 <boooky10@gmail.com>
|
||||||
|
Date: Mon, 3 Jul 2023 01:55:32 +0200
|
||||||
|
Subject: [PATCH] Add hand to fish event for all player interactions
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerFishEvent.java b/src/main/java/org/bukkit/event/player/PlayerFishEvent.java
|
||||||
|
index 45342030ad0f46632d3ee9a6d0348251f8ee375f..d4001f64a7ee9d5173e9bafd9c45860cbda1fc85 100644
|
||||||
|
--- a/src/main/java/org/bukkit/event/player/PlayerFishEvent.java
|
||||||
|
+++ b/src/main/java/org/bukkit/event/player/PlayerFishEvent.java
|
||||||
|
@@ -94,8 +94,9 @@ public class PlayerFishEvent extends PlayerEvent implements Cancellable {
|
||||||
|
/**
|
||||||
|
* Get the hand that was used in this event.
|
||||||
|
* <p>
|
||||||
|
- * The hand used is only present when the event state is {@link State#FISHING}.
|
||||||
|
- * In all other states, the hand is null.
|
||||||
|
+ * The hand used is only present for player interactions.
|
||||||
|
+ * This means it will be null if state is set
|
||||||
|
+ * to {@link State#BITE} or {@link State#FAILED_ATTEMPT}.
|
||||||
|
*
|
||||||
|
* @return the hand
|
||||||
|
*/
|
|
@ -0,0 +1,75 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: booky10 <boooky10@gmail.com>
|
||||||
|
Date: Mon, 3 Jul 2023 01:55:32 +0200
|
||||||
|
Subject: [PATCH] Add hand to fish event for all player interactions
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
||||||
|
index a9eaa079a43bc8a5e81deaf6df5ce2f9c53cb319..a2093158e57d5f43c4afa66386481b82b3c4c3c4 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
|
||||||
|
@@ -474,7 +474,15 @@ public class FishingHook extends Projectile {
|
||||||
|
@Override
|
||||||
|
public void readAdditionalSaveData(CompoundTag nbt) {}
|
||||||
|
|
||||||
|
+ // Paper start - add hand parameter
|
||||||
|
+ @Deprecated
|
||||||
|
+ @io.papermc.paper.annotation.DoNotUse
|
||||||
|
public int retrieve(ItemStack usedItem) {
|
||||||
|
+ return this.retrieve(net.minecraft.world.InteractionHand.MAIN_HAND, usedItem);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public int retrieve(net.minecraft.world.InteractionHand hand, ItemStack usedItem) {
|
||||||
|
+ // Paper end
|
||||||
|
net.minecraft.world.entity.player.Player entityhuman = this.getPlayerOwner();
|
||||||
|
|
||||||
|
if (!this.level().isClientSide && entityhuman != null && !this.shouldStopFishing(entityhuman)) {
|
||||||
|
@@ -482,7 +490,7 @@ public class FishingHook extends Projectile {
|
||||||
|
|
||||||
|
if (this.hookedIn != null) {
|
||||||
|
// CraftBukkit start
|
||||||
|
- PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), this.hookedIn.getBukkitEntity(), (FishHook) this.getBukkitEntity(), PlayerFishEvent.State.CAUGHT_ENTITY);
|
||||||
|
+ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), this.hookedIn.getBukkitEntity(), (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.CAUGHT_ENTITY); // Paper - add hand
|
||||||
|
this.level().getCraftServer().getPluginManager().callEvent(playerFishEvent);
|
||||||
|
|
||||||
|
if (playerFishEvent.isCancelled()) {
|
||||||
|
@@ -511,7 +519,7 @@ public class FishingHook extends Projectile {
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
// CraftBukkit start
|
||||||
|
- PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), entityitem != null ? entityitem.getBukkitEntity() : null, (FishHook) this.getBukkitEntity(), PlayerFishEvent.State.CAUGHT_FISH); // Paper - entityitem may be null
|
||||||
|
+ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), entityitem != null ? entityitem.getBukkitEntity() : null, (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.CAUGHT_FISH); // Paper - entityitem may be null // Paper - add hand
|
||||||
|
playerFishEvent.setExpToDrop(this.random.nextInt(6) + 1);
|
||||||
|
this.level().getCraftServer().getPluginManager().callEvent(playerFishEvent);
|
||||||
|
|
||||||
|
@@ -545,7 +553,7 @@ public class FishingHook extends Projectile {
|
||||||
|
|
||||||
|
if (this.onGround()) {
|
||||||
|
// CraftBukkit start
|
||||||
|
- PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), null, (FishHook) this.getBukkitEntity(), PlayerFishEvent.State.IN_GROUND);
|
||||||
|
+ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), null, (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.IN_GROUND); // Paper - add hand
|
||||||
|
this.level().getCraftServer().getPluginManager().callEvent(playerFishEvent);
|
||||||
|
|
||||||
|
if (playerFishEvent.isCancelled()) {
|
||||||
|
@@ -556,7 +564,7 @@ public class FishingHook extends Projectile {
|
||||||
|
}
|
||||||
|
// CraftBukkit start
|
||||||
|
if (i == 0) {
|
||||||
|
- PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), null, (FishHook) this.getBukkitEntity(), PlayerFishEvent.State.REEL_IN);
|
||||||
|
+ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), null, (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.REEL_IN); // Paper - add hand
|
||||||
|
this.level().getCraftServer().getPluginManager().callEvent(playerFishEvent);
|
||||||
|
if (playerFishEvent.isCancelled()) {
|
||||||
|
return 0;
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/item/FishingRodItem.java b/src/main/java/net/minecraft/world/item/FishingRodItem.java
|
||||||
|
index b9aca584c9765e995d1f8b9b2e45e5257fb6ab9d..ad326a68e87ae571a7eb7b6804bf67ecec64211f 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/item/FishingRodItem.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/item/FishingRodItem.java
|
||||||
|
@@ -29,7 +29,7 @@ public class FishingRodItem extends Item implements Vanishable {
|
||||||
|
|
||||||
|
if (user.fishing != null) {
|
||||||
|
if (!world.isClientSide) {
|
||||||
|
- i = user.fishing.retrieve(itemstack);
|
||||||
|
+ i = user.fishing.retrieve(hand, itemstack); // Paper - add hand parameter
|
||||||
|
itemstack.hurtAndBreak(i, user, (entityhuman1) -> {
|
||||||
|
entityhuman1.broadcastBreakEvent(hand);
|
||||||
|
});
|
Loading…
Reference in a new issue