Interface FishHook

All Superinterfaces:
Audience, CommandSender, DataComponentView, Entity, HoverEventSource<HoverEvent.ShowEntity>, Metadatable, Nameable, Permissible, PersistentDataHolder, PersistentDataViewHolder, Pointered, Projectile, ServerOperator, Sound.Emitter

public interface FishHook extends Projectile
Represents a fishing hook.
Since:
1.7.10
  • Method Details

    • getMinWaitTime

      int getMinWaitTime()
      Get the minimum number of ticks one has to wait for a fish appearing.

      The default is 100 ticks (5 seconds).
      Note that this is before applying lure.

      Returns:
      Minimum number of ticks one has to wait for a fish appearing
      Since:
      1.16.4
    • setMinWaitTime

      void setMinWaitTime(int minWaitTime)
      Set the minimum number of ticks one has to wait for a fish appearing.

      The default is 100 ticks (5 seconds).
      Note that this is before applying lure.

      Parameters:
      minWaitTime - Minimum number of ticks one has to wait for a fish appearing
      Since:
      1.16.4
    • getMaxWaitTime

      int getMaxWaitTime()
      Get the maximum number of ticks one has to wait for a fish appearing.

      The default is 600 ticks (30 seconds).
      Note that this is before applying lure.

      Returns:
      Maximum number of ticks one has to wait for a fish appearing
      Since:
      1.16.4
    • setMaxWaitTime

      void setMaxWaitTime(int maxWaitTime)
      Set the maximum number of ticks one has to wait for a fish appearing.

      The default is 600 ticks (30 seconds).
      Note that this is before applying lure.

      Parameters:
      maxWaitTime - Maximum number of ticks one has to wait for a fish appearing
      Since:
      1.16.4
    • setWaitTime

      void setWaitTime(int min, int max)
      Set both the minimum (default 100) and maximum (default 600) amount of ticks one has to wait for a fish appearing.
      Parameters:
      min - minimum ticks for a fish to appear
      max - maximum ticks for a fish to appear
      Since:
      1.19.4
    • getMinLureTime

      int getMinLureTime()
      Get the minimum number of ticks one has to wait for a fish to bite after appearing.

      The default is 20 ticks (1 second).
      Lure does not affect this value. This will also effect the radius (0.1 * lureTime) of where the fish will appear.

      Returns:
      Minimum number of ticks one has to wait for a fish to bite
      Since:
      1.19.4
    • setMinLureTime

      void setMinLureTime(int minLureTime)
      Set the minimum number of ticks one has to wait for a fish to bite after appearing.

      The default is 20 ticks (1 second).
      Lure does not affect this value. This will also effect the radius (0.1 * lureTime) of where the fish will appear.

      Parameters:
      minLureTime - Minimum number of ticks one has to wait for a fish to bite
      Since:
      1.19.4
    • getMaxLureTime

      int getMaxLureTime()
      Get the maximum number of ticks one has to wait for a fish to bite after appearing.

      The default is 80 ticks (4 second).
      Lure does not affect this value. This will also effect the radius (0.1 * lureTime) of where the fish will appear.

      Returns:
      Maximum number of ticks one has to wait for a fish to bite
      Since:
      1.19.4
    • setMaxLureTime

      void setMaxLureTime(int maxLureTime)
      Set the maximum number of ticks one has to wait for a fish to bite after appearing.

      The default is 80 ticks (4 second).
      Lure does not affect this value. This will also effect the radius (0.1 * lureTime) of where the fish will appear.

      Parameters:
      maxLureTime - Maximum number of ticks one has to wait for a fish to bite
      Since:
      1.19.4
    • setLureTime

      void setLureTime(int min, int max)
      Set both the minimum (default 20) and maximum (default 80) amount of ticks one has to wait for a fish to bite after appearing.
      Parameters:
      min - minimum ticks to wait for a bite
      max - maximum ticks to wait for a bite
      Since:
      1.19.4
    • getMinLureAngle

      float getMinLureAngle()
      Get the minimum angle (in degrees, 0 being positive Z 90 being negative X) of where a fish will appear after the wait time.

      The default is 0 degrees.

      Returns:
      Minimum angle of where a fish will appear
      Since:
      1.19.4
    • setMinLureAngle

      void setMinLureAngle(float minLureAngle)
      Set the minimum angle (in degrees, 0 being positive Z 90 being negative X) of where a fish will appear after the wait time.

      The default is 0 degrees.

      Parameters:
      minLureAngle - Minimum angle of where a fish may appear
      Since:
      1.19.4
    • getMaxLureAngle

      float getMaxLureAngle()
      Get the maximum angle (in degrees, 0 being positive Z 90 being negative X) of where a fish will appear after the wait time.

      The default is 360 degrees.

      Returns:
      Maximum angle of where a fish will appear
      Since:
      1.19.4
    • setMaxLureAngle

      void setMaxLureAngle(float maxLureAngle)
      Set the maximum angle (in degrees, 0 being positive Z 90 being negative X) of where a fish will appear after the wait time.

      The default is 360 degrees.

      Parameters:
      maxLureAngle - Maximum angle of where a fish may appear
      Since:
      1.19.4
    • setLureAngle

      void setLureAngle(float min, float max)
      Set both the minimum (default 0) and maximum (default 360) angle of where a fish will appear after the wait time. 0 degrees is positive Z, 90 degrees is negative X.
      Parameters:
      min - minimum angle in degrees
      max - maximum angle in degrees
      Since:
      1.19.4
    • getApplyLure

      boolean getApplyLure()
      Get whether the lure enchantment should be applied to reduce the wait time.

      The default is true.
      Lure reduces the wait time by 100 ticks (5 seconds) for each level of the enchantment.

      Returns:
      Whether the lure enchantment should be applied to reduce the wait time
      Since:
      1.16.4
    • setApplyLure

      void setApplyLure(boolean applyLure)
      Set whether the lure enchantment should be applied to reduce the wait time.

      The default is true.
      Lure reduces the wait time by 100 ticks (5 seconds) for each level of the enchantment.

      Parameters:
      applyLure - Whether the lure enchantment should be applied to reduce the wait time
      Since:
      1.16.4
    • getBiteChance

      @Deprecated(since="1.9.2", forRemoval=true) double getBiteChance()
      Deprecated, for removal: This API element is subject to removal in a future version.
      has no effect in newer Minecraft versions
      Gets the chance of a fish biting.

      0.0 = No Chance.
      1.0 = Instant catch.

      Returns:
      chance the bite chance
    • setBiteChance

      @Deprecated(since="1.9.2", forRemoval=true) void setBiteChance(double chance) throws IllegalArgumentException
      Deprecated, for removal: This API element is subject to removal in a future version.
      has no effect in newer Minecraft versions
      Sets the chance of a fish biting.

      0.0 = No Chance.
      1.0 = Instant catch.

      Parameters:
      chance - the bite chance
      Throws:
      IllegalArgumentException - if the bite chance is not between 0 and 1
    • isInOpenWater

      boolean isInOpenWater()
      Check whether or not this fish hook is in open water.

      Open water is defined by a 5x4x5 area of water, air and lily pads. If in open water, treasure items may be caught.

      Returns:
      true if in open water, false otherwise
      Since:
      1.16.5
    • getHookedEntity

      @Nullable @Nullable Entity getHookedEntity()
      Get the entity hooked by this fish hook.
      Returns:
      the hooked entity. null if none
      Since:
      1.16.5
    • setHookedEntity

      void setHookedEntity(@Nullable @Nullable Entity entity)
      Set the entity hooked by this fish hook.
      Parameters:
      entity - the entity to set, or null to unhook
      Since:
      1.16.5
    • pullHookedEntity

      boolean pullHookedEntity()
      Pull the hooked entity to the caster of this fish hook. If no entity is hooked, this method has no effect.
      Returns:
      true if pulled, false if no entity is hooked
      Since:
      1.16.5
    • isSkyInfluenced

      boolean isSkyInfluenced()
      Whether or not wait and lure time will be impacted by direct sky access. True by default, causes a 50% time increase on average.
      Returns:
      skylight access influences catch rate
      Since:
      1.19.4
    • setSkyInfluenced

      void setSkyInfluenced(boolean skyInfluenced)
      Set whether or not wait and lure time will be impacted by direct sky access. True by default, causes a 50% time increase on average.
      Parameters:
      skyInfluenced - if this hook is influenced by skylight access
      Since:
      1.19.4
    • isRainInfluenced

      boolean isRainInfluenced()
      Whether or not wait and lure time will be impacted by rain. True by default, causes a 25% time decrease on average.
      Returns:
      rain influences catch rate
      Since:
      1.19.4
    • setRainInfluenced

      void setRainInfluenced(boolean rainInfluenced)
      Set whether or not wait and lure time will be impacted by rain. True by default, causes a 25% time decrease on average.
      Parameters:
      rainInfluenced - if this hook is influenced by rain
      Since:
      1.19.4
    • getState

      Get the current state of this fish hook.
      Returns:
      the fish hook state
      Since:
      1.16.5
    • getWaitTime

      int getWaitTime()
      Get the number of ticks the hook needs to wait for a fish to bite.
      Returns:
      Number of ticks
      Since:
      1.18.2
    • setWaitTime

      void setWaitTime(int ticks)
      Sets the number of ticks the hook needs to wait for a fish to bite.
      Parameters:
      ticks - Number of ticks
      Since:
      1.18.2
    • getTimeUntilBite

      @Range(from=0L,to=2147483647L) int getTimeUntilBite()
      Get the number of ticks the fish has to swim until biting the hook. The getWaitTime() has to be zero or below for the fish to start the time until bite timer.
      Returns:
      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.
      Since:
      1.20.6
      See Also:
    • setTimeUntilBite

      void setTimeUntilBite(@Range(from=1L,to=2147483647L) int ticks) throws IllegalArgumentException
      Sets the number of ticks the fish has to swim until biting the hook.
      Parameters:
      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.
      Since:
      1.20.6
    • resetFishingState

      void resetFishingState()
      Completely resets this fishing hook's fishing state, re-randomizing the time needed until a fish is lured and bites the hook.

      This method takes all properties of the fishing hook into account when resetting said values, such as a lure enchantment.

      Since:
      1.20.6
    • retrieve

      int retrieve(@NotNull @NotNull EquipmentSlot slot)
      Retrieve this fishhook back to the casting player.

      This method will trigger and respect API events, which may be subject to cancellation. Plugins listening to PlayerFishEvent might for example cancel this action.

      Parameters:
      slot - Slot holding the fishing rod (must be HAND/OFF_HAND)
      Returns:
      The amount of damage which would be applied to the itemstack
      Throws:
      IllegalStateException - if the fish hook does not have a player casting it.
      IllegalStateException - if the player casting it is not holding a ItemType.FISHING_ROD in the specified equipment slot.
      Since:
      1.21.6