46 lines
2.6 KiB
Diff
46 lines
2.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Cryptite <cryptite@gmail.com>
|
|
Date: Thu, 7 Dec 2023 08:48:41 -0600
|
|
Subject: [PATCH] Player spawnsOwnMobs
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
|
index acbcdc8cb1523044b1657e03a141fae6389a3686..000a2c8d30d7d72a460e2fc6205088b81a8bfe3a 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
|
@@ -521,7 +521,7 @@ public class ServerChunkCache extends ChunkSource {
|
|
// Paper start - optimize isOutisdeRange
|
|
ChunkMap playerChunkMap = this.chunkMap;
|
|
for (ServerPlayer player : this.level.players) {
|
|
- if (!player.affectsSpawning || player.isSpectator()) {
|
|
+ if (!player.affectsSpawning || player.isSpectator() || player.spawnsOwnMobs) { // Slice
|
|
playerChunkMap.playerMobSpawnMap.remove(player);
|
|
continue;
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
index 564591e9f18dd6bb0f76ae4f153adcc0a228d4fa..578535732d442b524536bdd76d6a4badeed84fbd 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
@@ -770,7 +770,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
|
// Paper start - optimise checkDespawn
|
|
this.playersAffectingSpawning.clear();
|
|
for (ServerPlayer player : this.players) {
|
|
- if (net.minecraft.world.entity.EntitySelector.PLAYER_AFFECTS_SPAWNING.test(player)) {
|
|
+ if (!player.spawnsOwnMobs && net.minecraft.world.entity.EntitySelector.PLAYER_AFFECTS_SPAWNING.test(player)) { // Slice
|
|
this.playersAffectingSpawning.add(player);
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
|
index 15515e871c89498ec936ab24871741f883f18a3b..16fbdbe12d54fbc8d54403979ee2a89322a14dd2 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
|
@@ -188,6 +188,8 @@ public abstract class Player extends LivingEntity {
|
|
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET;
|
|
// Paper end
|
|
|
|
+ public boolean spawnsOwnMobs = false; // Slice
|
|
+
|
|
// CraftBukkit start
|
|
public boolean fauxSleeping;
|
|
public int oldLevel = -1;
|