From 2afe3ea7a4250da4d96188478296fa730ce63a9b Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 1 Mar 2016 13:14:11 -0600
Subject: [PATCH] Configurable fishing time ranges


diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 912611cf1..7d9976ce6 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -84,4 +84,12 @@ public class PaperWorldConfig {
 
         log("Baby zombies will move at the speed of " + babyZombieMovementModifier);
     }
+
+    public int fishingMinTicks;
+    public int fishingMaxTicks;
+    private void fishingTickRange() {
+        fishingMinTicks = getInt("fishing-time-range.MinimumTicks", 100);
+        fishingMaxTicks = getInt("fishing-time-range.MaximumTicks", 600);
+        log("Fishing time ranges are between " + fishingMinTicks +" and " + fishingMaxTicks + " ticks");
+    }
 }
diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
index c899a99eb..b10de807e 100644
--- a/src/main/java/net/minecraft/server/EntityFishingHook.java
+++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
@@ -326,8 +326,9 @@ public class EntityFishingHook extends Entity {
                     this.aq = MathHelper.nextInt(this.random, 20, 80);
                 }
             } else {
-                this.ap = MathHelper.nextInt(this.random, 100, 600);
+                this.ap = MathHelper.nextInt(this.random, world.paperConfig.fishingMinTicks, world.paperConfig.fishingMaxTicks); // Paper
                 this.ap -= this.au * 20 * 5;
+                this.ap = Math.max(0, this.ap); // Paper - Don't allow negative values
             }
         }
 
-- 
2.24.0