aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0585-Configurable-max-leash-distance.patch
blob: 334d10649f057a45e68e16f67ecbc32ef11fb3af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
Date: Sun, 3 Jan 2021 21:04:03 -0800
Subject: [PATCH] Configurable max leash distance


diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 19ae4ae82be4a5a387b0f6e1b18e36b24d0cbbdb..671ca20b02097332ef98d2be2e7aaafeadaf2a2c 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -301,6 +301,12 @@ public class PaperWorldConfig {
         }
     }
 
+    public float maxLeashDistance = 10f;
+    private void maxLeashDistance() {
+        maxLeashDistance = getFloat("max-leash-distance", maxLeashDistance);
+        log("Max leash distance: " + maxLeashDistance);
+    }
+
     public boolean disableEndCredits;
     private void disableEndCredits() {
         disableEndCredits = getBoolean("game-mechanics.disable-end-credits", false);
diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java
index d1ab31d03ae421e628448fe2492ff138dc57c00f..999d18610666ec442bb038da5c452e3cd77e7428 100644
--- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java
+++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java
@@ -48,7 +48,7 @@ public abstract class PathfinderMob extends Mob {
             float f = this.distanceTo(entity);
 
             if (this instanceof TamableAnimal && ((TamableAnimal) this).isInSittingPose()) {
-                if (f > 10.0F) {
+                if (f > entity.level.paperConfig.maxLeashDistance) { // Paper
                     this.level.getCraftServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE)); // CraftBukkit
                     this.dropLeash(true, true);
                 }
@@ -57,7 +57,7 @@ public abstract class PathfinderMob extends Mob {
             }
 
             this.onLeashDistance(f);
-            if (f > 10.0F) {
+            if (f > entity.level.paperConfig.maxLeashDistance) { // Paper
                 this.level.getCraftServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE)); // CraftBukkit
                 this.dropLeash(true, true);
                 this.goalSelector.disableControlFlag(Goal.Flag.MOVE);