Updated Upstream (Bukkit/CraftBukkit/Spigot)

Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
c9b35cdb PR-684: Make PotionEffectType implement Keyed

CraftBukkit Changes:
c86a3f7a PR-959: Fix World#refreshChunk
af8a8b70 PR-962: Make PotionEffectType implement Keyed

Spigot Changes:
7514aa37 SPIGOT-6806: Add setting to disable new chunks generation under existing chunks
This commit is contained in:
Jake 2021-11-27 19:24:49 -08:00 committed by MiniDigger | Martin
parent 0af80abdca
commit afbaa18bf6
32 changed files with 87 additions and 78 deletions

View file

@ -1860,10 +1860,10 @@ index 98efa73682ceee3590c225fbd4dc57b8ab0aec17..dea0b0d3164737b72d84679f2128fc82
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 6bb2e87c4aa09e565c1c197548517d87f63f7fb1..277b946bec2cfd8cfb4054504133f6ab9059ba8c 100644
index b66b88475178f5a20a689f1af9a06f7f8e50ff9b..8df699de4ddde3089324f347a82d913f2208f5be 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -131,6 +131,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -133,6 +133,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
private int waterAmbientSpawn = -1;
private int waterUndergroundCreatureSpawn = -1;
private int ambientSpawn = -1;
@ -1871,7 +1871,7 @@ index 6bb2e87c4aa09e565c1c197548517d87f63f7fb1..277b946bec2cfd8cfb4054504133f6ab
private static final Random rand = new Random();
@@ -1781,4 +1782,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1784,4 +1785,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return this.spigot;
}
// Spigot end

View file

@ -20,10 +20,10 @@ index 352bfe795aea26307de9c998d67a43af3e4845f0..4689d52cd314a607d17be3657099157e
private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_XZ = 32;
private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 277b946bec2cfd8cfb4054504133f6ab9059ba8c..a465ef627169e62132287cded07efb5b05e1ed36 100644
index 8df699de4ddde3089324f347a82d913f2208f5be..4a91e8ee26ec34f605828afa75eea8dd30a1f1ef 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1750,6 +1750,31 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1753,6 +1753,31 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public int getSimulationDistance() {
return world.spigotConfig.simulationDistance;
}

View file

