Extend fishing API (#10634)
Adds a missing fishing state when the fish is lured and fires an event for it. Also adds a way to control the fish swimming time towards the bobber.
This commit is contained in:
parent
efd91e52a6
commit
27d2ed84f4
7 changed files with 148 additions and 13 deletions
|
@ -4,6 +4,7 @@ Date: Wed, 26 May 2021 19:34:43 -0400
|
|||
Subject: [PATCH] More Projectile API
|
||||
|
||||
Co-authored-by: Nassim Jahnke <nassim@njahnke.dev>
|
||||
Co-authored-by: SoSeDiK <mrsosedik@gmail.com>
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/AbstractArrow.java b/src/main/java/org/bukkit/entity/AbstractArrow.java
|
||||
index 839e5b7df49f42b5fec7729997bef3370ba36d80..b36298679d6d52d09fe4bb8e52e19e18f6df742a 100644
|
||||
|
@ -183,10 +184,10 @@ index 0d31aa0b22cf1e849572294e2cfe38b48c9210af..217d348ad0bbef720b25d3b507a55ca8
|
|||
+ // Paper end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/entity/FishHook.java b/src/main/java/org/bukkit/entity/FishHook.java
|
||||
index 94e1a30ea1bc26821065a6d89c1f5669bd1d08ae..6ed83d3e4d23e0dc0e1b156a1ee221aaba5c7210 100644
|
||||
index 94e1a30ea1bc26821065a6d89c1f5669bd1d08ae..fe32fa569afd62300f7fdc29eefaba291f265674 100644
|
||||
--- a/src/main/java/org/bukkit/entity/FishHook.java
|
||||
+++ b/src/main/java/org/bukkit/entity/FishHook.java
|
||||
@@ -322,4 +322,20 @@ public interface FishHook extends Projectile {
|
||||
@@ -322,4 +322,50 @@ public interface FishHook extends Projectile {
|
||||
*/
|
||||
BOBBING;
|
||||
}
|
||||
|
@ -205,6 +206,36 @@ index 94e1a30ea1bc26821065a6d89c1f5669bd1d08ae..6ed83d3e4d23e0dc0e1b156a1ee221aa
|
|||
+ * @param ticks Number of ticks
|
||||
+ */
|
||||
+ void setWaitTime(int ticks);
|
||||
+
|
||||
+ /**
|
||||
+ * Get the number of ticks the fish has to swim until biting the hook.
|
||||
+ * The {@link #getWaitTime()} has to be zero or below for the fish to start the time until bite timer.
|
||||
+ *
|
||||
+ * @return number of ticks.
|
||||
+ * A value of one indicates that the fish bites the very next time the fish hook is ticked
|
||||
+ * while a value of zero represents a fish that has already bitten the hook.
|
||||
+ * @see #getWaitTime()
|
||||
+ */
|
||||
+ @org.jetbrains.annotations.Range(from = 0, to = Integer.MAX_VALUE)
|
||||
+ int getTimeUntilBite();
|
||||
+
|
||||
+ /**
|
||||
+ * Sets the number of ticks the fish has to swim until biting the hook.
|
||||
+ *
|
||||
+ * @param ticks number of ticks.
|
||||
+ * One is the minimum that can be passed to this method and instructs the fish to bite the very next tick.
|
||||
+ * @throws IllegalArgumentException if the passed tick value is less than one.
|
||||
+ */
|
||||
+ void setTimeUntilBite(@org.jetbrains.annotations.Range(from = 1, to = Integer.MAX_VALUE) int ticks) throws IllegalArgumentException;
|
||||
+
|
||||
+ /**
|
||||
+ * Completely resets this fishing hook's fishing state, re-randomizing the time needed until a fish is lured and
|
||||
+ * bites the hook.
|
||||
+ * <p>
|
||||
+ * This method takes all properties of the fishing hook into account when resetting said values, such as a lure
|
||||
+ * enchantment.
|
||||
+ */
|
||||
+ void resetFishingState();
|
||||
+ // Paper end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/entity/Projectile.java b/src/main/java/org/bukkit/entity/Projectile.java
|
||||
|
|
24
patches/api/0482-Add-missing-fishing-event-state.patch
Normal file
24
patches/api/0482-Add-missing-fishing-event-state.patch
Normal file
|
@ -0,0 +1,24 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: SoSeDiK <mrsosedik@gmail.com>
|
||||
Date: Wed, 1 May 2024 07:44:50 +0300
|
||||
Subject: [PATCH] Add missing fishing event state
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/event/player/PlayerFishEvent.java b/src/main/java/org/bukkit/event/player/PlayerFishEvent.java
|
||||
index d4001f64a7ee9d5173e9bafd9c45860cbda1fc85..8b4ad421700f859396291508b178af9b51f23b0a 100644
|
||||
--- a/src/main/java/org/bukkit/event/player/PlayerFishEvent.java
|
||||
+++ b/src/main/java/org/bukkit/event/player/PlayerFishEvent.java
|
||||
@@ -165,5 +165,13 @@ public class PlayerFishEvent extends PlayerEvent implements Cancellable {
|
||||
* in.
|
||||
*/
|
||||
BITE
|
||||
+ // Paper start - Add missing fishing event state
|
||||
+ ,
|
||||
+ /**
|
||||
+ * Called when a bobber was lured, and is now waiting to be hooked
|
||||
+ * (when a "fish" starts to swim toward the bobber to bite it).
|
||||
+ */
|
||||
+ LURED,
|
||||
+ // Paper end - Add missing fishing event state
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue