Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@44259ea5 Add ResolvableProfile.SkinPatch (#13091)
PaperMC/Paper@634f51e3 Update to 1.21.9-pre4
PaperMC/Paper@fada3a7f Update DataConverter to 1.21.9-pre4
PaperMC/Paper@037179fa Update Starlight stored version
This commit is contained in:
granny
2025-09-23 20:52:54 -07:00
parent 13906fa688
commit d72168f5c9
8 changed files with 39 additions and 39 deletions

View File

@@ -1,8 +1,8 @@
group = org.purpurmc.purpur
version = 1.21.9-pre3-R0.1-SNAPSHOT
version = 1.21.9-pre4-R0.1-SNAPSHOT
mcVersion = 1.21.9-pre3
paperCommit = e6f14832db9576c510901c23235dbb5948e94dc8
mcVersion = 1.21.9-pre4
paperCommit = 037179fa883eccb48e6676d69dea8ba0cfbbbbbe
org.gradle.configuration-cache = true
org.gradle.caching = true

View File

@@ -18,10 +18,10 @@ index aa87e93ade4c25a575e7861fef45b70c3e4e3aeb..c92ffd8b2fe4945ccd552eb54154b7be
public boolean isClientAuthoritative() {
return false;
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 82264fe70854c26150b9afc9109f14c49d78fe2f..c5aa594105b196731ab822d9c1e600fa62db3417 100644
index bda13adaa9716ed70a7776202dfe58dba0538b8f..1d03d8e11513c59a1dfc2aa1965412cb7db88413 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1682,6 +1682,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1683,6 +1683,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
serverLevel.updateLagCompensationTick(); // Paper - lag compensation
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = serverLevel.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
@@ -30,7 +30,7 @@ index 82264fe70854c26150b9afc9109f14c49d78fe2f..c5aa594105b196731ab822d9c1e600fa
/* Drop global time updates
if (this.tickCount % 20 == 0) {
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 99675de85425149da8603d0f0de1c3d529e082b0..3886b032e84fe549df7969443dba7a28574af320 100644
index a54eb6e9c98523715164507023aebfb1e1e8696c..e524d80242ed6aac79854c43b68adef9b05473c8 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -224,6 +224,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -42,7 +42,7 @@ index 99675de85425149da8603d0f0de1c3d529e082b0..3886b032e84fe549df7969443dba7a28
@Override
public @Nullable LevelChunk getChunkIfLoaded(int x, int z) {
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index cc362e5a6afa88dcac5eb156af8235e4304a0104..b329ac34ff7fb9fa15daca26e0d2593e2db59a6f 100644
index abdf441ee5ac0586afe7ca60066163e64fb6a5fc..b405e129cb2a5dba3ea4db29823e8f6964255f3b 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -774,6 +774,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -62,7 +62,7 @@ index cc362e5a6afa88dcac5eb156af8235e4304a0104..b329ac34ff7fb9fa15daca26e0d2593e
private void updatePlayerAttributes() {
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index e8028cec76d88822be6c80b38ebde0f35bd781dd..99671cd67df748feb3c2d8b0219619ede8b3dbe4 100644
index 3c5c7006dc68377a97682b1e73e5b45cface045c..726f2d5471cf536b1ba042dcb7f0120f8526d1d5 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2862,6 +2862,8 @@ public class ServerGamePacketListenerImpl
@@ -75,7 +75,7 @@ index e8028cec76d88822be6c80b38ebde0f35bd781dd..99671cd67df748feb3c2d8b0219619ed
if (itemType == Items.WATER_BUCKET && target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && resendData) {
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 18c9409c152468f3914939cad9145a094947eb6b..0dc4962cae6fa15b4cfbfa2938e271f5303cf2bb 100644
index e7a2d579ab6b2eeacc34da01c8bb9f7c0d224221..ef77be60df1cf44088e684c21dbcaf3032bb3ad6 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -3357,6 +3357,13 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
@@ -177,7 +177,7 @@ index f0c452ddc4b299a930de261722cc41a89aa78eeb..8e8ddab59de508c84c4182e105a11554
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 4a91c94d817c3fb9a8fda98eb448f2a6d44030d8..8ae8c9e2f0447634b2a4b0dc1662cd0feb00518f 100644
index 59e6a2c3e1a02b8778fb31e49fdc19fa14594085..634c8ee07d27985743d2b8774ed923f0ff63dca2 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -239,9 +239,9 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -267,7 +267,7 @@ index 4a91c94d817c3fb9a8fda98eb448f2a6d44030d8..8ae8c9e2f0447634b2a4b0dc1662cd0f
// Paper end - Add EntityMoveEvent
if (this.level() instanceof ServerLevel serverLevel && this.isSensitiveToWater() && this.isInWaterOrRain()) {
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index 8b84ca3de8f73cb3066c3b1df138ea85be2889cd..0ec11f0415bdb44d465c0e57c676eb73c8183be0 100644
index 73c110a04f17141e6331d5c518780fc5122f2bc3..2bef2cd10447f41d5fc4c37eb574ce32fc2386ab 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -156,8 +156,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -291,7 +291,7 @@ index 8b84ca3de8f73cb3066c3b1df138ea85be2889cd..0ec11f0415bdb44d465c0e57c676eb73
protected void usePlayerItem(Player player, InteractionHand hand, ItemStack stack) {
@@ -1673,4 +1673,58 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
registration.register(DebugSubscriptions.BRAINS, () -> DebugBrainDump.takeBrainDump(serverLevel, this));
registration.register(DebugSubscriptions.BRAINS, () -> DebugBrainDump.takeBrainDump(level, this));
}
}
+
@@ -617,7 +617,7 @@ index b18765bb91b4015bef326663dbc8966945929996..0002e39e2670ad92849ccc0aada163b1
double d = this.wantedX - this.fish.getX();
double d1 = this.wantedY - this.fish.getY();
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index 8cd9159ea562d7a8d89d6b85a0e08b54676167f5..aa90ba822ad00283d0347977f42078120aec7913 100644
index 924dbe3f82224ce4e68b9829c59586c2efda1781..3da697dfaef1880070ef61a3386adbf20d98e1a1 100644
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -152,6 +152,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -4166,7 +4166,7 @@ index 4e34833ea5c71b817c9f42a58320fe100981ec93..19dcc657fd2a995638d5e23c2b043d01
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
}
diff --git a/net/minecraft/world/entity/monster/Skeleton.java b/net/minecraft/world/entity/monster/Skeleton.java
index 4eb35a7a2dfcb4803c00e1e9179fea8186b15d41..028ec7c90e710182717ccd04ea7fb25042331dfd 100644
index 2661c73bb09e885d68ed57cbbeb9611fb990669e..bb7f93435168da4023ee07585e92192717881acc 100644
--- a/net/minecraft/world/entity/monster/Skeleton.java
+++ b/net/minecraft/world/entity/monster/Skeleton.java
@@ -25,6 +25,23 @@ public class Skeleton extends AbstractSkeleton {
@@ -4719,7 +4719,7 @@ index e320d34b8fb1e34408eff9f5be4e2e5b67c82942..e63328db6af1e2a52c9ebfeefbceda1a
}
diff --git a/net/minecraft/world/entity/monster/ZombieVillager.java b/net/minecraft/world/entity/monster/ZombieVillager.java
index b1a017dd4e6bca642f33534d93c681516a1439b8..4a64ae41f5fa1df735ca62444c2b7bab2a1f4a8d 100644
index 22a5c966feed50ebb9ed771f7e8a9cc59ac4d2bc..454e2795e04c7b7cac88f782df3dfb4200b192fc 100644
--- a/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -73,6 +73,23 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -5100,7 +5100,7 @@ index fa281aba7212be33d71d900564783ed23d4f8df5..10f2b2f96418b059c7f6b43e1f060b0c
if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading
this.setTradingPlayer(player);
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index 3bd072720a8f8ca124bf6eb61d2428317076c408..1e14640b74950ecd2abd0ae13a7c83fa6a318703 100644
index 2ce4e79966a8542896d8870e06b2364e182e512e..3c1641a906f301dbfb0f30a597479fb727f4639c 100644
--- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java
@@ -200,6 +200,19 @@ public abstract class Player extends Avatar implements ContainerUser {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index ac70293264dfcb9db0a0ca29f545be8e87cfa1b2..374c9007cc371d0dd0602dd5e8b5fdbbbcc925eb 100644
index b99b09118707ab94406fc0472420449e7e88f2ac..042861f45c7ee423614122387ac652d60dfc2852 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -929,6 +929,27 @@ public abstract class PlayerList {
@@ -931,6 +931,27 @@ public abstract class PlayerList {
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
this.server.getCommands().sendCommands(player);
} // Paper - Add sendOpLevel API
@@ -37,7 +37,7 @@ index ac70293264dfcb9db0a0ca29f545be8e87cfa1b2..374c9007cc371d0dd0602dd5e8b5fdbb
// Paper start - whitelist verify event / login event
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index 1e14640b74950ecd2abd0ae13a7c83fa6a318703..6a71ec21849b30dd3f0f1ad86ccb01ee472a55b7 100644
index 3c1641a906f301dbfb0f30a597479fb727f4639c..76d84cb829a7f9b88689986d04497fbfd9d65b87 100644
--- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java
@@ -182,6 +182,7 @@ public abstract class Player extends Avatar implements ContainerUser {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add mobGriefing override to everything affected
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index b1dcb5d8849a1b5e93b01f883f1519aaebba82da..de18e6ac0c4336b089a2c40660256488c9d042d5 100644
index a022ce7041c47c4d94679a3e322ca4f7486d77bf..7113d74f4684313d67d64a9449424c6e6243ce1f 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -1944,7 +1944,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -18,7 +18,7 @@ index b1dcb5d8849a1b5e93b01f883f1519aaebba82da..de18e6ac0c4336b089a2c40660256488
BlockState blockState = Blocks.WITHER_ROSE.defaultBlockState();
if (this.level().getBlockState(blockPos).isAir() && blockState.canSurvive(this.level(), blockPos)) {
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index 0ec11f0415bdb44d465c0e57c676eb73c8183be0..b43145dad28a5ee58eaa4559ac5bd462466c114d 100644
index 2bef2cd10447f41d5fc4c37eb574ce32fc2386ab..8f58641132231f450d0fb0c1fa61559c6cef8dcf 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -554,7 +554,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -268,10 +268,10 @@ index dd0ec97ea4561d2dccf735580faf0d65d6ac4b0d..779879f8d678a5e45e2752e6e033cc35
org.bukkit.event.entity.ExplosionPrimeEvent event = new org.bukkit.event.entity.ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity());
if (event.callEvent()) {
diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java
index 90c0e0a7574529846500e98494246974e836ad9a..0429da7bb95751673b608f5c63a997b09a47fe41 100644
index d538b1df2b07abd1c4257726891238696bf7a718..c0e83bbdcf3662bed498e0fe5a78d2b25c22a94e 100644
--- a/net/minecraft/world/entity/projectile/Projectile.java
+++ b/net/minecraft/world/entity/projectile/Projectile.java
@@ -430,7 +430,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
@@ -436,7 +436,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
@Override
public boolean mayInteract(ServerLevel level, BlockPos pos) {
Entity owner = this.getOwner();

View File

@@ -25,8 +25,8 @@
+ protected boolean upnp = false; // Purpur - UPnP Port Forwarding
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
AtomicReference<S> atomicReference = new AtomicReference<>();
@@ -927,6 +_,15 @@
ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system
@@ -928,6 +_,15 @@
LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
@@ -42,16 +42,16 @@
// CraftBukkit start
if (this.server != null) {
this.server.spark.disable(); // Paper - spark
@@ -1025,6 +_,8 @@
this.safeShutdown(waitForServer, false);
@@ -1026,6 +_,8 @@
this.safeShutdown(waitForShutdown, false);
}
public void safeShutdown(boolean waitForServer, boolean isRestarting) {
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
+ org.purpurmc.purpur.task.BossBarTask.stopAll(); // Purpur - Implement TPSBar
+ org.purpurmc.purpur.task.BeehiveTask.instance().unregister(); // Purpur - Give bee counts in beehives to Purpur clients
this.isRestarting = isRestarting;
this.hasLoggedStop = true; // Paper - Debugging
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
@@ -1044,6 +_,7 @@
@@ -1045,6 +_,7 @@
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
private long lastTick = 0;
private long catchupTime = 0;
@@ -59,7 +59,7 @@
public final RollingAverage tps1 = new RollingAverage(60);
public final RollingAverage tps5 = new RollingAverage(60 * 5);
public final RollingAverage tps15 = new RollingAverage(60 * 15);
@@ -1130,6 +_,16 @@
@@ -1131,6 +_,16 @@
}
// Paper end - Add onboarding message for initial server start
@@ -76,7 +76,7 @@
while (this.running) {
long l;
if (!this.isPaused() && this.tickRateManager.isSprinting() && this.tickRateManager.checkShouldSprintThisTick()) {
@@ -1154,14 +_,19 @@
@@ -1155,14 +_,19 @@
if (++MinecraftServer.currentTick % MinecraftServer.SAMPLE_INTERVAL == 0) {
final long diff = currentTime - tickSection;
final java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
@@ -99,7 +99,7 @@
tickSection = currentTime;
}
// Paper end - further improve server tick loop
@@ -1193,6 +_,12 @@
@@ -1194,6 +_,12 @@
profilerFiller.popPush("nextTickWait");
this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
@@ -112,7 +112,7 @@
this.startMeasuringTaskExecutionTime();
this.waitUntilNextTick();
this.finishMeasuringTaskExecutionTime();
@@ -1627,7 +_,7 @@
@@ -1628,7 +_,7 @@
long worldTime = level.getGameTime();
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
for (Player entityhuman : level.players()) {
@@ -121,7 +121,7 @@
continue;
}
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
@@ -1799,7 +_,7 @@
@@ -1800,7 +_,7 @@
@DontObfuscate
public String getServerModName() {

View File

@@ -86,7 +86,7 @@
+ // Purpur end - Configurable daylight cycle
}
public void tickCustomSpawners(boolean flag) {
public void tickCustomSpawners(boolean spawnEnemies) {
@@ -983,9 +_,17 @@
&& this.random.nextDouble() < currentDifficultyAt.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01) // Paper - Configurable spawn chances for skeleton horses
&& !this.getBlockState(blockPos.below()).is(BlockTags.LIGHTNING_RODS);

View File

@@ -37,7 +37,7 @@
public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) {
for (ServerPlayer serverPlayer : this.players) {
if (serverPlayer.level().dimension() == dimension) {
@@ -904,6 +_,7 @@
@@ -906,6 +_,7 @@
} else {
b = (byte)(24 + permLevel);
}
@@ -45,7 +45,7 @@
player.connection.send(new ClientboundEntityEventPacket(player, b));
}
@@ -916,7 +_,7 @@
@@ -918,7 +_,7 @@
// Paper start - whitelist verify event / login event
public LoginResult canBypassFullServerLogin(final NameAndId nameAndId, final LoginResult currentResult) {

View File

@@ -8,7 +8,7 @@
protected AbstractArrow(EntityType<? extends AbstractArrow> entityType, Level level) {
super(entityType, level);
@@ -349,7 +_,7 @@
@@ -350,7 +_,7 @@
this.setInGround(false);
Vec3 deltaMovement = this.getDeltaMovement();
this.setDeltaMovement(deltaMovement.multiply(this.random.nextFloat() * 0.2F, this.random.nextFloat() * 0.2F, this.random.nextFloat() * 0.2F));
@@ -17,7 +17,7 @@
}
public boolean isInGround() {
@@ -573,6 +_,12 @@
@@ -574,6 +_,12 @@
public ItemStack getWeaponItem() {
return this.firedFromWeapon;
}