@ -7,7 +7,7 @@ Provides counts without the ineffeciency of using .getEntities().size()
which creates copy of the collections.
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index ca2e81b9eace4124b83588c604a88a0e5595c6e6..8fbf239cdc5bc2f1ec7b91eaee85d032e65f250f 100644
index f51f41b19982736f3e095089eba17d0fab915e97..ea1e85fa125f2dd1a251e1589fff32d7083e2c13 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -111,7 +111,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@ -20,10 +20,10 @@ index ca2e81b9eace4124b83588c604a88a0e5595c6e6..8fbf239cdc5bc2f1ec7b91eaee85d032
private boolean tickingBlockEntities;
public final Thread thread;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index a465ef627169e62132287cded07efb5b05e1ed36..8579696f971824688500c8837f9451d23f84dae2 100644
index 4a91e8ee26ec34f605828afa75eea8dd30a1f1ef..306b949dc7b9a57d97373a309ee33820c523b86e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -133,6 +133,57 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -135,6 +135,57 @@ public class CraftWorld extends CraftRegionAccessor implements World {
private int ambientSpawn = -1;
private net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers

View file

@ -10,7 +10,7 @@ Adds an option to control the force mode of the particle.
This adds a new Builder API which is much friendlier to use.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 94a64e0e7a0ea147ae008f91a0787c8840566f4f..a734416fd80f0b367300c179e90fb51e206ca36c 100644
index 41b4cc7577b937e22512df00e3d4a3445fa7d004..c6111e041fa85a13fdc96595bff62775e4f54ddb 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1361,12 +1361,17 @@ public class ServerLevel extends Level implements WorldGenLevel {
@ -34,10 +34,10 @@ index 94a64e0e7a0ea147ae008f91a0787c8840566f4f..a734416fd80f0b367300c179e90fb51e
if (this.sendParticles(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 8579696f971824688500c8837f9451d23f84dae2..90fe854921dfea883c6420c765d13518a42080d2 100644
index 306b949dc7b9a57d97373a309ee33820c523b86e..5d634f2bdab4f80cb2ccb3e60b9f3c96cfc7e875 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1748,11 +1748,17 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1751,11 +1751,17 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public <T> void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) {

View file

@ -6,10 +6,10 @@ Subject: [PATCH] Expand Explosions API
Add Entity as a Source capability, and add more API choices, and on Location.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 90fe854921dfea883c6420c765d13518a42080d2..478a1864079c72c670480a0dbb0a78eae2165dca 100644
index 5d634f2bdab4f80cb2ccb3e60b9f3c96cfc7e875..da66ab027f89f9d92efe58f14a35d758e4e30687 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -688,6 +688,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -691,6 +691,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks, Entity source) {
return !this.world.explode(source == null ? null : ((CraftEntity) source).getHandle(), x, y, z, power, setFire, breakBlocks ? Explosion.BlockInteraction.BREAK : Explosion.BlockInteraction.NONE).wasCanceled;
}

View file

@ -5,10 +5,10 @@ Subject: [PATCH] Implement World.getEntity(UUID) API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 478a1864079c72c670480a0dbb0a78eae2165dca..d72bfc263798797ca83e529c26bd2a1733c65eb4 100644
index da66ab027f89f9d92efe58f14a35d758e4e30687..0a2b445bffeb95854eb0e9fe009031d41ad1b2bb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1022,6 +1022,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1025,6 +1025,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return list;
}

View file

@ -6,10 +6,10 @@ Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index d72bfc263798797ca83e529c26bd2a1733c65eb4..d1ffbacdabc500bfbe3f65eed6206e499775f97a 100644
index 0a2b445bffeb95854eb0e9fe009031d41ad1b2bb..dafdfce21f6629d6f99bcf4e47e82e2fbf332f09 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -369,7 +369,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -372,7 +372,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot

View file

@ -3169,7 +3169,7 @@ index d3051e8bdec40cc00326c6ab4ab08e56065c1f56..9168bc15f8fbc8719e6c83428b824105
CompoundTag nbttagcompound3 = new CompoundTag();
Iterator iterator1 = chunk.getHeightmaps().iterator();
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
index e2beb58065e049745c063d0edc49e295b14f9084..2eba8c2d1e978f677eaedac2e09cd1124f1d03db 100644
index 2d1c8d5cf8ea6739d5e9df91cc16cde72917feff..d7fab2fb61dc3de14e382bac6127db956605e7ad 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
@@ -25,27 +25,38 @@ import net.minecraft.world.level.storage.DimensionDataStorage;
@ -3231,7 +3231,7 @@ index e2beb58065e049745c063d0edc49e295b14f9084..2eba8c2d1e978f677eaedac2e09cd112
}
}
@@ -114,26 +127,39 @@ public class ChunkStorage implements AutoCloseable {
@@ -129,26 +142,39 @@ public class ChunkStorage implements AutoCloseable {
@Nullable
public CompoundTag read(ChunkPos chunkPos) throws IOException {
@ -3536,10 +3536,10 @@ index 415ec2cb81e956526e7f4965b899c9aa04f62f2e..ff6cadec530dedf9efc5d6226e48a096
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index d1ffbacdabc500bfbe3f65eed6206e499775f97a..7f4024dbc1a0c50af9344689561de54eb35e1c98 100644
index dafdfce21f6629d6f99bcf4e47e82e2fbf332f09..ab00e3a834c77e080a1ca4acf077c948a8287124 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1811,6 +1811,34 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1814,6 +1814,34 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public DragonBattle getEnderDragonBattle() {
return (this.getHandle().dragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().dragonFight());
}

View file

@ -5,10 +5,10 @@ Subject: [PATCH] Add sun related API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 7f4024dbc1a0c50af9344689561de54eb35e1c98..8615d4abbf18ab105ca7edffa10e8122ef76add3 100644
index ab00e3a834c77e080a1ca4acf077c948a8287124..bbdeeb6bafde95cfffbafbe9fefb303d5593c498 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -664,6 +664,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -667,6 +667,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
}
}

View file

@ -5,10 +5,10 @@ Subject: [PATCH] Add Heightmap API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 8615d4abbf18ab105ca7edffa10e8122ef76add3..b521b6f2db867037ee986e32f7e2cbcd3038d8a3 100644
index bbdeeb6bafde95cfffbafbe9fefb303d5593c498..6f9e0560101662012a332c560ce51c00500ce20b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -204,6 +204,29 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -206,6 +206,29 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return this.getHighestBlockYAt(x, z, org.bukkit.HeightMap.MOTION_BLOCKING);
}

