papermc/Spigot-Server-Patches/0655-Configurable-max-leash-distance.patch

46 lines
2.4 KiB
Diff
Raw Normal View History

2021-01-04 05:04:46 +00:00
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 89f3a28c20f0e4db4650c435dbcbc923b7bde8aa..4735dcba31b556fafe9c7d7440c89e940755c81f 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -167,6 +167,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/server/EntityCreature.java b/src/main/java/net/minecraft/server/EntityCreature.java
index 4757e5a92c9cf04fa52d62bac6dae782e08ddab1..eaa10d6e3a3c37b83fed58637941273fee9b0be8 100644
--- a/src/main/java/net/minecraft/server/EntityCreature.java
+++ b/src/main/java/net/minecraft/server/EntityCreature.java
@@ -40,7 +40,7 @@ public abstract class EntityCreature extends EntityInsentient {
float f = this.g(entity);
if (this instanceof EntityTameableAnimal && ((EntityTameableAnimal) this).isSitting()) {
- if (f > 10.0F) {
+ if (f > entity.world.paperConfig.maxLeashDistance) { // Paper
this.world.getServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE)); // CraftBukkit
this.unleash(true, true);
}
@@ -49,7 +49,7 @@ public abstract class EntityCreature extends EntityInsentient {
}
this.x(f);
- if (f > 10.0F) {
+ if (f > entity.world.paperConfig.maxLeashDistance) { // Paper
this.world.getServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE)); // CraftBukkit
this.unleash(true, true);
this.goalSelector.a(PathfinderGoal.Type.MOVE);