diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java index 1e432ca0cd..7504bd509a 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java @@ -2,13 +2,17 @@ package org.bukkit.craftbukkit.entity; import net.minecraft.server.EntityFishingHook; import net.minecraft.server.EntityHuman; +import net.minecraft.server.MathHelper; +import org.apache.commons.lang.Validate; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.entity.EntityType; import org.bukkit.entity.Fish; import org.bukkit.entity.LivingEntity; public class CraftFish extends AbstractProjectile implements Fish { + private double biteChance = -1; + public CraftFish(CraftServer server, EntityFishingHook entity) { super(server, entity); } @@ -40,4 +44,21 @@ public class CraftFish extends AbstractProjectile implements Fish { public EntityType getType() { return EntityType.FISHING_HOOK; } + + public double getBiteChance() { + EntityFishingHook hook = getHandle(); + + if (this.biteChance == -1) { + if (hook.world.F(MathHelper.floor(hook.locX), MathHelper.floor(hook.locY) + 1, MathHelper.floor(hook.locZ))) { + return 1/300.0; + } + return 1/500.0; + } + return this.biteChance; + } + + public void setBiteChance(double chance) { + Validate.isTrue(chance >= 0 && chance <= 1, "The bite chance must be between 0 and 1."); + this.biteChance = chance; + } }