aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorShane Freeder <[email protected]>2020-07-24 21:34:41 +0100
committerShane Freeder <[email protected]>2020-07-24 21:34:41 +0100
commit188df6501e55d366d8e19baa8dc3974f2a1e5521 (patch)
treecf3c5534a42c9ee7f3ae7dfc9bff47c3beb53e5c
parent55e2de5c6e68d61e1ba372079d93ac9c0a722f43 (diff)
downloadPaper-188df6501e55d366d8e19baa8dc3974f2a1e5521.tar.gz
Paper-188df6501e55d366d8e19baa8dc3974f2a1e5521.zip
Don't make per-player scale mob counts with the spawn range
https://github.com/PaperMC/Paper/pull/3971#issuecomment-663316000
-rw-r--r--Spigot-Server-Patches/0383-implement-optional-per-player-mob-spawns.patch21
1 files changed, 9 insertions, 12 deletions
diff --git a/Spigot-Server-Patches/0383-implement-optional-per-player-mob-spawns.patch b/Spigot-Server-Patches/0383-implement-optional-per-player-mob-spawns.patch
index df68198ea5..61cc8afb20 100644
--- a/Spigot-Server-Patches/0383-implement-optional-per-player-mob-spawns.patch
+++ b/Spigot-Server-Patches/0383-implement-optional-per-player-mob-spawns.patch
@@ -656,7 +656,7 @@ index cacf60563826da0219754a67500fdc239b13f0cd..f06c41d06f853b625dbd46822126810d
private static double a(ChunkCoordIntPair chunkcoordintpair, Entity entity) {
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
-index 8130e14b5d6c3e8b0a1234668d5c855e82f3a5dc..b255ccb4501d85f1507b105d2793c7fb6a919f62 100644
+index 8130e14b5d6c3e8b0a1234668d5c855e82f3a5dc..0a25523f3ca5df483b7916364fa9fb51a9d2b649 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -29,6 +29,11 @@ public final class SpawnerCreature {
@@ -683,7 +683,7 @@ index 8130e14b5d6c3e8b0a1234668d5c855e82f3a5dc..b255ccb4501d85f1507b105d2793c7fb
});
}
}
-@@ -125,13 +135,36 @@ public final class SpawnerCreature {
+@@ -125,13 +135,33 @@ public final class SpawnerCreature {
continue;
}
@@ -696,10 +696,7 @@ index 8130e14b5d6c3e8b0a1234668d5c855e82f3a5dc..b255ccb4501d85f1507b105d2793c7fb
+ if (worldserver.paperConfig.perPlayerMobSpawns) {
+ int minDiff = Integer.MAX_VALUE;
+ for (EntityPlayer entityplayer : worldserver.getChunkProvider().playerChunkMap.playerMobDistanceMap.getPlayersInRange(chunk.getPos())) {
-+ int chunkRange = entityplayer.playerNaturallySpawnedEvent.getSpawnRadius();
-+ double rangeScale = (double)((chunkRange * 2 + 1) * (chunkRange * 2 + 1)) / SpawnerCreature.b;
-+ int scaledLimit = (int)Math.round(rangeScale * limit);
-+ minDiff = Math.min(scaledLimit - worldserver.getChunkProvider().playerChunkMap.getMobCountNear(entityplayer, enumcreaturetype), minDiff);
++ minDiff = Math.min(limit - worldserver.getChunkProvider().playerChunkMap.getMobCountNear(entityplayer, enumcreaturetype), minDiff);
+ }
+ difference = (minDiff == Integer.MAX_VALUE) ? 0 : minDiff;
+ }
@@ -722,7 +719,7 @@ index 8130e14b5d6c3e8b0a1234668d5c855e82f3a5dc..b255ccb4501d85f1507b105d2793c7fb
}
}
-@@ -140,22 +173,34 @@ public final class SpawnerCreature {
+@@ -140,22 +170,34 @@ public final class SpawnerCreature {
}
public static void a(EnumCreatureType enumcreaturetype, WorldServer worldserver, Chunk chunk, SpawnerCreature.c spawnercreature_c, SpawnerCreature.a spawnercreature_a) {
@@ -759,7 +756,7 @@ index 8130e14b5d6c3e8b0a1234668d5c855e82f3a5dc..b255ccb4501d85f1507b105d2793c7fb
int k = 0;
while (k < 3) {
-@@ -195,13 +240,13 @@ public final class SpawnerCreature {
+@@ -195,13 +237,13 @@ public final class SpawnerCreature {
// Paper start
Boolean doSpawning = a(worldserver, enumcreaturetype, structuremanager, chunkgenerator, biomebase_biomemeta, blockposition_mutableblockposition, d2);
if (doSpawning == null) {
@@ -775,7 +772,7 @@ index 8130e14b5d6c3e8b0a1234668d5c855e82f3a5dc..b255ccb4501d85f1507b105d2793c7fb
}
entityinsentient.setPositionRotation(d0, (double) i, d1, worldserver.random.nextFloat() * 360.0F, 0.0F);
-@@ -209,13 +254,18 @@ public final class SpawnerCreature {
+@@ -209,13 +251,18 @@ public final class SpawnerCreature {
groupdataentity = entityinsentient.prepare(worldserver, worldserver.getDamageScaler(entityinsentient.getChunkCoordinates()), EnumMobSpawn.NATURAL, groupdataentity, (NBTTagCompound) null);
// CraftBukkit start
if (worldserver.addEntity(entityinsentient, SpawnReason.NATURAL)) {
@@ -797,7 +794,7 @@ index 8130e14b5d6c3e8b0a1234668d5c855e82f3a5dc..b255ccb4501d85f1507b105d2793c7fb
}
if (entityinsentient.c(k1)) {
-@@ -237,6 +287,7 @@ public final class SpawnerCreature {
+@@ -237,6 +284,7 @@ public final class SpawnerCreature {
}
}
@@ -805,7 +802,7 @@ index 8130e14b5d6c3e8b0a1234668d5c855e82f3a5dc..b255ccb4501d85f1507b105d2793c7fb
}
private static boolean a(WorldServer worldserver, IChunkAccess ichunkaccess, BlockPosition.MutableBlockPosition blockposition_mutableblockposition, double d0) {
-@@ -476,8 +527,8 @@ public final class SpawnerCreature {
+@@ -476,8 +524,8 @@ public final class SpawnerCreature {
public static class d {
@@ -816,7 +813,7 @@ index 8130e14b5d6c3e8b0a1234668d5c855e82f3a5dc..b255ccb4501d85f1507b105d2793c7fb
private final SpawnerCreatureProbabilities c;
private final Object2IntMap<EnumCreatureType> d;
@Nullable
-@@ -540,7 +591,7 @@ public final class SpawnerCreature {
+@@ -540,7 +588,7 @@ public final class SpawnerCreature {
// CraftBukkit start
private boolean a(EnumCreatureType enumcreaturetype, int limit) {