mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-01 20:50:41 +01:00
9ff01b16ab
This will be used by my next commit. But trying to get the build going since CI blew up
55 lines
2.8 KiB
Diff
55 lines
2.8 KiB
Diff
From 176621ca524f307f1b7620ef2b54ab3d10cbe7f9 Mon Sep 17 00:00:00 2001
|
|
From: Suddenly <suddenly@suddenly.coffee>
|
|
Date: Tue, 1 Mar 2016 13:51:54 -0600
|
|
Subject: [PATCH] Add configurable despawn distances for living entities
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index 8a63435..f9da7f8 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -111,4 +111,20 @@ public class PaperWorldConfig {
|
|
log("Player exhaustion penalty for breaking blocks is " + blockBreakExhaustion);
|
|
log("Player exhaustion penalty for swimming is " + playerSwimmingExhaustion);
|
|
}
|
|
+
|
|
+ public int softDespawnDistance;
|
|
+ public int hardDespawnDistance;
|
|
+ private void despawnDistances() {
|
|
+ softDespawnDistance = getInt("despawn-ranges.soft", 32); // 32^2 = 1024, Minecraft Default
|
|
+ hardDespawnDistance = getInt("despawn-ranges.hard", 128); // 128^2 = 16384, Minecraft Default
|
|
+
|
|
+ if (softDespawnDistance > hardDespawnDistance) {
|
|
+ softDespawnDistance = hardDespawnDistance;
|
|
+ }
|
|
+
|
|
+ log("Living Entity Despawn Ranges: Soft: " + softDespawnDistance + " Hard: " + hardDespawnDistance);
|
|
+
|
|
+ softDespawnDistance = softDespawnDistance*softDespawnDistance;
|
|
+ hardDespawnDistance = hardDespawnDistance*hardDespawnDistance;
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
index cee3b4a..fdda1ae 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
@@ -601,13 +601,13 @@ public abstract class EntityInsentient extends EntityLiving {
|
|
double d2 = entityhuman.locZ - this.locZ;
|
|
double d3 = d0 * d0 + d1 * d1 + d2 * d2;
|
|
|
|
- if (d3 > 16384.0D) { // CraftBukkit - remove isTypeNotPersistent() check
|
|
+ if (d3 > world.paperConfig.hardDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // Paper - custom despawn distances
|
|
this.die();
|
|
}
|
|
|
|
- if (this.ticksFarFromPlayer > 600 && this.random.nextInt(800) == 0 && d3 > 1024.0D) { // CraftBukkit - remove isTypeNotPersistent() check
|
|
+ if (this.ticksFarFromPlayer > 600 && this.random.nextInt(800) == 0 && d3 > world.paperConfig.softDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // Paper - custom despawn distances
|
|
this.die();
|
|
- } else if (d3 < 1024.0D) {
|
|
+ } else if (d3 < world.paperConfig.softDespawnDistance) { // Paper - custom despawn distances
|
|
this.ticksFarFromPlayer = 0;
|
|
}
|
|
}
|
|
--
|
|
2.7.4
|
|
|