Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@04a97aac more renames
PaperMC/Paper@bc310d25 fix wrong absorb
PaperMC/Paper@546acb55 fix debug pathfinding flag
PaperMC/Paper@dfa3e44f Reorganize level storage layout to closer mirror 26.1 vanilla with CB per-level 'world container' behavior.
PaperMC/Paper@b50fa5ca Call BlockDispenseEvent for SpawnEggItem
PaperMC/Paper@15af4554 Cleanup final CombatTracker diff
PaperMC/Paper@439972cd Readd BlockGrowEvent for cactus flower
PaperMC/Paper@57e26551 Correctly replace setBlock in TripWireHookBlock
PaperMC/Paper@c20b0909 Skip villager treasure map trade if disabled
PaperMC/Paper@fd22888e Get MapData from server data storage
PaperMC/Paper@17e063ac cleanup block data
PaperMC/Paper@c7003253 [ci/skip] revert command size limit to vanilla for test server
PaperMC/Paper@3ed80980 Adjust tick loop logic
PaperMC/Paper@af7555e5 Fix block entity ticking list (#13724)
PaperMC/Paper@062aadc6 remove type id from note block instruments
PaperMC/Paper@6a08bca0 finish TagKey -> HolderSet migration
PaperMC/Paper@fe91bd9e fix SO error for breeze target
PaperMC/Paper@a12cd1a5 update crystal proximity checks for new range
PaperMC/Paper@a44c689a Reduce diff in VineBlock.java
PaperMC/Paper@b3fabd13 Correctly move FarmlandBlock#fallOn super call
PaperMC/Paper@4932672f Simplify diff in AbstractPiglin
PaperMC/Paper@71497253 Readd dropped StemBlock BlockGrowEvent hunk
PaperMC/Paper@0110d9fe Simplify diff in DoublePlantBlock
PaperMC/Paper@5b507f54 Readd dropped isInWorldBounds "inline"
PaperMC/Paper@63078f4b Simplify diff in ConduitBlockEntity
PaperMC/Paper@fd98513c fix provides_banner_patterns component type
PaperMC/Paper@6a154f13 fix some client desync
PaperMC/Paper@d6b3a3f3 missed one case
PaperMC/Paper@d957fb49 Call WorldGameRuleChangeEvent for World Options Menu (#13720)
PaperMC/Paper@03853ba2 Skip transient components in dumpitem command (#13689)
This commit is contained in:
granny
2026-03-28 16:39:36 -07:00
parent a928e52fca
commit c3bd0f73fc
25 changed files with 74 additions and 71 deletions

View File

@@ -137,7 +137,7 @@
}
}
}
@@ -3998,7 +_,7 @@
@@ -4000,7 +_,7 @@
}
public boolean canUsePortal(final boolean ignorePassenger) {
@@ -146,7 +146,7 @@
}
public boolean canTeleport(final Level from, final Level to) {
@@ -4546,6 +_,12 @@
@@ -4548,6 +_,12 @@
return Mth.lerp(partial, this.yRotO, this.yRot);
}
@@ -159,7 +159,7 @@
public boolean touchingUnloadedChunk() {
AABB box = this.getBoundingBox().inflate(1.0);
int x0 = Mth.floor(box.minX);
@@ -4840,7 +_,7 @@
@@ -4842,7 +_,7 @@
}
public float maxUpStep() {

View File

@@ -137,7 +137,7 @@
this.interestedAngleO = this.interestedAngle;
if (this.isInterested()) {
this.interestedAngle = this.interestedAngle + (1.0F - this.interestedAngle) * 0.4F;
@@ -504,13 +_,27 @@
@@ -516,13 +_,27 @@
itemStack.consume(1, player);
this.tryToTame(player);
return InteractionResult.SUCCESS_SERVER;

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -964,6 +_,7 @@
@@ -965,6 +_,7 @@
@Override
protected boolean canRide(final Entity vehicle) {
@@ -8,7 +8,7 @@
return false;
}
@@ -999,7 +_,7 @@
@@ -1000,7 +_,7 @@
boolean shouldDrop = level.getGameRules().get(GameRules.MOB_DROPS);
int xpCount = 500;

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/item/BlockItem.java
+++ b/net/minecraft/world/item/BlockItem.java
@@ -138,7 +_,16 @@
@@ -132,7 +_,16 @@
protected boolean updateCustomBlockEntityTag(
final BlockPos pos, final Level level, final @Nullable Player player, final ItemStack itemStack, final BlockState placedState
) {
@@ -18,7 +18,7 @@
}
protected @Nullable BlockState getPlacementState(final BlockPlaceContext context) {
@@ -200,6 +_,7 @@
@@ -194,6 +_,7 @@
}
if (!type.onlyOpCanSetNbt() || player != null && (player.canUseGameMasterBlocks() || (player.getAbilities().instabuild && player.getBukkitEntity().hasPermission("minecraft.nbt.place")))) { // Spigot - add permission
@@ -26,7 +26,7 @@
return customData.loadInto(blockEntity, level.registryAccess());
}
@@ -240,6 +_,7 @@
@@ -234,6 +_,7 @@
public void onDestroyed(final ItemEntity entity) {
ItemContainerContents container = entity.getItem().set(DataComponents.CONTAINER, ItemContainerContents.EMPTY);
if (container != null) {

View File

@@ -4,7 +4,7 @@
// revert back all captured blocks
for (org.bukkit.block.BlockState blockstate : blocks) {
((org.bukkit.craftbukkit.block.CraftBlockState) blockstate).revertPlace();
+ ((org.bukkit.craftbukkit.block.CraftBlock) blockstate.getBlock()).getNMS().getBlock().forgetPlacer(); // Purpur - Store placer on Block when placed
+ ((org.bukkit.craftbukkit.block.CraftBlock) blockstate.getBlock()).getBlockState().getBlock().forgetPlacer(); // Purpur - Store placer on Block when placed
}
SignItem.openSign = null; // SPIGOT-6758 - Reset on early return

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/EntityGetter.java
+++ b/net/minecraft/world/level/EntityGetter.java
@@ -146,7 +_,7 @@
@@ -142,7 +_,7 @@
default boolean hasNearbyAlivePlayer(final double x, final double y, final double z, final double range) {
for (Player player : this.players()) {

View File

@@ -9,7 +9,7 @@
public static final MapCodec<CactusBlock> CODEC = simpleCodec(CactusBlock::new);
public static final IntegerProperty AGE = BlockStateProperties.AGE_15;
public static final int MAX_AGE = 15;
@@ -117,7 +_,7 @@
@@ -113,7 +_,7 @@
protected boolean canSurvive(final BlockState state, final LevelReader level, final BlockPos pos) {
for (Direction direction : Direction.Plane.HORIZONTAL) {
BlockState neighbor = level.getBlockState(pos.relative(direction));
@@ -18,7 +18,7 @@
return false;
}
}
@@ -148,4 +_,34 @@
@@ -144,4 +_,34 @@
protected boolean isPathfindable(final BlockState state, final PathComputationType type) {
return false;
}

View File

@@ -19,8 +19,8 @@
} else if (this == Blocks.CAVE_VINES) {
modifier = level.spigotConfig.caveVinesModifier;
}
- if (state.getValue(AGE) < 25 && random.nextDouble() < ((modifier / 100.0D) * this.growPerTickProbability)) { // Spigot - SPIGOT-7159: Better modifier resolution
+ if (state.getValue(AGE) < getMaxGrowthAge() && random.nextDouble() < ((modifier / 100.0D) * this.growPerTickProbability)) { // Spigot - SPIGOT-7159: Better modifier resolution // Purpur - kelp, cave, weeping, and twisting configurable max growth age
- if (state.getValue(AGE) < 25 && random.nextDouble() < ((modifier / 100.0) * this.growPerTickProbability)) { // Spigot - SPIGOT-7159: Better modifier resolution
+ if (state.getValue(AGE) < getMaxGrowthAge() && random.nextDouble() < ((modifier / 100.0) * this.growPerTickProbability)) { // Spigot - SPIGOT-7159: Better modifier resolution // Purpur - kelp, cave, weeping, and twisting configurable max growth age
// Spigot end
BlockPos growthPos = pos.relative(this.growthDirection);
if (this.canGrowInto(level.getBlockState(growthPos))) {

View File

@@ -32,9 +32,9 @@
if (damageTarget && targetEntity != null) { // CraftBukkit
- if (targetEntity.hurtServer(level, level.damageSources().magic().eventBlockDamager(level, worldPosition), 4.0F)) // CraftBukkit - move up
+ if (targetEntity.hurtServer(level, level.damageSources().magic().eventBlockDamager(level, worldPosition), level.purpurConfig.conduitDamageAmount)) // CraftBukkit - move up // Purpur - Conduit behavior configuration
level.playSound(
null, targetEntity.getX(), targetEntity.getY(), targetEntity.getZ(), SoundEvents.CONDUIT_ATTACK_TARGET, SoundSource.BLOCKS, 1.0F, 1.0F
);
level.playSound(
null, targetEntity.getX(), targetEntity.getY(), targetEntity.getZ(), SoundEvents.CONDUIT_ATTACK_TARGET, SoundSource.BLOCKS, 1.0F, 1.0F
);
@@ -225,19 +_,25 @@
return selectNewTarget(level, pos);
} else {