From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic 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 2b3e034d6cddbe5c94f2be856833680dd7b3b4f0..9bb6b6c6ac26790eaf5f8efe55f8db7407fc0065 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -342,6 +342,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 3db309e709cd72e3aae184ff2f8b1a7b98f2c7a8..9f2e5cd76376f0f15ed7d93018af2f605eb12e15 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);