Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33878,7 +33878,7 @@ index 0000000000000000000000000000000000000000..863a9785c84af6e0c961ae32f0102b5d
+ }
+}
diff --git a/ca/spottedleaf/moonrise/paper/PaperHooks.java b/ca/spottedleaf/moonrise/paper/PaperHooks.java
index 7bb2210f2fea91b3f611a58d39a57279200abeb0..4a62c50d0b4fe82c3aacaa56b303b9699120c778 100644
index 7050fd6efb6fec16ba5657e254c54de1c671c9a0..aa14dd369d5d2c5c843839f289afdc39c200f0c3 100644
--- a/ca/spottedleaf/moonrise/paper/PaperHooks.java
+++ b/ca/spottedleaf/moonrise/paper/PaperHooks.java
@@ -216,6 +216,11 @@ public final class PaperHooks extends BaseChunkSystemHooks implements PlatformHo
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ index f74837dc0be560a1601132594587bcfc22dcf778..c5a212e73c2efeb1f440778cb3f1fa6e
public void tick() {
super.tick();
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index c9e0b378db4ca7efa018d5e9150f1c1372373f29..9601774a31012da7ec852a39a058b41b064a282a 100644
index a13d64459e93ad33ae23e5d39e06f4c0783cbf27..48349eda979e641968142e1f06227445e72f62e5 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -388,6 +388,15 @@ public abstract class Entity
Expand Down Expand Up @@ -541,7 +541,7 @@ index afbf91722c5f0d0d3d1d075d544feaf0aa187fe2..f332edbc4dad82cbdc02a58aa9ec21fa
public void tick() {
super.tick();
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index e1a0eab8bfdda1b68bcb2db0e5c21d6e94d1fd0c..078054c499e7b29d64543f92c1808b5623e3c8e5 100644
index 554827d60aebf2a538cda9d6c96ed17aea2974b3..51dec65d0f437deb370eabbfa0369c4232caac14 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -217,6 +217,20 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2321,7 +2321,7 @@ index 0000000000000000000000000000000000000000..505b5e39d0b4cf2a56c1c720f0c9ab01
+ }
+}
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 7fa69d76bf2c802b538a21af40898b8abb79629e..d9daa3ea8c4dc21bbe0d0ea9f0ece3f6c6777ba4 100644
index bc2bacabb588bd6a644ac5226720c7451ac0e475..e4d38cfdac2b926afae3b1b96679b6ce45ea256a 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -238,6 +238,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ServerEntityGet
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ index 255e01251005a547088aba437ca27ce06fc996e5..487fcb8546ad24125c6573fb84f22a02
ProfilerFiller profiler = Profiler.get();
this.server.spark.executeMainThreadTasks(); // Paper - spark
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index d9daa3ea8c4dc21bbe0d0ea9f0ece3f6c6777ba4..279614d017877ea2ba7c216b9cc874065f5e384d 100644
index e4d38cfdac2b926afae3b1b96679b6ce45ea256a..ca793f3f7300148cd55d2e873af5b43d9f4c708f 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -1470,6 +1470,15 @@ public class ServerLevel extends Level implements WorldGenLevel, ServerEntityGet
Expand All @@ -103,7 +103,7 @@ index d9daa3ea8c4dc21bbe0d0ea9f0ece3f6c6777ba4..279614d017877ea2ba7c216b9cc87406
public void save(final @Nullable ProgressListener progressListener, final boolean flush, final boolean noSave) {
// Paper start - add close param
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 194a91a2e2d9aa25f62c8a6058bc6d13a42243f5..cbd379d29d2b90b2b6fca8cd42301d12598760a8 100644
index 576619ccf1f67aca9e5fdaecc68435ef96bb4c84..758df74a454f2aa6fbcc6136767be6d01387dfee 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -212,6 +212,7 @@ import org.slf4j.Logger;
Expand All @@ -115,7 +115,7 @@ index 194a91a2e2d9aa25f62c8a6058bc6d13a42243f5..cbd379d29d2b90b2b6fca8cd42301d12
private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10;
private static final int FLY_STAT_RECORDING_SPEED = 25;
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index b5c7affd9ac2f071992e5621a1cf3dfd335930b1..f4e2261a0ffb1d763c1e6a7b353b181178434471 100644
index 010c6c7e9bf59408bdac22a01f05fe2e8fbafe41..459dd3ae3c9a1c303b8c4f6606d4d2f81c2a532c 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -417,6 +417,7 @@ public abstract class PlayerList {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ index 487fcb8546ad24125c6573fb84f22a02752b35f1..b675e9322234761a69e71e9e8b9d4136
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.ADVENTURE_CLICK_MANAGER.handleQueue(this.tickCount); // Paper
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.DIALOG_CLICK_MANAGER.handleQueue(this.tickCount); // Paper
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 9601774a31012da7ec852a39a058b41b064a282a..cf3619b6de23f32e9e5a81fbe287fb438ecfcabc 100644
index 48349eda979e641968142e1f06227445e72f62e5..47b92ca95e423600040dfdff6b8b09891f15e10c 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -5383,6 +5383,11 @@ public abstract class Entity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Subject: [PATCH] Remove debug-like logging


diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index b84690962b9f797f95778a7ecbe0c4e398643643..8305d15e8510c09e4a3cdaa78ff1f96a620fc940 100644
index c2496d0a0e39388a6dd516d23d897e2066ac8643..bdfb22137b5795fbf3a1094cdd5d165e9a9dd418 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1760,7 +1760,7 @@ public class ServerGamePacketListenerImpl
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -832,7 +832,7 @@ index 84a92dc868e61969460dddb156af332e6384bcd1..3fef98e8c3c9908c6f05ded33596cbcb
tag.putString("Status", BuiltInRegistries.CHUNK_STATUS.getKey(this.chunkStatus).toString());
tag.storeNullable("blending_data", BlendingData.Packed.CODEC, this.blendingData);
diff --git a/net/minecraft/world/level/chunk/storage/SimpleRegionStorage.java b/net/minecraft/world/level/chunk/storage/SimpleRegionStorage.java
index df4f03f3a346e0ab0074757b3a077b2407135ac3..0b0265c8d4cb70aef758c1b443d007ef8d6c282b 100644
index cdbe291d2053239e3b8dd0042dfb475306a6b6e5..12ac13394fc38f089be0ad7731eb4ea9487e1d17 100644
--- a/net/minecraft/world/level/chunk/storage/SimpleRegionStorage.java
+++ b/net/minecraft/world/level/chunk/storage/SimpleRegionStorage.java
@@ -34,6 +34,7 @@ public class SimpleRegionStorage implements ca.spottedleaf.moonrise.patches.chun
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Subject: [PATCH] Optimise collision checking in player move packet handling
Move collision logic to just the hasNewCollision call instead of getCubes + hasNewCollision

diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 8305d15e8510c09e4a3cdaa78ff1f96a620fc940..cc0d455f88bc7c5798ea27abfaa3333c2656eb92 100644
index bdfb22137b5795fbf3a1094cdd5d165e9a9dd418..2f293c035f137e5bfbf9e392fe0c4ad5711baf06 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -647,6 +647,7 @@ public class ServerGamePacketListenerImpl
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ index 2dc8b94c434e841b319ef5b77bd725fd66f3c10b..a5540612a4052d9e9d8b1b0ac3c15917
profiler.popPush("tickSpawningChunks");

diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 2cf8854636df72c1dccbb73dfe8f642dfdf1ea37..99403edc1eda1e238b66028b7d236e5fceb235a1 100644
index 758df74a454f2aa6fbcc6136767be6d01387dfee..993112707cb4e5a6d1fc162889a31f4c697695a9 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -422,6 +422,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ index a5540612a4052d9e9d8b1b0ac3c1591777f26caa..c4cfb53e145d69666ffc27ef4ee0c50b
spawnCookie = NaturalSpawner.createState(chunkCount, this.level, this::getFullChunk, null, true);
} else {
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 99403edc1eda1e238b66028b7d236e5fceb235a1..23b3a82ab3e1c6abc85000d9285470cb12300a6b 100644
index 993112707cb4e5a6d1fc162889a31f4c697695a9..56ee7ed4bdedbc5f7d12b9ccd547ff3984158b1d 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -426,6 +426,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Subject: [PATCH] DataConverter, Moonrise & co fixes


diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index cc0d455f88bc7c5798ea27abfaa3333c2656eb92..e24c7e2db785bce4a8801373d8e2bcd25477dbb6 100644
index 2f293c035f137e5bfbf9e392fe0c4ad5711baf06..ee455011ff5d35466c1ee2f720c03ecef8d5237a 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1856,9 +1856,14 @@ public class ServerGamePacketListenerImpl
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Subject: [PATCH] Pre-load data off-main during startup


diff --git a/net/minecraft/server/Main.java b/net/minecraft/server/Main.java
index c22cc4387e7cc5da7d38ee14ed7f187b5d9507f4..aa7f2ba4d931f98ce15c52dc2b99f07504149582 100644
index b515d8be0e2f0639f7fc843d6ce074b0a583c673..984cf7143e3809507c557e0e70ab271b753db235 100644
--- a/net/minecraft/server/Main.java
+++ b/net/minecraft/server/Main.java
@@ -102,7 +102,10 @@ public class Main {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@

WorldStem worldStem;
try {
@@ -169,17 +_,31 @@
@@ -169,17 +_,40 @@
executor -> WorldLoader.load(
worldLoadConfig,
context -> {
Expand All @@ -161,8 +161,16 @@
+ }
+ // Paper end - migrate startup world
LevelDataAndDimensions worldData = LevelStorageSource.getLevelDataAndDimensions(
- access, levelDataTag, context.dataConfiguration(), datapackDimensions, context.datapackWorldRegistries()
+ access, levelDataTag, context.dataConfiguration(), datapackDimensions, context.datapackWorldRegistries(), net.minecraft.world.level.Level.OVERWORLD // Paper
access, levelDataTag, context.dataConfiguration(), datapackDimensions, context.datapackWorldRegistries()
+ // Paper start - pass dimension and recover missing world gen settings
+ , net.minecraft.world.level.Level.OVERWORLD
+ , () -> {
+ final DedicatedServerProperties properties = settings.getProperties();
+ return new WorldGenSettings(
+ properties.worldOptions, properties.createDimensions(context.datapackWorldRegistries())
+ );
+ }
+ // Paper end - pass dimension and recover missing world gen settings
);
return new WorldLoader.DataLoadOutput<>(
worldData.worldDataAndGenSettings(), worldData.dimensions().dimensionsRegistryAccess()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,32 @@
--- a/net/minecraft/world/level/storage/LevelStorageSource.java
+++ b/net/minecraft/world/level/storage/LevelStorageSource.java
@@ -145,13 +_,14 @@
@@ -145,21 +_,48 @@
final WorldDataConfiguration dataConfiguration,
final Registry<LevelStem> datapackDimensions,
final HolderLookup.Provider registryAccess
- ) {
+ , final ResourceKey<Level> dimension // Paper - pass dimension
) {
+ ) {
+ // Paper start - Recover missing overworld world gen settings
+ return getLevelDataAndDimensions(worldAccess, levelDataTag, dataConfiguration, datapackDimensions, registryAccess, dimension, () -> {
+ // Preserve dimension settings if we got them from the datapack
+ WorldDimensions defaultDimensions = datapackDimensions.containsKey(LevelStem.OVERWORLD)
+ ? new WorldDimensions(datapackDimensions)
+ : net.minecraft.world.level.levelgen.presets.WorldPresets.createNormalWorldDimensions(registryAccess);
+ return new WorldGenSettings(WorldOptions.defaultWithRandomSeed(), defaultDimensions);
+ });
+ }
+
+ public static LevelDataAndDimensions getLevelDataAndDimensions(
+ final LevelStorageSource.LevelStorageAccess worldAccess,
+ final Dynamic<?> levelDataTag,
+ final WorldDataConfiguration dataConfiguration,
+ final Registry<LevelStem> datapackDimensions,
+ final HolderLookup.Provider registryAccess,
+ final ResourceKey<Level> dimension,
+ final java.util.function.Supplier<WorldGenSettings> worldGenSettingsFactory
+ ) {
+ // Paper end - Recover missing overworld world gen settings
if (DataFixers.getFileFixer().requiresFileFixing(NbtUtils.getDataVersion(levelDataTag))) {
throw new IllegalStateException("Cannot get level data without file fixing first");
}
Expand All @@ -16,6 +37,24 @@
.mapOrElse(
Function.identity(),
error -> {
- LOGGER.error(
- "Unable to read or access the world gen settings file! Falling back to the default settings with a random world seed. {}",
- error.message()
+ // Paper start - Recover missing overworld world gen settings
+ Path dataLocation = WorldGenSettings.TYPE.id().withSuffix(".dat").resolveAgainst(worldAccess.getDimensionPath(dimension).resolve(LevelResource.DATA.id()));
+ if (!Files.notExists(dataLocation, java.nio.file.LinkOption.NOFOLLOW_LINKS)) {
+ throw new IllegalStateException("Unable to read or access the world gen settings file " + dataLocation + ". " + error.message());
+ }
+ LOGGER.warn(
+ "World gen settings file is missing! Recreating settings from server.properties: {}",
+ dataLocation
);
- return new WorldGenSettings(WorldOptions.defaultWithRandomSeed(), new WorldDimensions(datapackDimensions));
+ return worldGenSettingsFactory.get();
+ // Paper end - Recover missing overworld world gen settings
}
);
LevelSettings settings = LevelSettings.parse(dataTag, dataConfiguration);
@@ -170,9 +_,9 @@
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,9 @@ private void loadInitialWorld(final LevelStem stem, final boolean hasWorldData)
return;
}

final WorldGenSettings worldGenSettings = !hasWorldData
final boolean isOverworldLevel = loading.info().dimensionKey() == Level.OVERWORLD;

final WorldGenSettings worldGenSettings = isOverworldLevel || !hasWorldData
? this.server.getWorldGenSettings()
: loadWorldGenSettings(
this.server.storageSource,
Expand All @@ -153,7 +155,7 @@ private void loadInitialWorld(final LevelStem stem, final boolean hasWorldData)
);
final var worldDataAndGenSettings = new LevelDataAndDimensions.WorldDataAndGenSettings(this.server.getWorldData(), worldGenSettings);

if (loading.info().dimensionKey() == Level.OVERWORLD) {
if (isOverworldLevel) {
final var primaryLevelData = ((PrimaryLevelData) this.server.getWorldData());
primaryLevelData.checkName(loading.data().bukkitName());
primaryLevelData.setModdedInfo(this.server.getServerModName(), this.server.getModdedStatus().shouldReportAsModified());
Expand Down
Loading