Skip to content
  •  
  •  
  •  
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ subprojects {
}

repositories {
mavenLocal()
mavenCentral()
maven(paperMavenPublicUrl)
}
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ apiVersion=26.1.2
channel=STABLE

# Set to true while updating Minecraft version
updatingMinecraft=false
updatingMinecraft=true

org.gradle.configuration-cache=true
org.gradle.caching=true
Expand Down
8 changes: 6 additions & 2 deletions paper-server/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import io.papermc.fill.model.BuildChannel
import io.papermc.paperweight.attribute.DevBundleOutput
import io.papermc.paperweight.core.tasks.patchroulette.AbstractPatchRouletteTask
import io.papermc.paperweight.util.*
import java.time.Instant

Expand All @@ -14,16 +15,19 @@ plugins {
val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/"

dependencies {
mache("io.papermc:mache:26.1.2+build.1")
mache("io.papermc:mache:26.1.2+build.local-SNAPSHOT")
paperclip("io.papermc:paperclip:3.0.4")
}
tasks.withType<AbstractPatchRouletteTask>().configureEach {
endpoint = "http://127.0.0.1:8080/api"
}

paperweight {
minecraftVersion = providers.gradleProperty("mcVersion")
gitFilePatches = false

updatingMinecraft {
// oldPaperCommit = "7e80cef5198561d0db53406127e5b8bc7af51577"
oldPaperCommit = "711c5de2b05df39b72c44ff54e9f9381f8d153cb"
}
}

Expand Down
2,094 changes: 1,035 additions & 1,059 deletions paper-server/patches/features/0001-Moonrise-optimisation-patches.patch

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -33491,7 +33491,7 @@ index 109d7b563ee799d998a5773c5a36e61ca3607d46..747755082639436731989d3ee4b3c30a
return structureTemplate.save(new CompoundTag());
}
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index e11862c7e0617acfb36212cfe349bdade3a5164b..7ae2d491a3b2f379df99ccc649b8bb8cbf2304b9 100644
index c809ea1f2620c543d9bc80afdd64489f2fb98744..49be7709026cd75cfcb31715550387f0ba954a16 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -299,6 +299,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
Expand All @@ -33503,18 +33503,18 @@ index e11862c7e0617acfb36212cfe349bdade3a5164b..7ae2d491a3b2f379df99ccc649b8bb8c
Thread thread = new ca.spottedleaf.moonrise.common.util.TickThread(() -> serverReference.get().runServer(), "Server thread");
thread.setUncaughtExceptionHandler((t, e) -> LOGGER.error("Uncaught exception in server thread", e));
diff --git a/net/minecraft/world/level/chunk/storage/SimpleRegionStorage.java b/net/minecraft/world/level/chunk/storage/SimpleRegionStorage.java
index c206c74acc80c281d06a669eb668239dc61018eb..884fa9545a93008fa92863c845aef8f18d88e25a 100644
index 4346f3bace176e09d9ffb02e9af29a1281071e2a..df4f03f3a346e0ab0074757b3a077b2407135ac3 100644
--- a/net/minecraft/world/level/chunk/storage/SimpleRegionStorage.java
+++ b/net/minecraft/world/level/chunk/storage/SimpleRegionStorage.java
@@ -99,7 +99,7 @@ public class SimpleRegionStorage implements ca.spottedleaf.moonrise.patches.chun
}
// Spigot end
injectDatafixingContext(chunkTag, dataFixContextTag);
- chunkTag = this.dataFixType.update(this.fixerUpper, chunkTag, version, targetVersion);
+ chunkTag = ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(this.getDataConverterType(), chunkTag, version, targetVersion); // Paper - rewrite dataconverter system
// Spigot start
if (stopBelowZero) {
chunkTag.putString("Status", net.minecraft.core.registries.BuiltInRegistries.CHUNK_STATUS.getKey(net.minecraft.world.level.chunk.status.ChunkStatus.SPAWN).toString());
@@ -100,7 +100,7 @@ public class SimpleRegionStorage implements ca.spottedleaf.moonrise.patches.chun
}
// Spigot end
injectDatafixingContext(chunkTag, dataFixContextTag);
- chunkTag = this.dataFixType.update(this.fixerUpper, chunkTag, version, targetVersion);
+ chunkTag = ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(this.getDataConverterType(), chunkTag, version, targetVersion); // Paper - rewrite dataconverter system
// Spigot start
if (stopBelowZero) {
chunkTag.putString("Status", net.minecraft.core.registries.BuiltInRegistries.CHUNK_STATUS.getKey(net.minecraft.world.level.chunk.status.ChunkStatus.SPAWN).toString());
@@ -118,6 +118,20 @@ public class SimpleRegionStorage implements ca.spottedleaf.moonrise.patches.chun
}
}
Expand All @@ -33537,23 +33537,23 @@ index c206c74acc80c281d06a669eb668239dc61018eb..884fa9545a93008fa92863c845aef8f1
return this.upgradeChunkTag(chunkTag, defaultVersion, null, SharedConstants.getCurrentVersion().dataVersion().version());
}
diff --git a/net/minecraft/world/level/levelgen/structure/StructureCheck.java b/net/minecraft/world/level/levelgen/structure/StructureCheck.java
index 2ab055d5cdfb1e2e7cfb6f8a769c3d571acb2861..a45da98735045d55d3da14271c9bbb7a37f3151c 100644
index cba5c9ea5fd424e7aaeefaa8cc5ffe37f307b370..ce7856fa3b0f48099d09057bb44ce95a42367301 100644
--- a/net/minecraft/world/level/levelgen/structure/StructureCheck.java
+++ b/net/minecraft/world/level/levelgen/structure/StructureCheck.java
@@ -161,7 +161,7 @@ public class StructureCheck {
@@ -163,7 +163,7 @@ public class StructureCheck {

CompoundTag fixedChunkTag;
try {
- fixedChunkTag = DataFixTypes.CHUNK.updateToCurrentVersion(this.fixerUpper, chunkTag, version);
+ fixedChunkTag = ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.CHUNK, chunkTag, version, ca.spottedleaf.dataconverter.minecraft.util.Version.getCurrentVersion()); // Paper - replace chunk converter
} catch (Exception var12) {
LOGGER.warn("Failed to partially datafix chunk {}", pos, var12);
} catch (Exception e) {
LOGGER.warn("Failed to partially datafix chunk {}", pos, e);
return StructureCheckResult.CHUNK_LOAD_NEEDED;
diff --git a/net/minecraft/world/level/levelgen/structure/templatesystem/loader/TemplateSource.java b/net/minecraft/world/level/levelgen/structure/templatesystem/loader/TemplateSource.java
index 780a3eb08b7fb2c385c8e75e2e5f02a9d67297f4..2c7e4a6288f0c7101755de4be8f14449cdc4e01e 100644
index e61076a9ff3d9bce5c44e548158716db105db3ee..fe1500ebbfb09bef18989c891a19608ec9d4661c 100644
--- a/net/minecraft/world/level/levelgen/structure/templatesystem/loader/TemplateSource.java
+++ b/net/minecraft/world/level/levelgen/structure/templatesystem/loader/TemplateSource.java
@@ -79,7 +79,7 @@ public abstract class TemplateSource {
@@ -71,7 +71,7 @@ public abstract class TemplateSource {
public StructureTemplate readStructure(final CompoundTag tag) {
StructureTemplate structureTemplate = new StructureTemplate();
int version = NbtUtils.getDataVersion(tag, 500);
Expand All @@ -33563,7 +33563,7 @@ index 780a3eb08b7fb2c385c8e75e2e5f02a9d67297f4..2c7e4a6288f0c7101755de4be8f14449
}
}
diff --git a/net/minecraft/world/level/storage/PlayerDataStorage.java b/net/minecraft/world/level/storage/PlayerDataStorage.java
index 41cbb27861f33ad8d7523f3b2fef9a30a69693a9..c5898bfb8b4f075b08090cba2e9f980174e0a326 100644
index 8eda63e1f07f7998875713447c5f39eea3f85ca4..eddb6ebe3fa50a818e54079b73ba117be0abd195 100644
--- a/net/minecraft/world/level/storage/PlayerDataStorage.java
+++ b/net/minecraft/world/level/storage/PlayerDataStorage.java
@@ -98,7 +98,7 @@ public class PlayerDataStorage {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ and then catch exceptions and close if they fire.
Part of this commit was authored by: Spottedleaf, sandtechnology

diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java
index 1511cbd2e6123a00d22694353ee4989d539fe0f0..104976b3eb04d80e5be5bd020cf16c647b1cde27 100644
index 13faa13a9d3120cdeaca63d6eb3a0feb8019fb3a..d14aea970ce98edfe3dc3692e707334e7e150804 100644
--- a/net/minecraft/network/Connection.java
+++ b/net/minecraft/network/Connection.java
@@ -65,7 +65,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -64,7 +64,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
private static final ProtocolInfo<ServerHandshakePacketListener> INITIAL_PROTOCOL = HandshakeProtocols.SERVERBOUND;
private final PacketFlow receiving;
private volatile boolean sendLoginDisconnect = true;
Expand All @@ -40,7 +40,7 @@ index 1511cbd2e6123a00d22694353ee4989d539fe0f0..104976b3eb04d80e5be5bd020cf16c64
public Channel channel;
public SocketAddress address;
// Spigot start
@@ -124,6 +124,10 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -123,6 +123,10 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
public boolean handledLegacyLoginEvent; // Paper - playerloginevent
public net.minecraft.server.level.@Nullable ServerPlayer savedPlayerForLegacyEvents; // Paper - playerloginevent & PlayerSpawnLocationEvent
public org.bukkit.event.player.PlayerResourcePackStatusEvent.@Nullable Status resourcePackStatus; // Paper
Expand All @@ -51,7 +51,7 @@ index 1511cbd2e6123a00d22694353ee4989d539fe0f0..104976b3eb04d80e5be5bd020cf16c64

public Connection(final PacketFlow receiving) {
this.receiving = receiving;
@@ -394,11 +398,38 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -392,11 +396,38 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
}

public void send(final Packet<?> packet, final @Nullable ChannelFutureListener listener, final boolean flush) {
Expand Down Expand Up @@ -93,7 +93,7 @@ index 1511cbd2e6123a00d22694353ee4989d539fe0f0..104976b3eb04d80e5be5bd020cf16c64
}
}

@@ -407,7 +438,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -405,7 +436,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
this.flushQueue();
action.accept(this);
} else {
Expand All @@ -102,7 +102,7 @@ index 1511cbd2e6123a00d22694353ee4989d539fe0f0..104976b3eb04d80e5be5bd020cf16c64
}
}

@@ -421,21 +452,42 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -419,21 +450,42 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
}

