<3 jmp
This commit is contained in:
parent
c5db5371bf
commit
f371b4e374
|
@ -86,7 +86,7 @@ index 9e1db210ded0830d0dcfaa34936e66bbf51fc1fc..5918a319d34f8f30cce2f458dd061d83
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
||||||
index 4e9e0ef895c29cfc1e925c0c3ffead23c4e4dc0a..b56d1229333bb86433d6691f1116f2d195c4b16b 100644
|
index 85fc33183ff01611bfa90ddd33a9c885d1dd7172..3364316079dba81778869380b70e621cb9ac6269 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
||||||
@@ -54,6 +54,7 @@ public class ItemEntity extends Entity {
|
@@ -54,6 +54,7 @@ public class ItemEntity extends Entity {
|
||||||
|
@ -97,7 +97,7 @@ index 4e9e0ef895c29cfc1e925c0c3ffead23c4e4dc0a..b56d1229333bb86433d6691f1116f2d1
|
||||||
|
|
||||||
public ItemEntity(EntityType<? extends ItemEntity> type, Level world) {
|
public ItemEntity(EntityType<? extends ItemEntity> type, Level world) {
|
||||||
super(type, world);
|
super(type, world);
|
||||||
@@ -174,7 +175,7 @@ public class ItemEntity extends Entity {
|
@@ -184,7 +185,7 @@ public class ItemEntity extends Entity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ index 4e9e0ef895c29cfc1e925c0c3ffead23c4e4dc0a..b56d1229333bb86433d6691f1116f2d1
|
||||||
// CraftBukkit start - fire ItemDespawnEvent
|
// CraftBukkit start - fire ItemDespawnEvent
|
||||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.callItemDespawnEvent(this).isCancelled()) {
|
if (org.bukkit.craftbukkit.event.CraftEventFactory.callItemDespawnEvent(this).isCancelled()) {
|
||||||
this.age = 0;
|
this.age = 0;
|
||||||
@@ -198,7 +199,7 @@ public class ItemEntity extends Entity {
|
@@ -208,7 +209,7 @@ public class ItemEntity extends Entity {
|
||||||
this.lastTick = MinecraftServer.currentTick;
|
this.lastTick = MinecraftServer.currentTick;
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ index 4e9e0ef895c29cfc1e925c0c3ffead23c4e4dc0a..b56d1229333bb86433d6691f1116f2d1
|
||||||
// CraftBukkit start - fire ItemDespawnEvent
|
// CraftBukkit start - fire ItemDespawnEvent
|
||||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.callItemDespawnEvent(this).isCancelled()) {
|
if (org.bukkit.craftbukkit.event.CraftEventFactory.callItemDespawnEvent(this).isCancelled()) {
|
||||||
this.age = 0;
|
this.age = 0;
|
||||||
@@ -253,7 +254,7 @@ public class ItemEntity extends Entity {
|
@@ -263,7 +264,7 @@ public class ItemEntity extends Entity {
|
||||||
private boolean isMergable() {
|
private boolean isMergable() {
|
||||||
ItemStack itemstack = this.getItem();
|
ItemStack itemstack = this.getItem();
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ index 4e9e0ef895c29cfc1e925c0c3ffead23c4e4dc0a..b56d1229333bb86433d6691f1116f2d1
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tryToMerge(ItemEntity other) {
|
private void tryToMerge(ItemEntity other) {
|
||||||
@@ -497,6 +498,8 @@ public class ItemEntity extends Entity {
|
@@ -507,6 +508,8 @@ public class ItemEntity extends Entity {
|
||||||
com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit
|
com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit
|
||||||
this.getEntityData().set(ItemEntity.DATA_ITEM, stack);
|
this.getEntityData().set(ItemEntity.DATA_ITEM, stack);
|
||||||
this.getEntityData().markDirty(ItemEntity.DATA_ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty
|
this.getEntityData().markDirty(ItemEntity.DATA_ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty
|
||||||
|
@ -133,7 +133,7 @@ index 4e9e0ef895c29cfc1e925c0c3ffead23c4e4dc0a..b56d1229333bb86433d6691f1116f2d1
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -560,7 +563,7 @@ public class ItemEntity extends Entity {
|
@@ -570,7 +573,7 @@ public class ItemEntity extends Entity {
|
||||||
|
|
||||||
public void makeFakeItem() {
|
public void makeFakeItem() {
|
||||||
this.setNeverPickUp();
|
this.setNeverPickUp();
|
|
@ -8,10 +8,10 @@ Sets tracking range of watermobs to animals instead of misc and simplifies code
|
||||||
Also ignores Enderdragon, defaulting it to Mojang's setting
|
Also ignores Enderdragon, defaulting it to Mojang's setting
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
index 0fad7ad13be138cbc7c4b09f457adbde570cf6fa..f1bf847a498023ce8729315c6ec68f1d16cab822 100644
|
index 4ff1c09b4db2edbcf39c13a1942dd95bd566173d..6d5bb19888a2a0dc130eff3d7bc09811351dd75e 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
@@ -1867,6 +1867,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -1910,6 +1910,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
Entity entity = (Entity) iterator.next();
|
Entity entity = (Entity) iterator.next();
|
||||||
int j = entity.getType().clientTrackingRange() * 16;
|
int j = entity.getType().clientTrackingRange() * 16;
|
|
@ -13,10 +13,10 @@ Quickly loading the exact world spawn chunk before searching the
|
||||||
heightmap resolves the issue without having to load all spawn chunks.
|
heightmap resolves the issue without having to load all spawn chunks.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 339031b16c856d29509916e6178151cc0f790dde..55bfca9606770ac8eb0c15ed83c5d3c605c22871 100644
|
index dff627579f775dbe0a6323ffa60d9a65299b121a..a0a5c5b4e5a684f5ead6ad021966723c11d49547 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -3025,6 +3025,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -3072,6 +3072,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
if (flag1) {
|
if (flag1) {
|
||||||
blockposition1 = ServerLevel.END_SPAWN_POINT;
|
blockposition1 = ServerLevel.END_SPAWN_POINT;
|
||||||
} else {
|
} else {
|
|
@ -269,10 +269,10 @@ index 0000000000000000000000000000000000000000..11de56afaf059b00fa5bec293516bcdc
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
index f1bf847a498023ce8729315c6ec68f1d16cab822..a0ffdeaad5c375539857d6a5a94832216d09f024 100644
|
index 6d5bb19888a2a0dc130eff3d7bc09811351dd75e..5cf6f6f67520af8d94456a028828e49446e82be9 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
@@ -155,6 +155,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -159,6 +159,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
private final Long2LongMap chunkSaveCooldowns;
|
private final Long2LongMap chunkSaveCooldowns;
|
||||||
private final Queue<Runnable> unloadQueue;
|
private final Queue<Runnable> unloadQueue;
|
||||||
int viewDistance;
|
int viewDistance;
|
||||||
|
@ -280,7 +280,7 @@ index f1bf847a498023ce8729315c6ec68f1d16cab822..a0ffdeaad5c375539857d6a5a9483221
|
||||||
|
|
||||||
// CraftBukkit start - recursion-safe executor for Chunk loadCallback() and unloadCallback()
|
// CraftBukkit start - recursion-safe executor for Chunk loadCallback() and unloadCallback()
|
||||||
public final CallbackExecutor callbackExecutor = new CallbackExecutor();
|
public final CallbackExecutor callbackExecutor = new CallbackExecutor();
|
||||||
@@ -184,16 +185,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -188,16 +189,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
int chunkX = MCUtil.getChunkCoordinate(player.getX());
|
int chunkX = MCUtil.getChunkCoordinate(player.getX());
|
||||||
int chunkZ = MCUtil.getChunkCoordinate(player.getZ());
|
int chunkZ = MCUtil.getChunkCoordinate(player.getZ());
|
||||||
// Note: players need to be explicitly added to distance maps before they can be updated
|
// Note: players need to be explicitly added to distance maps before they can be updated
|
||||||
|
@ -312,7 +312,7 @@ index f1bf847a498023ce8729315c6ec68f1d16cab822..a0ffdeaad5c375539857d6a5a9483221
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
// Paper start
|
// Paper start
|
||||||
@@ -268,6 +284,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -280,6 +296,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
this.dataRegionManager = new io.papermc.paper.chunk.SingleThreadChunkRegionManager(this.level, 2, (1.0 / 3.0), 1, 6, "Data", DataRegionData::new, DataRegionSectionData::new);
|
this.dataRegionManager = new io.papermc.paper.chunk.SingleThreadChunkRegionManager(this.level, 2, (1.0 / 3.0), 1, 6, "Data", DataRegionData::new, DataRegionSectionData::new);
|
||||||
this.regionManagers.add(this.dataRegionManager);
|
this.regionManagers.add(this.dataRegionManager);
|
||||||
// Paper end
|
// Paper end
|
||||||
|
@ -320,7 +320,7 @@ index f1bf847a498023ce8729315c6ec68f1d16cab822..a0ffdeaad5c375539857d6a5a9483221
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ChunkGenerator generator() {
|
protected ChunkGenerator generator() {
|
||||||
@@ -285,6 +302,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -301,6 +318,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,10 +370,10 @@ index 1e066a35b53b1f71a0e6376a22d51fc4c0a412dc..6228f2f67541da62b0ae093de987662d
|
||||||
this.naturalSpawnChunkCounter.runAllUpdates();
|
this.naturalSpawnChunkCounter.runAllUpdates();
|
||||||
return this.naturalSpawnChunkCounter.chunks.size();
|
return this.naturalSpawnChunkCounter.chunks.size();
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
index 98f3b91605ecf81538659220354f78d4de9d203e..39b4ddbb87e6ec2e8103445625ff0d7d368bd513 100644
|
index 7784dae8016d6ca5fbbf887316100d270710294b..75381eceabd706b5343884dd168dc14801923685 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
@@ -907,7 +907,18 @@ public class ServerChunkCache extends ChunkSource {
|
@@ -908,7 +908,18 @@ public class ServerChunkCache extends ChunkSource {
|
||||||
gameprofilerfiller.push("naturalSpawnCount");
|
gameprofilerfiller.push("naturalSpawnCount");
|
||||||
this.level.timings.countNaturalMobs.startTiming(); // Paper - timings
|
this.level.timings.countNaturalMobs.startTiming(); // Paper - timings
|
||||||
int l = this.distanceManager.getNaturalSpawnChunkCount();
|
int l = this.distanceManager.getNaturalSpawnChunkCount();
|
||||||
|
@ -394,10 +394,10 @@ index 98f3b91605ecf81538659220354f78d4de9d203e..39b4ddbb87e6ec2e8103445625ff0d7d
|
||||||
|
|
||||||
this.lastSpawnState = spawnercreature_d;
|
this.lastSpawnState = spawnercreature_d;
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 41392a92af27b85e213eed3ac0fff281bb5c32b3..ba8f8b222e8951e0eea8642ecbb843fbf5146f5d 100644
|
index b19ca7f62e78035ed5f52e1eb1a76066af97de80..5c5a42f59908b1f7a737d97c2470037a3d4361a8 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -226,6 +226,11 @@ public class ServerPlayer extends Player {
|
@@ -233,6 +233,11 @@ public class ServerPlayer extends Player {
|
||||||
public boolean queueHealthUpdatePacket = false;
|
public boolean queueHealthUpdatePacket = false;
|
||||||
public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket;
|
public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket;
|
||||||
// Paper end
|
// Paper end
|
||||||
|
@ -409,7 +409,7 @@ index 41392a92af27b85e213eed3ac0fff281bb5c32b3..ba8f8b222e8951e0eea8642ecbb843fb
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
public String displayName;
|
public String displayName;
|
||||||
@@ -316,6 +321,7 @@ public class ServerPlayer extends Player {
|
@@ -323,6 +328,7 @@ public class ServerPlayer extends Player {
|
||||||
this.adventure$displayName = net.kyori.adventure.text.Component.text(this.getScoreboardName()); // Paper
|
this.adventure$displayName = net.kyori.adventure.text.Component.text(this.getScoreboardName()); // Paper
|
||||||
this.bukkitPickUpLoot = true;
|
this.bukkitPickUpLoot = true;
|
||||||
this.maxHealthCache = this.getMaxHealth();
|
this.maxHealthCache = this.getMaxHealth();
|
||||||
|
@ -418,15 +418,14 @@ index 41392a92af27b85e213eed3ac0fff281bb5c32b3..ba8f8b222e8951e0eea8642ecbb843fb
|
||||||
|
|
||||||
// Yes, this doesn't match Vanilla, but it's the best we can do for now.
|
// Yes, this doesn't match Vanilla, but it's the best we can do for now.
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||||
index 6282d5899fe0b78ecbb6236db178c8231f7cd521..ce6051531f021bf20851bc5ab763e732ee10427d 100644
|
index fedc36ceebaf3e1d267431bdf7db81e25f4d6fd7..611dbcebd54604da5bd3e6ed510032db2a70401d 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||||
@@ -67,7 +67,13 @@ public final class NaturalSpawner {
|
@@ -69,6 +69,12 @@ public final class NaturalSpawner {
|
||||||
|
|
||||||
private NaturalSpawner() {}
|
private NaturalSpawner() {}
|
||||||
|
|
||||||
+ // Paper start - add countMobs parameter
|
|
||||||
public static NaturalSpawner.SpawnState createState(int spawningChunkCount, Iterable<Entity> entities, NaturalSpawner.ChunkGetter chunkSource, LocalMobCapCalculator localmobcapcalculator) {
|
public static NaturalSpawner.SpawnState createState(int spawningChunkCount, Iterable<Entity> entities, NaturalSpawner.ChunkGetter chunkSource, LocalMobCapCalculator localmobcapcalculator) {
|
||||||
|
+ // Paper start - add countMobs parameter
|
||||||
+ return createState(spawningChunkCount, entities, chunkSource, localmobcapcalculator, false);
|
+ return createState(spawningChunkCount, entities, chunkSource, localmobcapcalculator, false);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
@ -435,7 +434,7 @@ index 6282d5899fe0b78ecbb6236db178c8231f7cd521..ce6051531f021bf20851bc5ab763e732
|
||||||
PotentialCalculator spawnercreatureprobabilities = new PotentialCalculator();
|
PotentialCalculator spawnercreatureprobabilities = new PotentialCalculator();
|
||||||
Object2IntOpenHashMap<MobCategory> object2intopenhashmap = new Object2IntOpenHashMap();
|
Object2IntOpenHashMap<MobCategory> object2intopenhashmap = new Object2IntOpenHashMap();
|
||||||
Iterator iterator = entities.iterator();
|
Iterator iterator = entities.iterator();
|
||||||
@@ -102,11 +108,16 @@ public final class NaturalSpawner {
|
@@ -103,11 +109,16 @@ public final class NaturalSpawner {
|
||||||
spawnercreatureprobabilities.addCharge(entity.blockPosition(), biomesettingsmobs_b.getCharge());
|
spawnercreatureprobabilities.addCharge(entity.blockPosition(), biomesettingsmobs_b.getCharge());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -453,7 +452,7 @@ index 6282d5899fe0b78ecbb6236db178c8231f7cd521..ce6051531f021bf20851bc5ab763e732
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -141,13 +152,37 @@ public final class NaturalSpawner {
|
@@ -142,13 +153,37 @@ public final class NaturalSpawner {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -493,12 +492,11 @@ index 6282d5899fe0b78ecbb6236db178c8231f7cd521..ce6051531f021bf20851bc5ab763e732
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,12 +190,18 @@ public final class NaturalSpawner {
|
@@ -157,11 +192,17 @@ public final class NaturalSpawner {
|
||||||
world.getProfiler().pop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
+ // Paper start - add parameters and int ret type
|
|
||||||
public static void spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner) {
|
public static void spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner) {
|
||||||
|
+ // Paper start - add parameters and int ret type
|
||||||
+ spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null);
|
+ spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null);
|
||||||
+ }
|
+ }
|
||||||
+ public static int spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner, int maxSpawns, Consumer<Entity> trackEntity) {
|
+ public static int spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner, int maxSpawns, Consumer<Entity> trackEntity) {
|
||||||
|
@ -513,7 +511,7 @@ index 6282d5899fe0b78ecbb6236db178c8231f7cd521..ce6051531f021bf20851bc5ab763e732
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForDebug
|
@VisibleForDebug
|
||||||
@@ -171,15 +212,21 @@ public final class NaturalSpawner {
|
@@ -172,15 +213,21 @@ public final class NaturalSpawner {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -523,7 +521,7 @@ index 6282d5899fe0b78ecbb6236db178c8231f7cd521..ce6051531f021bf20851bc5ab763e732
|
||||||
+ }
|
+ }
|
||||||
+ public static int spawnCategoryForPosition(MobCategory group, ServerLevel world, ChunkAccess chunk, BlockPos pos, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner, int maxSpawns, Consumer<Entity> trackEntity) {
|
+ public static int spawnCategoryForPosition(MobCategory group, ServerLevel world, ChunkAccess chunk, BlockPos pos, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner, int maxSpawns, Consumer<Entity> trackEntity) {
|
||||||
+ // Paper end - add maxSpawns parameter and return spawned mobs
|
+ // Paper end - add maxSpawns parameter and return spawned mobs
|
||||||
StructureFeatureManager structuremanager = world.structureFeatureManager();
|
StructureManager structuremanager = world.structureManager();
|
||||||
ChunkGenerator chunkgenerator = world.getChunkSource().getGenerator();
|
ChunkGenerator chunkgenerator = world.getChunkSource().getGenerator();
|
||||||
int i = pos.getY();
|
int i = pos.getY();
|
||||||
BlockState iblockdata = world.getBlockStateIfLoadedAndInBounds(pos); // Paper - don't load chunks for mob spawn
|
BlockState iblockdata = world.getBlockStateIfLoadedAndInBounds(pos); // Paper - don't load chunks for mob spawn
|
||||||
|
@ -536,7 +534,7 @@ index 6282d5899fe0b78ecbb6236db178c8231f7cd521..ce6051531f021bf20851bc5ab763e732
|
||||||
int k = 0;
|
int k = 0;
|
||||||
|
|
||||||
while (k < 3) {
|
while (k < 3) {
|
||||||
@@ -221,14 +268,14 @@ public final class NaturalSpawner {
|
@@ -222,14 +269,14 @@ public final class NaturalSpawner {
|
||||||
// Paper start
|
// Paper start
|
||||||
Boolean doSpawning = isValidSpawnPostitionForType(world, group, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2);
|
Boolean doSpawning = isValidSpawnPostitionForType(world, group, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2);
|
||||||
if (doSpawning == null) {
|
if (doSpawning == null) {
|
||||||
|
@ -553,7 +551,7 @@ index 6282d5899fe0b78ecbb6236db178c8231f7cd521..ce6051531f021bf20851bc5ab763e732
|
||||||
}
|
}
|
||||||
|
|
||||||
entityinsentient.moveTo(d0, (double) i, d1, world.random.nextFloat() * 360.0F, 0.0F);
|
entityinsentient.moveTo(d0, (double) i, d1, world.random.nextFloat() * 360.0F, 0.0F);
|
||||||
@@ -240,10 +287,15 @@ public final class NaturalSpawner {
|
@@ -241,10 +288,15 @@ public final class NaturalSpawner {
|
||||||
++j;
|
++j;
|
||||||
++k1;
|
++k1;
|
||||||
runner.run(entityinsentient, chunk);
|
runner.run(entityinsentient, chunk);
|
||||||
|
@ -571,7 +569,7 @@ index 6282d5899fe0b78ecbb6236db178c8231f7cd521..ce6051531f021bf20851bc5ab763e732
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entityinsentient.isMaxGroupSizeReached(k1)) {
|
if (entityinsentient.isMaxGroupSizeReached(k1)) {
|
||||||
@@ -265,6 +317,7 @@ public final class NaturalSpawner {
|
@@ -266,6 +318,7 @@ public final class NaturalSpawner {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -579,7 +577,7 @@ index 6282d5899fe0b78ecbb6236db178c8231f7cd521..ce6051531f021bf20851bc5ab763e732
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isRightDistanceToPlayerAndSpawnPoint(ServerLevel world, ChunkAccess chunk, BlockPos.MutableBlockPos pos, double squaredDistance) {
|
private static boolean isRightDistanceToPlayerAndSpawnPoint(ServerLevel world, ChunkAccess chunk, BlockPos.MutableBlockPos pos, double squaredDistance) {
|
||||||
@@ -550,7 +603,7 @@ public final class NaturalSpawner {
|
@@ -551,7 +604,7 @@ public final class NaturalSpawner {
|
||||||
MobCategory enumcreaturetype = entitytypes.getCategory();
|
MobCategory enumcreaturetype = entitytypes.getCategory();
|
||||||
|
|
||||||
this.mobCategoryCounts.addTo(enumcreaturetype, 1);
|
this.mobCategoryCounts.addTo(enumcreaturetype, 1);
|
||||||
|
@ -588,7 +586,7 @@ index 6282d5899fe0b78ecbb6236db178c8231f7cd521..ce6051531f021bf20851bc5ab763e732
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSpawnableChunkCount() {
|
public int getSpawnableChunkCount() {
|
||||||
@@ -566,6 +619,7 @@ public final class NaturalSpawner {
|
@@ -567,6 +620,7 @@ public final class NaturalSpawner {
|
||||||
int i = limit * this.spawnableChunkCount / NaturalSpawner.MAGIC_NUMBER;
|
int i = limit * this.spawnableChunkCount / NaturalSpawner.MAGIC_NUMBER;
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|
|
@ -14,10 +14,10 @@ And since minecart hoppers are used _very_ rarely near we can avoid alot of sear
|
||||||
Combined, this adds up a lot.
|
Combined, this adds up a lot.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index bfbd1922d77602628e57326b3251459f45b1aed9..334fd625829c8e5e9c434b184f6d0084b2d6ccc8 100644
|
index b56fe14e7b7de95876ba2b1d084856d6935e591c..c4e679eca56ca756d2d7a9d2ffa2a56e5ab3f721 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -986,7 +986,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -990,7 +990,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,10 +67,10 @@ index 524f3c42964eb83c9109bcc548a1075f1e295411..e9aee7d11798c3bd990466f101e9e342
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/entity/EntitySectionStorage.java b/src/main/java/net/minecraft/world/level/entity/EntitySectionStorage.java
|
diff --git a/src/main/java/net/minecraft/world/level/entity/EntitySectionStorage.java b/src/main/java/net/minecraft/world/level/entity/EntitySectionStorage.java
|
||||||
index 078be552dce5c02f699bad83816c3154cef2b1ec..2e873762530e8f50158886436bd76b35d91953af 100644
|
index 4c1e7c219e1ca153be4423347bd239ebaec4a31d..f54ca6383298848b2ee7108c41fcea593f924881 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/entity/EntitySectionStorage.java
|
--- a/src/main/java/net/minecraft/world/level/entity/EntitySectionStorage.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/entity/EntitySectionStorage.java
|
+++ b/src/main/java/net/minecraft/world/level/entity/EntitySectionStorage.java
|
||||||
@@ -111,13 +111,20 @@ public class EntitySectionStorage<T extends EntityAccess> {
|
@@ -112,13 +112,20 @@ public class EntitySectionStorage<T extends EntityAccess> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getEntities(AABB box, Consumer<T> action) {
|
public void getEntities(AABB box, Consumer<T> action) {
|
|
@ -5,10 +5,10 @@ Subject: [PATCH] Bees get gravity in void. Fixes MC-167279
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||||
index 6ea223224e984058f0c6d3443ce49a3a46688434..8e857d4ff6497d68e462418d75b8378ff7adbc97 100644
|
index bdc9911f5a72d2f23a3a01d0420ac9ba6cb78570..d94f045d7fe928c256c5d3e1af02ac73d7897f5a 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||||
@@ -142,7 +142,22 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
@@ -143,7 +143,22 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||||
public Bee(EntityType<? extends Bee> type, Level world) {
|
public Bee(EntityType<? extends Bee> type, Level world) {
|
||||||
super(type, world);
|
super(type, world);
|
||||||
this.remainingCooldownBeforeLocatingNewFlower = Mth.nextInt(this.random, 20, 60);
|
this.remainingCooldownBeforeLocatingNewFlower = Mth.nextInt(this.random, 20, 60);
|
|
@ -7,10 +7,10 @@ bypass the need to get a player chunk, then get the either,
|
||||||
then unwrap it...
|
then unwrap it...
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
index 39b4ddbb87e6ec2e8103445625ff0d7d368bd513..dec6aab50cebdfe1d0c93d71a8579b78b0ef7b9d 100644
|
index 75381eceabd706b5343884dd168dc14801923685..0344d10a7e70109c6d5162c3ddab6dfd6d0b4571 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
@@ -600,6 +600,12 @@ public class ServerChunkCache extends ChunkSource {
|
@@ -601,6 +601,12 @@ public class ServerChunkCache extends ChunkSource {
|
||||||
return this.getChunk(x, z, leastStatus, create);
|
return this.getChunk(x, z, leastStatus, create);
|
||||||
}, this.mainThreadProcessor).join();
|
}, this.mainThreadProcessor).join();
|
||||||
} else {
|
} else {
|
||||||
|
@ -23,7 +23,7 @@ index 39b4ddbb87e6ec2e8103445625ff0d7d368bd513..dec6aab50cebdfe1d0c93d71a8579b78
|
||||||
ProfilerFiller gameprofilerfiller = this.level.getProfiler();
|
ProfilerFiller gameprofilerfiller = this.level.getProfiler();
|
||||||
|
|
||||||
gameprofilerfiller.incrementCounter("getChunk");
|
gameprofilerfiller.incrementCounter("getChunk");
|
||||||
@@ -651,39 +657,7 @@ public class ServerChunkCache extends ChunkSource {
|
@@ -652,39 +658,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||||
if (Thread.currentThread() != this.mainThread) {
|
if (Thread.currentThread() != this.mainThread) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
|
@ -312,10 +312,10 @@ index 0000000000000000000000000000000000000000..0bb4aaa546939b67a5d22865190f3047
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
index dec6aab50cebdfe1d0c93d71a8579b78b0ef7b9d..8f1609bbb5670d3b4acccb2cb4b9238ce13290bb 100644
|
index 0344d10a7e70109c6d5162c3ddab6dfd6d0b4571..4581a95a792e8eb157c8577547cb6f76a8e8f883 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
@@ -632,6 +632,7 @@ public class ServerChunkCache extends ChunkSource {
|
@@ -633,6 +633,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||||
this.level.asyncChunkTaskManager.raisePriority(x1, z1, com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGHEST_PRIORITY);
|
this.level.asyncChunkTaskManager.raisePriority(x1, z1, com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGHEST_PRIORITY);
|
||||||
com.destroystokyo.paper.io.chunk.ChunkTaskManager.pushChunkWait(this.level, x1, z1);
|
com.destroystokyo.paper.io.chunk.ChunkTaskManager.pushChunkWait(this.level, x1, z1);
|
||||||
// Paper end
|
// Paper end
|
||||||
|
@ -324,10 +324,10 @@ index dec6aab50cebdfe1d0c93d71a8579b78b0ef7b9d..8f1609bbb5670d3b4acccb2cb4b9238c
|
||||||
chunkproviderserver_b.managedBlock(completablefuture::isDone);
|
chunkproviderserver_b.managedBlock(completablefuture::isDone);
|
||||||
com.destroystokyo.paper.io.chunk.ChunkTaskManager.popChunkWait(); // Paper - async chunk debug
|
com.destroystokyo.paper.io.chunk.ChunkTaskManager.popChunkWait(); // Paper - async chunk debug
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
index 9e779490dfea57112ce088fd398892052b4d9d73..0a7dbafd938141b34dc66d0b4af26dba92a21c06 100644
|
index 989f0da37f20c7989183986ffa14e9fe12c7af7f..6bded610f82189a5549e656881dbce0d34f285b2 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -383,6 +383,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
@@ -388,6 +388,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||||
};
|
};
|
||||||
public final com.destroystokyo.paper.io.chunk.ChunkTaskManager asyncChunkTaskManager;
|
public final com.destroystokyo.paper.io.chunk.ChunkTaskManager asyncChunkTaskManager;
|
||||||
// Paper end
|
// Paper end
|
|
@ -5,7 +5,7 @@ Subject: [PATCH] Remove garbage Java version check
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
index ee9f7f42a0eeb3c6f9930e227eeda26ba362e7f4..69b7a11d423b1cd8560cd726dd2b9a2b203e7dfd 100644
|
index 96c18080e663c055508e0798edb545dcecebc804..fea479165e4cf1e4fc6e462d63123bf31bb4e3c3 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
@@ -189,10 +189,6 @@ public class Main {
|
@@ -189,10 +189,6 @@ public class Main {
|
|
@ -5,10 +5,10 @@ Subject: [PATCH] Entity Jump API
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
index 1ebd099af4abd40e848787ac96a53aa7287f469b..b28689f2621ee7d5129ab6d1853d9ee8823bf1d0 100644
|
index 5330ce940918cc858cbce74665f1c928249bb957..70670065642766501918dfca21fdb3ea78a90a31 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -3183,8 +3183,10 @@ public abstract class LivingEntity extends Entity {
|
@@ -3215,8 +3215,10 @@ public abstract class LivingEntity extends Entity {
|
||||||
} else if (this.isInLava() && (!this.onGround || d7 > d8)) {
|
} else if (this.isInLava() && (!this.onGround || d7 > d8)) {
|
||||||
this.jumpInLiquid(FluidTags.LAVA);
|
this.jumpInLiquid(FluidTags.LAVA);
|
||||||
} else if ((this.onGround || flag && d7 <= d8) && this.noJumpDelay == 0) {
|
} else if ((this.onGround || flag && d7 <= d8) && this.noJumpDelay == 0) {
|
||||||
|
@ -20,7 +20,7 @@ index 1ebd099af4abd40e848787ac96a53aa7287f469b..b28689f2621ee7d5129ab6d1853d9ee8
|
||||||
} else {
|
} else {
|
||||||
this.noJumpDelay = 0;
|
this.noJumpDelay = 0;
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||||
index f584f5a6fc503cdf08a3a2c3720f086031c11798..306aa8c36be92d66ebcc6b7e0dbb9dee6ec41a9b 100644
|
index dbcf70dacf99b61c0147b43edd6a374b31809733..9c07e3f5554b3b9cf2a2c4d9239a72342567d7f1 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||||
@@ -515,7 +515,9 @@ public class Panda extends Animal {
|
@@ -515,7 +515,9 @@ public class Panda extends Animal {
|
|
@ -21,10 +21,10 @@ index a9b3442a49dc359959496d1f6adadefa76bfc863..62dfb6afe204c078f579a3dae944d935
|
||||||
private void lightQueueSize() {
|
private void lightQueueSize() {
|
||||||
lightQueueSize = getInt("light-queue-size", lightQueueSize);
|
lightQueueSize = getInt("light-queue-size", lightQueueSize);
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 55bfca9606770ac8eb0c15ed83c5d3c605c22871..32e93c0c9c56a00585ede420f488cfe4a1b37ffa 100644
|
index a0a5c5b4e5a684f5ead6ad021966723c11d49547..ea522476dff5408e1b7e488c4460406409d140ca 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -324,6 +324,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -345,6 +345,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
// Paper start
|
// Paper start
|
||||||
public long activatedImmunityTick = Integer.MIN_VALUE; // Paper
|
public long activatedImmunityTick = Integer.MIN_VALUE; // Paper
|
||||||
public boolean isTemporarilyActive = false; // Paper
|
public boolean isTemporarilyActive = false; // Paper
|
||||||
|
@ -32,7 +32,7 @@ index 55bfca9606770ac8eb0c15ed83c5d3c605c22871..32e93c0c9c56a00585ede420f488cfe4
|
||||||
protected int numCollisions = 0; // Paper
|
protected int numCollisions = 0; // Paper
|
||||||
public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one
|
public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one
|
||||||
@javax.annotation.Nullable
|
@javax.annotation.Nullable
|
||||||
@@ -1895,6 +1896,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -1943,6 +1944,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
if (spawnedViaMobSpawner) {
|
if (spawnedViaMobSpawner) {
|
||||||
nbt.putBoolean("Paper.FromMobSpawner", true);
|
nbt.putBoolean("Paper.FromMobSpawner", true);
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ index 55bfca9606770ac8eb0c15ed83c5d3c605c22871..32e93c0c9c56a00585ede420f488cfe4
|
||||||
// Paper end
|
// Paper end
|
||||||
return nbt;
|
return nbt;
|
||||||
} catch (Throwable throwable) {
|
} catch (Throwable throwable) {
|
||||||
@@ -2034,6 +2038,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -2082,6 +2086,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
}
|
}
|
||||||
|
|
||||||
spawnedViaMobSpawner = nbt.getBoolean("Paper.FromMobSpawner"); // Restore entity's from mob spawner status
|
spawnedViaMobSpawner = nbt.getBoolean("Paper.FromMobSpawner"); // Restore entity's from mob spawner status
|
||||||
|
@ -51,7 +51,7 @@ index 55bfca9606770ac8eb0c15ed83c5d3c605c22871..32e93c0c9c56a00585ede420f488cfe4
|
||||||
String spawnReasonName = nbt.getString("Paper.SpawnReason");
|
String spawnReasonName = nbt.getString("Paper.SpawnReason");
|
||||||
try {
|
try {
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
|
||||||
index 8edc7e3cf88eeebc06408a713ba6a41c9bd53e40..d2b82872f6f8c3febb6c4b6468fd39f3549b1ed8 100644
|
index 33078e2199c8eb0ce012a72eeb4421df12817b84..fe073237dbec6e9890395575206bbc893bef6d9b 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
|
--- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
|
+++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
|
||||||
@@ -66,6 +66,8 @@ public class NetherPortalBlock extends Block {
|
@@ -66,6 +66,8 @@ public class NetherPortalBlock extends Block {
|
|
@ -5,12 +5,12 @@ Subject: [PATCH] Validate tripwire hook placement before update
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java
|
||||||
index 5efec24bbc23b6a4db29693cb875b8e2e7ece9e2..02a3e1ced592784b9c66927c76376c7ab413367d 100644
|
index a5f8c7d9d9998eebce7f15e01c157651b9831516..4a516828e5c6abd63511ee7c93fcff11203cf8d0 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java
|
--- a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java
|
+++ b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java
|
||||||
@@ -174,6 +174,7 @@ public class TripWireHookBlock extends Block {
|
@@ -175,6 +175,7 @@ public class TripWireHookBlock extends Block {
|
||||||
|
|
||||||
this.playSound(world, pos, flag4, flag5, flag2, flag3);
|
this.emitState(world, pos, flag4, flag5, flag2, flag3);
|
||||||
if (!beingRemoved) {
|
if (!beingRemoved) {
|
||||||
+ if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - validate
|
+ if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - validate
|
||||||
world.setBlock(pos, (BlockState) iblockdata3.setValue(TripWireHookBlock.FACING, enumdirection), 3);
|
world.setBlock(pos, (BlockState) iblockdata3.setValue(TripWireHookBlock.FACING, enumdirection), 3);
|
|
@ -21,10 +21,10 @@ index 62dfb6afe204c078f579a3dae944d9350aaf72d0..82d8299d949ee26eefba2952b625650c
|
||||||
private void armorStandEntityLookups() {
|
private void armorStandEntityLookups() {
|
||||||
armorStandEntityLookups = getBoolean("armor-stands-do-collision-entity-lookups", true);
|
armorStandEntityLookups = getBoolean("armor-stands-do-collision-entity-lookups", true);
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
||||||
index 3e4241d83ec26e575dcdbd0f7fb6b1edbf0b2d05..8299b48bad7a38d4310ca93b1de37d6c9170fc09 100644
|
index d2864615588aadf81ac9763ba402ede0c1eebb23..0a239df9a43669047be3d6006597128860862060 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
||||||
@@ -323,7 +323,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
|
@@ -334,7 +334,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
|
||||||
BlockPos blockposition1 = blockposition.below();
|
BlockPos blockposition1 = blockposition.below();
|
||||||
BlockState iblockdata = world.getBlockState(blockposition1);
|
BlockState iblockdata = world.getBlockState(blockposition1);
|
||||||
|
|
|
@ -24,21 +24,22 @@ index 82d8299d949ee26eefba2952b625650c1aca0e6a..6e7699e5a725eac05de3e809ae9a45a4
|
||||||
private void lightQueueSize() {
|
private void lightQueueSize() {
|
||||||
lightQueueSize = getInt("light-queue-size", lightQueueSize);
|
lightQueueSize = getInt("light-queue-size", lightQueueSize);
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||||
index 0760fcc3bde6b819ae526e2c66486b09a948d98b..f09e9ae8e976b0150c00995cd22e64feaefd27be 100644
|
index 374fccfec47769d2df51056fb6d1948f472a6802..6efce73f5233927104ec772e16a370926317d80d 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||||
@@ -449,10 +449,13 @@ public class Zombie extends Monster {
|
@@ -450,10 +450,14 @@ public class Zombie extends Monster {
|
||||||
@Override
|
public boolean wasKilled(ServerLevel world, LivingEntity other) {
|
||||||
public void killed(ServerLevel world, LivingEntity other) {
|
boolean flag = super.wasKilled(world, other);
|
||||||
super.killed(world, other);
|
|
||||||
- if ((world.getDifficulty() == Difficulty.NORMAL || world.getDifficulty() == Difficulty.HARD) && other instanceof Villager) {
|
- if ((world.getDifficulty() == Difficulty.NORMAL || world.getDifficulty() == Difficulty.HARD) && other instanceof Villager) {
|
||||||
- if (world.getDifficulty() != Difficulty.HARD && this.random.nextBoolean()) {
|
- if (world.getDifficulty() != Difficulty.HARD && this.random.nextBoolean()) {
|
||||||
|
+ // Paper start
|
||||||
+ if (level.paperConfig.zombieVillagerInfectionChance != 0.0 && (level.paperConfig.zombieVillagerInfectionChance != -1.0 || world.getDifficulty() == Difficulty.NORMAL || world.getDifficulty() == Difficulty.HARD) && other instanceof Villager) {
|
+ if (level.paperConfig.zombieVillagerInfectionChance != 0.0 && (level.paperConfig.zombieVillagerInfectionChance != -1.0 || world.getDifficulty() == Difficulty.NORMAL || world.getDifficulty() == Difficulty.HARD) && other instanceof Villager) {
|
||||||
+ if (level.paperConfig.zombieVillagerInfectionChance == -1.0 && world.getDifficulty() != Difficulty.HARD && this.random.nextBoolean()) {
|
+ if (level.paperConfig.zombieVillagerInfectionChance == -1.0 && world.getDifficulty() != Difficulty.HARD && this.random.nextBoolean()) {
|
||||||
return;
|
return flag;
|
||||||
}
|
}
|
||||||
+ if (level.paperConfig.zombieVillagerInfectionChance != -1.0 && (this.random.nextDouble() * 100.0) > level.paperConfig.zombieVillagerInfectionChance) {
|
+ if (level.paperConfig.zombieVillagerInfectionChance != -1.0 && (this.random.nextDouble() * 100.0) > level.paperConfig.zombieVillagerInfectionChance) {
|
||||||
+ return;
|
+ return flag;
|
||||||
+ } // Paper end
|
+ } // Paper end
|
||||||
|
|
||||||
Villager entityvillager = (Villager) other;
|
Villager entityvillager = (Villager) other;
|
|
@ -8,10 +8,10 @@ faster on its own, however removing the try catch makes it
|
||||||
easier to inline due to code size
|
easier to inline due to code size
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
index 1a64618e533426147ad6ab1211afb9cc676cc185..f994d393929ca6813d4209fb9c93550e4f692228 100644
|
index 74952112182ac94942474f1c7cf21a6301abbcc7..930fa1703727249585b4ac045db15d55736c58fd 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
@@ -373,18 +373,20 @@ public class LevelChunk extends ChunkAccess {
|
@@ -381,18 +381,20 @@ public class LevelChunk extends ChunkAccess {
|
||||||
}
|
}
|
||||||
|
|
||||||
public FluidState getFluidState(int x, int y, int z) {
|
public FluidState getFluidState(int x, int y, int z) {
|
||||||
|
@ -38,7 +38,7 @@ index 1a64618e533426147ad6ab1211afb9cc676cc185..f994d393929ca6813d4209fb9c93550e
|
||||||
} catch (Throwable throwable) {
|
} catch (Throwable throwable) {
|
||||||
CrashReport crashreport = CrashReport.forThrowable(throwable, "Getting fluid state");
|
CrashReport crashreport = CrashReport.forThrowable(throwable, "Getting fluid state");
|
||||||
CrashReportCategory crashreportsystemdetails = crashreport.addCategory("Block being got");
|
CrashReportCategory crashreportsystemdetails = crashreport.addCategory("Block being got");
|
||||||
@@ -394,6 +396,7 @@ public class LevelChunk extends ChunkAccess {
|
@@ -402,6 +404,7 @@ public class LevelChunk extends ChunkAccess {
|
||||||
});
|
});
|
||||||
throw new ReportedException(crashreport);
|
throw new ReportedException(crashreport);
|
||||||
}
|
}
|
||||||
|
@ -47,10 +47,10 @@ index 1a64618e533426147ad6ab1211afb9cc676cc185..f994d393929ca6813d4209fb9c93550e
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||||
index 67b06640358e04752bf149e9380f5f83d5d1d0f6..cdd17e501c678a4f4bebbaaccdaec1682351e2f2 100644
|
index ba4da27861236eb62d208f2a660e232a143232ac..2ad73237f4664535c3d5120a54b713f44cddb793 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||||
@@ -52,7 +52,7 @@ public class LevelChunkSection {
|
@@ -54,7 +54,7 @@ public class LevelChunkSection {
|
||||||
}
|
}
|
||||||
|
|
||||||
public FluidState getFluidState(int x, int y, int z) {
|
public FluidState getFluidState(int x, int y, int z) {
|
|
@ -122,10 +122,10 @@ index 0be8f68c3e61f132ada9381e36b743dd7477eece..8158a00821727104a23958a76e19cd8b
|
||||||
version = getInt("config-version", 27);
|
version = getInt("config-version", 27);
|
||||||
set("config-version", 27);
|
set("config-version", 27);
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index 632743678f8c65e078080fda7c8eeee9a2d5753c..03ebc2a0476aef9297cbbc7f358915703a469b02 100644
|
index 5b9cd88e77a492bbd9c52d5c245b35bb53cf024e..661342339930573509571feb5a6f613d53186f00 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -244,6 +244,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -235,6 +235,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
private String motd;
|
private String motd;
|
||||||
private int playerIdleTimeout;
|
private int playerIdleTimeout;
|
||||||
public final long[] tickTimes;
|
public final long[] tickTimes;
|
||||||
|
@ -137,7 +137,7 @@ index 632743678f8c65e078080fda7c8eeee9a2d5753c..03ebc2a0476aef9297cbbc7f35891570
|
||||||
@Nullable
|
@Nullable
|
||||||
private KeyPair keyPair;
|
private KeyPair keyPair;
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -1401,6 +1406,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1359,6 +1364,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
this.averageTickTime = this.averageTickTime * 0.8F + (float) l / 1000000.0F * 0.19999999F;
|
this.averageTickTime = this.averageTickTime * 0.8F + (float) l / 1000000.0F * 0.19999999F;
|
||||||
long i1 = Util.getNanos();
|
long i1 = Util.getNanos();
|
||||||
|
|
||||||
|
@ -150,10 +150,11 @@ index 632743678f8c65e078080fda7c8eeee9a2d5753c..03ebc2a0476aef9297cbbc7f35891570
|
||||||
this.frameTimer.logFrameDuration(i1 - i);
|
this.frameTimer.logFrameDuration(i1 - i);
|
||||||
this.profiler.pop();
|
this.profiler.pop();
|
||||||
org.spigotmc.WatchdogThread.tick(); // Spigot
|
org.spigotmc.WatchdogThread.tick(); // Spigot
|
||||||
@@ -2537,4 +2548,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -2495,4 +2506,30 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
};
|
public static record ServerResourcePackInfo(String url, String hash, boolean isRequired, @Nullable Component prompt) {
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
+
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ public static class TickTimes {
|
+ public static class TickTimes {
|
||||||
+ private final long[] times;
|
+ private final long[] times;
|
||||||
|
@ -181,10 +182,10 @@ index 632743678f8c65e078080fda7c8eeee9a2d5753c..03ebc2a0476aef9297cbbc7f35891570
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index dacec59aa5e6154ae311720ef70e7a05a75bef29..5f44ad8b1a982608075db813abd2e536252e0c81 100644
|
index abab21e657dc13d48006bf87e434e3343a00f1ca..2a15571be3846926ec1c93326aa18fd434125594 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -2467,6 +2467,16 @@ public final class CraftServer implements Server {
|
@@ -2450,6 +2450,16 @@ public final class CraftServer implements Server {
|
||||||
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
|
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
|
||||||
};
|
};
|
||||||
}
|
}
|
|
@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning
|
||||||
This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading.
|
This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading.
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 5f44ad8b1a982608075db813abd2e536252e0c81..21a10a0dc98cb2c669a505d6185c2093855afae6 100644
|
index 2a15571be3846926ec1c93326aa18fd434125594..8a36ed778814dfd74ab190fa25cc6dbb54275ac0 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -2657,5 +2657,10 @@ public final class CraftServer implements Server {
|
@@ -2640,5 +2640,10 @@ public final class CraftServer implements Server {
|
||||||
public int getCurrentTick() {
|
public int getCurrentTick() {
|
||||||
return net.minecraft.server.MinecraftServer.currentTick;
|
return net.minecraft.server.MinecraftServer.currentTick;
|
||||||
}
|
}
|
|
@ -6,7 +6,7 @@ Subject: [PATCH] Add Raw Byte ItemStack Serialization
|
||||||
Serializes using NBT which is safer for server data migrations than bukkits format.
|
Serializes using NBT which is safer for server data migrations than bukkits format.
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
index 7fed3c5cbc48fb8de7af006720aa2a6fbe16c556..b38e0ac6a2eafc0d98bb81665bdc2eafbac2d7d8 100644
|
index ab1bcb17d88b032c091a2237d0f1559b82bcd43f..bc6d9dc549b865d47899db947b7e5b00ff312d2f 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
@@ -431,6 +431,53 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
@@ -431,6 +431,53 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
Loading…
Reference in New Issue