View file

@ -9,10 +9,10 @@ waiting for the execution queue to get to our request; We can just query
the chunk status and get a response now, vs having to wait
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index b521b6f2db867037ee986e32f7e2cbcd3038d8a3..f68fa8f971c39e3d150860542341a2564730b089 100644
index 6f9e0560101662012a332c560ce51c00500ce20b..29509d3ae956fd4da2bf12c6a352ab115fc75f5c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -275,13 +275,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -277,13 +277,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean isChunkLoaded(int x, int z) {

View file

@ -221,10 +221,10 @@ index 4185e6bcf9b2bb65b2a0fa5fcbeb5684615169a7..dbc29442f2b2ad3ea451910f4944e901
this.maxCount = i * i;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index f68fa8f971c39e3d150860542341a2564730b089..bb95fec09594f7e2d38619ae4055ec9964635622 100644
index 29509d3ae956fd4da2bf12c6a352ab115fc75f5c..255616aa45b06487c67aa6011dbe29e18d82bc68 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1337,15 +1337,21 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1340,15 +1340,21 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setKeepSpawnInMemory(boolean keepLoaded) {

View file

@ -196,7 +196,7 @@ index 2cbc17288b1dc52edb2bdad29976d0f551b1e176..2ee32657a49937418b352a138aca21fb
} catch (Throwable throwable) {
if (dataoutputstream != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index bb95fec09594f7e2d38619ae4055ec9964635622..c4d5d78064cbef9386c00dc962e0a7889ed73d9d 100644
index 255616aa45b06487c67aa6011dbe29e18d82bc68..706d5718997181279f7ec715526b4d8f2b6162a2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -19,6 +19,7 @@ import java.util.Objects;
@ -207,7 +207,7 @@ index bb95fec09594f7e2d38619ae4055ec9964635622..c4d5d78064cbef9386c00dc962e0a788
import java.util.function.Predicate;
import java.util.stream.Collectors;
import net.minecraft.core.BlockPos;
@@ -280,8 +281,22 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -282,8 +283,22 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean isChunkGenerated(int x, int z) {
@ -231,7 +231,7 @@ index bb95fec09594f7e2d38619ae4055ec9964635622..c4d5d78064cbef9386c00dc962e0a788
} catch (IOException ex) {
throw new RuntimeException(ex);
}
@@ -392,20 +407,48 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -395,20 +410,48 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Guard against serializing mismatching chunk coordinate
Should help if something dumb happens
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java
index 384ee6fbc65baff381d875665fd2462dbc99683e..980c784b8e5365b62cbeef7f32af9f4383cc01e6 100644
index b44d621fc8a5194622775b7903de083cca999022..9a6f4c0bcfe8ce331ba7f6c92e527addcf65c911 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java
@@ -75,6 +75,18 @@ public class ChunkSerializer {
@ -38,10 +38,10 @@ index 384ee6fbc65baff381d875665fd2462dbc99683e..980c784b8e5365b62cbeef7f32af9f43
if (!Objects.equals(chunkPos, chunkcoordintpair1)) {
ChunkSerializer.LOGGER.error("Chunk file at {} is in the wrong location; relocating. (Expected {}, got {})", chunkPos, chunkPos, chunkcoordintpair1);
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
index 2eba8c2d1e978f677eaedac2e09cd1124f1d03db..a750b40be3ba5ba258ca2540ab0398deac5a6c5e 100644
index d7fab2fb61dc3de14e382bac6127db956605e7ad..b1b1fa19cfd533d5625a462af399c5fd055629b0 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
@@ -132,6 +132,13 @@ public class ChunkStorage implements AutoCloseable {
@@ -147,6 +147,13 @@ public class ChunkStorage implements AutoCloseable {
// Paper start - async chunk io
public void write(ChunkPos chunkPos, CompoundTag nbt) throws IOException {

View file

@ -44,10 +44,10 @@ index 835ff36cfd8c15bf11b3b6a70eb02f6c5b693b8a..b1dfd1b13652807882e057ae4fb55f9a
this.printSaveWarning = false;
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index c4d5d78064cbef9386c00dc962e0a7889ed73d9d..3bc98586792960f50ca25929f1d91fc60a8577ce 100644
index 706d5718997181279f7ec715526b4d8f2b6162a2..c11bdc266434aa9d90e5ab25e185dc1a1ba57d9b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -264,8 +264,21 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -266,8 +266,21 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public Chunk getChunkAt(int x, int z) {
@ -70,7 +70,7 @@ index c4d5d78064cbef9386c00dc962e0a7889ed73d9d..3bc98586792960f50ca25929f1d91fc6
@Override
public Chunk getChunkAt(Block block) {
@@ -332,7 +345,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -334,7 +347,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public boolean unloadChunkRequest(int x, int z) {
org.spigotmc.AsyncCatcher.catchOp("chunk unload"); // Spigot
if (this.isChunkLoaded(x, z)) {
@ -79,7 +79,7 @@ index c4d5d78064cbef9386c00dc962e0a7889ed73d9d..3bc98586792960f50ca25929f1d91fc6
}
return true;
@@ -409,9 +422,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -412,9 +425,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
// Paper start - Optimize this method
ChunkPos chunkPos = new ChunkPos(x, z);
@ -93,7 +93,7 @@ index c4d5d78064cbef9386c00dc962e0a7889ed73d9d..3bc98586792960f50ca25929f1d91fc6
if (immediate == null) {
immediate = world.getChunkSource().chunkMap.getUnloadingChunk(x, z);
}
@@ -419,7 +435,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -422,7 +438,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
if (!(immediate instanceof ImposterProtoChunk) && !(immediate instanceof net.minecraft.world.level.chunk.LevelChunk)) {
return false; // not full status
}
@ -102,7 +102,7 @@ index c4d5d78064cbef9386c00dc962e0a7889ed73d9d..3bc98586792960f50ca25929f1d91fc6
world.getChunk(x, z); // make sure we're at ticket level 32 or lower
return true;
}
@@ -445,7 +461,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -448,7 +464,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// we do this so we do not re-read the chunk data on disk
}
@ -111,7 +111,7 @@ index c4d5d78064cbef9386c00dc962e0a7889ed73d9d..3bc98586792960f50ca25929f1d91fc6
world.getChunkSource().getChunk(x, z, ChunkStatus.FULL, true);
return true;
// Paper end
@@ -1914,6 +1930,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1917,6 +1933,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return this.world.getChunkSource().getChunkAtAsynchronously(x, z, gen, urgent).thenComposeAsync((either) -> {
net.minecraft.world.level.chunk.LevelChunk chunk = (net.minecraft.world.level.chunk.LevelChunk) either.left().orElse(null);

View file

@ -1193,10 +1193,10 @@ index 6a881c2abdbc23366a1b0ac69e363b196b99197b..ddf362fc14fcf83b22536b76cfc6ac13
org.bukkit.event.world.ChunkUnloadEvent unloadEvent = new org.bukkit.event.world.ChunkUnloadEvent(this.bukkitChunk, this.isUnsaved());
server.getPluginManager().callEvent(unloadEvent);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 3bc98586792960f50ca25929f1d91fc60a8577ce..ea4e897e04de9474abec5f6d0819bff4471b51ee 100644
index c11bdc266434aa9d90e5ab25e185dc1a1ba57d9b..eea11a2bf87d409f484f07f207c57c864079e43d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1928,6 +1928,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1931,6 +1931,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return future;
}

View file

@ -6,10 +6,10 @@ Subject: [PATCH] Add missing strikeLighting call to
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index ea4e897e04de9474abec5f6d0819bff4471b51ee..3ed68022c06a6b0d9b1d98fcdf64c2c4ba42480e 100644
index eea11a2bf87d409f484f07f207c57c864079e43d..b08bca3111a70edd329aac26b6f2763925081b60 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2000,6 +2000,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -2003,6 +2003,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
lightning.moveTo( loc.getX(), loc.getY(), loc.getZ() );
lightning.visualOnly = true;
lightning.isSilent = isSilent;

View file

@ -17,10 +17,10 @@ index d55d2627b7e0c847250c551989d438280bef9ab8..5c98b61c08464cc78be34d1567eff700
// if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add
this.removeTicketsForSpawn(this.paperConfig.keepLoadedRange, prevSpawn);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 3ed68022c06a6b0d9b1d98fcdf64c2c4ba42480e..85b688ee046c160f689495d97e2c48bef4ad6cdb 100644
index b08bca3111a70edd329aac26b6f2763925081b60..81756e78acb1b9ea2a7e9b75ffe55a936cc79dce 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -245,11 +245,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -247,11 +247,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public boolean setSpawnLocation(int x, int y, int z, float angle) {
try {
Location previousLocation = this.getSpawnLocation();

View file

@ -5,10 +5,10 @@ Subject: [PATCH] Add moon phase API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 85b688ee046c160f689495d97e2c48bef4ad6cdb..b2efce98e8d6f5297646e4f270bc2d5cc7e182f0 100644
index 81756e78acb1b9ea2a7e9b75ffe55a936cc79dce..f850aefb042660e6df423a19907a096a3a7c1d77 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -183,6 +183,11 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -185,6 +185,11 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public int getPlayerCount() {
return world.players().size();
}

View file

@ -18,10 +18,10 @@ index d414a3abae7dea5b813e41758eccf98cd35bddc2..e7834772e38e61df405be406fe320a64
Player respawnPlayer = entityplayer1.getBukkitEntity();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index b2efce98e8d6f5297646e4f270bc2d5cc7e182f0..4e6d24ce3e14ad56b2e926d6b4aea36f882f5bf3 100644
index f850aefb042660e6df423a19907a096a3a7c1d77..4224f6c5d219285c10c1dae18375ee553052510b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -236,7 +236,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -238,7 +238,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public Location getSpawnLocation() {
BlockPos spawn = this.world.getSharedSpawnPos();

View file

@ -64,10 +64,10 @@ index 888d812118c15c212284687ae5842a94f5715d52..e7ca5d6fb8922e7e8065864f736b0605
public int get() {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 4e6d24ce3e14ad56b2e926d6b4aea36f882f5bf3..77bbac3a5d98083589a54d03964d14be2d15df95 100644
index 4224f6c5d219285c10c1dae18375ee553052510b..dc182b4ff748661b04e15578ac9e0e1a8062f2c8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1733,8 +1733,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1736,8 +1736,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
if (!this.isGameRule(rule)) return false;
@ -82,7 +82,7 @@ index 4e6d24ce3e14ad56b2e926d6b4aea36f882f5bf3..77bbac3a5d98083589a54d03964d14be
handle.onChanged(this.getHandle().getServer());
return true;
}
@@ -1769,8 +1774,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1772,8 +1777,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
if (!this.isGameRule(rule.getName())) return false;

View file

@ -34,10 +34,10 @@ index 5c8dc52d012117ebf9721fb26d3c0e9d84a751f4..9d77ecf330d93b3c2925d097b753c887
// Check if a World already exists with the UID.
if (this.getWorld(world.getUID()) != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 77bbac3a5d98083589a54d03964d14be2d15df95..6f09c88f04fd182f0e321f47b7b8c2e9332d2877 100644
index dc182b4ff748661b04e15578ac9e0e1a8062f2c8..96d3f8a312ebe786fe21198d12d9f3294a86d865 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1956,6 +1956,11 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1959,6 +1959,11 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return java.util.concurrent.CompletableFuture.completedFuture(chunk == null ? null : chunk.getBukkitChunk());
}, net.minecraft.server.MinecraftServer.getServer());
}

View file

@ -5,10 +5,10 @@ Subject: [PATCH] More World API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 6f09c88f04fd182f0e321f47b7b8c2e9332d2877..9a4f4cca21f9715628de5fd43030e50c5cf28cac 100644
index 96d3f8a312ebe786fe21198d12d9f3294a86d865..5e26484e0b4a72556e77d8b2035d4cc569826b42 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1902,6 +1902,65 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1905,6 +1905,65 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (nearest == null) ? null : new Location(this, nearest.getX(), nearest.getY(), nearest.getZ());
}

View file

@ -95,10 +95,10 @@ index d88003a29d382d8952964257601f93c5fe95fa8b..30cd6dc004ef1d1518c9a10304ea2a20
if (weather.isCancelled()) {
return;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 9a4f4cca21f9715628de5fd43030e50c5cf28cac..a7fc7da224edcbbf21dcc8cecc879cf0a41daf36 100644
index 5e26484e0b4a72556e77d8b2035d4cc569826b42..00aab4a9b4485fbecb98f2fb56370d3919b3a5f9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1170,7 +1170,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1173,7 +1173,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setStorm(boolean hasStorm) {
@ -107,7 +107,7 @@ index 9a4f4cca21f9715628de5fd43030e50c5cf28cac..a7fc7da224edcbbf21dcc8cecc879cf0
this.setWeatherDuration(0); // Reset weather duration (legacy behaviour)
this.setClearWeatherDuration(0); // Reset clear weather duration (reset "/weather clear" commands)
}
@@ -1192,7 +1192,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1195,7 +1195,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setThundering(boolean thundering) {

View file

@ -19,10 +19,10 @@ index 7fb05333ffb052373af613f52bafd0684c39c1af..4c0c2bc9fae878304eab1c18b5ef0cae
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index a7fc7da224edcbbf21dcc8cecc879cf0a41daf36..8947ecf8136b457265fee897f6d1a3da1ff5ac17 100644
index 00aab4a9b4485fbecb98f2fb56370d3919b3a5f9..2e938d257de3df9ce571a6b850fc1a5ca5790cf7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -188,6 +188,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -190,6 +190,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public io.papermc.paper.world.MoonPhase getMoonPhase() {
return io.papermc.paper.world.MoonPhase.getPhase(getFullTime() / 24000L);
}

View file

@ -52,10 +52,10 @@ index 83674565d280f5aa2504cdaee027386f3f377291..24f784209109f599fab11ba8c905f16c
private void lightQueueSize() {
lightQueueSize = getInt("light-queue-size", lightQueueSize);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 8947ecf8136b457265fee897f6d1a3da1ff5ac17..28516df29bfb3d51980e2ace74fa72bfc2151056 100644
index 2e938d257de3df9ce571a6b850fc1a5ca5790cf7..b4a1346eb90864c1eeb46b22a61f3adcd352aa19 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -210,6 +210,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -212,6 +212,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
this.biomeProvider = biomeProvider;
this.environment = env;

View file

@ -29,10 +29,10 @@ index 7dd99f16caac736ffb6b53b09695eede9cb7fbca..2b3c54737a203401c6f03bba9c9d969e
blockposition1 = blockposition1.above(2);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 28516df29bfb3d51980e2ace74fa72bfc2151056..25ab3a26a46b592f0953047ecafed4733f037cd1 100644
index b4a1346eb90864c1eeb46b22a61f3adcd352aa19..f7d94cb32a178247bbc5f59e5bc31e79f9fcdc4d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -690,6 +690,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -693,6 +693,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (LightningStrike) lightning.getBukkitEntity();
}

View file

@ -175,10 +175,10 @@ index ba7cd04b33fcaea7e7cea43b5929df56e130bf3f..72c769d627779224091660c44ccd2ba4
while (objectbidirectionaliterator.hasNext()) {
Entry<ChunkHolder> entry = (Entry) objectbidirectionaliterator.next();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 25ab3a26a46b592f0953047ecafed4733f037cd1..9c3a728b42fb18bb39377cf34e59add2c4cce73c 100644
index f7d94cb32a178247bbc5f59e5bc31e79f9fcdc4d..ac41bc23d2f7e16bbacdc9b33fcf6c0d706fa023 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -149,7 +149,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -151,7 +151,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public int getTileEntityCount() {
// We don't use the full world tile entity list, so we must iterate chunks
@ -187,7 +187,7 @@ index 25ab3a26a46b592f0953047ecafed4733f037cd1..9c3a728b42fb18bb39377cf34e59add2
int size = 0;
for (ChunkHolder playerchunk : chunks.values()) {
net.minecraft.world.level.chunk.LevelChunk chunk = playerchunk.getTickingChunk();
@@ -170,7 +170,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -172,7 +172,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public int getChunkCount() {
int ret = 0;
@ -196,7 +196,7 @@ index 25ab3a26a46b592f0953047ecafed4733f037cd1..9c3a728b42fb18bb39377cf34e59add2
if (chunkHolder.getTickingChunk() != null) {
++ret;
}
@@ -344,7 +344,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -346,7 +346,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public Chunk[] getLoadedChunks() {
@ -216,3 +216,12 @@ index 25ab3a26a46b592f0953047ecafed4733f037cd1..9c3a728b42fb18bb39377cf34e59add2
return chunks.values().stream().map(ChunkHolder::getFullChunk).filter(Objects::nonNull).map(net.minecraft.world.level.chunk.LevelChunk::getBukkitChunk).toArray(Chunk[]::new);
}
@@ -422,7 +433,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean refreshChunk(int x, int z) {
- ChunkHolder playerChunk = this.world.getChunkSource().chunkMap.visibleChunkMap.get(ChunkPos.asLong(x, z));
+ ChunkHolder playerChunk = this.world.getChunkSource().chunkMap.updatingChunks.getVisibleMap().get(ChunkPos.asLong(x, z));
if (playerChunk == null) return false;
playerChunk.getTickingChunkFuture().thenAccept(either -> {

View file

@ -21613,7 +21613,7 @@ index 0000000000000000000000000000000000000000..967ad1186cbc81a76a4958ea99d4eff3
+ }
+}
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
index e490116a75c5a07e501339ca5e299fb425af84f4..2df7f532e445cb5d5813d6f80bf5b208ec2b7681 100644
index d44154ba43e06934d7889f2f20d1a27765504574..f8167882a0f11c6fff86e494800864ecf59bb8b5 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
@@ -78,7 +78,7 @@ public class ChunkStorage implements AutoCloseable {
@ -21634,8 +21634,8 @@ index e490116a75c5a07e501339ca5e299fb425af84f4..2df7f532e445cb5d5813d6f80bf5b208
if (nbttagcompound.getCompound("Level").getBoolean("hasLegacyStructureData")) {
synchronized (this.persistentDataLock) { // Paper - Async chunk loading
if (this.legacyStructureHandler == null) {
@@ -103,7 +103,7 @@ public class ChunkStorage implements AutoCloseable {
}
@@ -112,7 +112,7 @@ public class ChunkStorage implements AutoCloseable {
// Spigot end
ChunkStorage.injectDatafixingContext(nbttagcompound, resourcekey, optional);
- nbttagcompound = NbtUtils.update(this.fixerUpper, DataFixTypes.CHUNK, nbttagcompound, Math.max(1493, i));

@ -1 +1 @@
Subproject commit 716b4fce8443809ed39119dbffdd21c04fcea04a
Subproject commit c9b35cdb66761dfbda6f0b860bdb3c2edfda8679

@ -1 +1 @@
Subproject commit 806bb02c177d08d9e2687897487f8e9b767a9ecf
Subproject commit c86a3f7a5877acb5406147923ac48d91c2f6e7d4

@ -1 +1 @@
Subproject commit b7a4222eac8fe8634946023cbba965187f568d07
Subproject commit 7514aa374a331a548a45673de71e557a96125eda