private void doSendPacket(final Packet<?> packet, final @Nullable ChannelFutureListener listener, final boolean flush) {
Expand Down Expand Up @@ -149,7 +149,7 @@ index 1511cbd2e6123a00d22694353ee4989d539fe0f0..104976b3eb04d80e5be5bd020cf16c64
}
}

@@ -447,16 +499,57 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -445,16 +497,57 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
}
}

Expand Down Expand Up @@ -212,15 +212,15 @@ index 1511cbd2e6123a00d22694353ee4989d539fe0f0..104976b3eb04d80e5be5bd020cf16c64

private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world
private static int joinAttemptsThisTick; // Paper - Buffer joins to world
@@ -526,6 +619,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -524,6 +617,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {

public void disconnect(final DisconnectionDetails details) {
this.preparing = false; // Spigot
+ this.clearPacketQueue(); // Paper - Optimize network
if (this.channel == null) {
this.delayedDisconnect = details;
}
@@ -715,7 +809,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -705,7 +799,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
public void handleDisconnection() {
if (this.channel != null && !this.channel.isOpen()) {
if (this.disconnectionHandled) {
Expand All @@ -229,7 +229,7 @@ index 1511cbd2e6123a00d22694353ee4989d539fe0f0..104976b3eb04d80e5be5bd020cf16c64
} else {
this.disconnectionHandled = true;
PacketListener packetListener = this.getPacketListener();
@@ -726,7 +820,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -716,7 +810,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
);
disconnectListener.onDisconnect(details);
}
Expand All @@ -238,7 +238,7 @@ index 1511cbd2e6123a00d22694353ee4989d539fe0f0..104976b3eb04d80e5be5bd020cf16c64
// Paper start - Add PlayerConnectionCloseEvent
if (packetListener instanceof net.minecraft.server.network.ServerCommonPacketListenerImpl commonPacketListener) {
/* Player was logged in, either game listener or configuration listener */
@@ -761,4 +855,96 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -751,4 +845,96 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
public void setBandwidthLogger(final LocalSampleLogger bandwidthLogger) {
this.bandwidthDebugMonitor = new BandwidthDebugMonitor(bandwidthLogger);
}
Expand Down Expand Up @@ -372,10 +372,10 @@ index 1480d0db90f5797e3dee19503e52d1e783493ac3..bd76e55ea56dd7c1e232806d1d13a747
+ // Paper end
}
diff --git a/net/minecraft/server/network/ServerConnectionListener.java b/net/minecraft/server/network/ServerConnectionListener.java
index 387ac8a4e67ef07df73ce98d0add0937314ee497..9ae7c79e5088d9e1e3fb7e0dca00bb15fee118b6 100644
index 77e1c02b74c1f6597fbb5a457bf463fe52de019e..6d506004583b2415ab356e34e2f8d6ac0e39cca2 100644
--- a/net/minecraft/server/network/ServerConnectionListener.java
+++ b/net/minecraft/server/network/ServerConnectionListener.java
@@ -52,11 +52,13 @@ public class ServerConnectionListener {
@@ -51,11 +51,13 @@ public class ServerConnectionListener {

// Paper start - prevent blocking on adding a new connection while the server is ticking
private final java.util.Queue<Connection> pending = new java.util.concurrent.ConcurrentLinkedQueue<>();
Expand All @@ -389,7 +389,7 @@ index 387ac8a4e67ef07df73ce98d0add0937314ee497..9ae7c79e5088d9e1e3fb7e0dca00bb15
}
}
// Paper end - prevent blocking on adding a new connection while the server is ticking
@@ -92,6 +94,7 @@ public class ServerConnectionListener {
@@ -87,6 +89,7 @@ public class ServerConnectionListener {
} catch (ChannelException var5) {
}

Expand Down
Loading
Loading