Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@e2c7e5cf Limit projectiles size
PaperMC/Paper@ca5e948a Fix override of new item for Firework entity (#13891)
PaperMC/Paper@20938c72 Set Obsolete the use of PotionMeta in Potion entities (#13892)
PaperMC/Paper@76d2ac75 [ci/skip] Fix AreaEffectCloud doc comments (#13926)
PaperMC/Paper@f414ba89 run generator
PaperMC/Paper@9194ea20 fix duplicate goal name for cube mobs
PaperMC/Paper@b0c2992a Fix "-1 releases behind" being logged for early snapshots
PaperMC/Paper@46a24d6a Merge remote-tracking branch 'origin/main' into dev/26.2
PaperMC/Paper@2c0dfb53 Fix emptying sulfur cube bucket doesn't work
PaperMC/Paper@b1b09191 update todo
PaperMC/Paper@f23495f0 Commodore rewriting for breaking slime API change
PaperMC/Paper@9a1623b3 fix tests
PaperMC/Paper@611a0ab5 Update to 26.2-pre-4
PaperMC/Paper@87cc35db delegate more stuff to CraftItemStack
PaperMC/Paper@8ea9659a bump built-in pack and regenerate tags
PaperMC/Paper@46cc8588 fix dispense events a bit
PaperMC/Paper@5c5ff5c8 remove redundant bed updates
PaperMC/Paper@1b087229 Unapply hopper patch
PaperMC/Paper@c600b162 skip POI cleanup when place event is cancelled for now
This commit is contained in:
granny
2026-06-04 18:51:54 -07:00
parent b5808d9dfe
commit a857d511b9
19 changed files with 40 additions and 40 deletions

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/core/dispenser/DispenseItemBehavior.java
+++ b/net/minecraft/core/dispenser/DispenseItemBehavior.java
@@ -625,5 +_,22 @@
@@ -626,5 +_,22 @@
DispenserBlock.registerBehavior(Items.TNT_MINECART, new MinecartDispenseItemBehavior(EntityTypes.TNT_MINECART));
DispenserBlock.registerBehavior(Items.HOPPER_MINECART, new MinecartDispenseItemBehavior(EntityTypes.HOPPER_MINECART));
DispenserBlock.registerBehavior(Items.COMMAND_BLOCK_MINECART, new MinecartDispenseItemBehavior(EntityTypes.COMMAND_BLOCK_MINECART));

View File

@@ -86,7 +86,7 @@
// adjust ticksBehind so that it is not greater-than catchup
if (ticksBehind - catchup > 0L) {
final long difference = ticksBehind - catchup;
@@ -1853,7 +_,7 @@
@@ -1852,7 +_,7 @@
}
public String getServerModName() {

View File

@@ -152,7 +152,7 @@
}
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
@@ -3313,6 +_,7 @@
@@ -3323,6 +_,7 @@
float dmg = (float)(diff * 10.0 - 3.0);
if (dmg > 0.0F) {
this.playSound(this.getFallDamageSound((int)dmg), 1.0F, 1.0F);
@@ -160,7 +160,7 @@
this.hurt(this.damageSources().flyIntoWall(), dmg);
}
}
@@ -4801,6 +_,12 @@
@@ -4816,6 +_,12 @@
? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND)
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.typeHolder());
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/cow/MushroomCow.java
+++ b/net/minecraft/world/entity/animal/cow/MushroomCow.java
@@ -207,6 +_,13 @@
@@ -203,6 +_,13 @@
level.playSound(null, this, SoundEvents.MOOSHROOM_SHEAR, soundSource, 1.0F, 1.0F);
this.convertTo(EntityTypes.COW, ConversionParams.single(this, false, false), cow -> {
level.sendParticles(ParticleTypes.EXPLOSION, this.getX(), this.getY(0.5), this.getZ(), 1, 0.0, 0.0, 0.0, 0.0);

View File

@@ -44,7 +44,7 @@
}
@Override
@@ -156,6 +_,14 @@
@@ -152,6 +_,14 @@
}
return InteractionResult.SUCCESS;

View File

@@ -70,7 +70,7 @@
}
float totalDamage = baseDamage + magicBoost;
@@ -1757,7 +_,23 @@
@@ -1763,7 +_,23 @@
@Override
protected int getBaseExperienceReward(final ServerLevel level) {
@@ -95,7 +95,7 @@
}
@Override
@@ -1800,6 +_,13 @@
@@ -1806,6 +_,13 @@
public boolean addItem(final ItemStack itemStack) {
return this.inventory.add(itemStack);
}

View File

@@ -3,7 +3,7 @@
@@ -452,6 +_,7 @@
// revert back all captured blocks
for (org.bukkit.block.BlockState blockstate : blocks) {
((org.bukkit.craftbukkit.block.CraftBlockState) blockstate).revertPlace();
((org.bukkit.craftbukkit.block.CraftBlockState) blockstate).revertPlace(true); // poi updates needs to be skipped since the poi were never registered as part of the capture
+ ((org.bukkit.craftbukkit.block.CraftBlock) blockstate.getBlock()).getBlockState().getBlock().forgetPlacer(); // Purpur - Store placer on Block when placed
}
@@ -16,7 +16,7 @@
level.notifyAndUpdatePhysics(newPos, null, oldBlock, block, level.getBlockState(newPos), updateFlags, net.minecraft.world.level.block.Block.UPDATE_LIMIT); // send null chunk as chunk.k() returns false by this point
}
@@ -590,6 +_,26 @@
@@ -579,6 +_,26 @@
return this.isDamageableItem() && this.getDamageValue() > 0;
}
@@ -43,7 +43,7 @@
public int getDamageValue() {
return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage());
}
@@ -1254,6 +_,12 @@
@@ -1237,6 +_,12 @@
public boolean isEnchanted() {
return !this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).isEmpty();
}

View File

@@ -64,7 +64,7 @@
this.generator = generator;
this.world = new CraftWorld((ServerLevel) this, worldKey, biomeProvider, environment);
@@ -1504,4 +_,14 @@
@@ -1505,4 +_,14 @@
return ret;
}
// Paper end - allow patching this logic

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/Block.java
+++ b/net/minecraft/world/level/block/Block.java
@@ -111,6 +_,10 @@
@@ -112,6 +_,10 @@
public static final int UPDATE_LIMIT = 512;
protected final StateDefinition<Block, BlockState> stateDefinition;
private BlockState defaultBlockState;
@@ -11,7 +11,7 @@
// Paper start - Protect Bedrock and End Portal/Frames from being destroyed
public final boolean isDestroyable() {
return io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits ||
@@ -412,7 +_,7 @@
@@ -413,7 +_,7 @@
event.setExpToDrop(block.getExpDrop(state, serverLevel, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); // Paper - Properly handle xp dropping
event.callEvent();
for (org.bukkit.inventory.ItemStack drop : event.getDrops()) {
@@ -20,7 +20,7 @@
}
state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping
block.popExperience(serverLevel, pos, event.getExpToDrop()); // Paper - Properly handle xp dropping
@@ -430,7 +_,7 @@
@@ -431,7 +_,7 @@
public static void dropResources(final BlockState state, final LevelAccessor level, final BlockPos pos, final @Nullable BlockEntity blockEntity) {
if (level instanceof ServerLevel serverLevel) {
@@ -29,7 +29,7 @@
state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, true);
}
}
@@ -451,11 +_,30 @@
@@ -452,11 +_,30 @@
, final boolean dropExperience // Paper - Properly handle xp dropping
) {
if (level instanceof ServerLevel serverLevel) {
@@ -61,7 +61,7 @@
public static void popResource(final Level level, final BlockPos pos, final ItemStack itemStack) {
double halfHeight = EntityTypes.ITEM.getHeight() / 2.0;
RandomSource random = level.getRandom();
@@ -545,7 +_,15 @@
@@ -546,7 +_,15 @@
}
public void setPlacedBy(final Level level, final BlockPos pos, final BlockState state, final @Nullable LivingEntity by, final ItemStack itemStack) {
@@ -78,7 +78,7 @@
public boolean isPossibleToRespawnInThis(final BlockState state) {
return !state.isSolid() && !state.liquid();
@@ -556,7 +_,7 @@
@@ -557,7 +_,7 @@
}
public void fallOn(final Level level, final BlockState state, final BlockPos pos, final Entity entity, final double fallDistance) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/entity/BlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BlockEntity.java
@@ -107,6 +_,10 @@
@@ -106,6 +_,10 @@
input.read("PublicBukkitValues", CompoundTag.CODEC)
.ifPresent(this.persistentDataContainer::putAll);
// Paper end - read persistent data container
@@ -11,10 +11,10 @@
}
public final void loadWithComponents(final ValueInput input) {
@@ -119,6 +_,11 @@
}
protected void saveAdditional(final ValueOutput output) {
@@ -123,6 +_,11 @@
output.store("PublicBukkitValues", CompoundTag.CODEC, this.persistentDataContainer.toTagCompound());
}
// CraftBukkit end
+ // Purpur start - Persistent BlockEntity Lore and DisplayName
+ if (this.persistentLore != null) {
+ output.store("Purpur.persistentLore", net.minecraft.world.item.component.ItemLore.CODEC, this.persistentLore);
@@ -23,7 +23,7 @@
}
public final CompoundTag saveWithFullMetadata(final HolderLookup.Provider registries) {
@@ -395,4 +_,16 @@
@@ -388,4 +_,16 @@
return this.blockEntity.getNameForReporting() + "@" + this.blockEntity.getBlockPos();
}
}

View File

@@ -21,7 +21,7 @@
CraftRegistry.setMinecraftRegistry(console.registryAccess());
@@ -990,6 +_,7 @@
@@ -989,6 +_,7 @@
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
this.console.paperConfigurations.reloadConfigs(this.console);
@@ -29,7 +29,7 @@
for (ServerLevel world : this.console.getAllLevels()) {
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
world.setSpawnSettings(world.isSpawningMonsters()); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
@@ -1005,6 +_,7 @@
@@ -1004,6 +_,7 @@
}
}
world.spigotConfig.init(); // Spigot
@@ -37,7 +37,7 @@
}
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
@@ -1022,6 +_,7 @@
@@ -1021,6 +_,7 @@
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
this.spark.registerCommandBeforePlugins(this); // Paper - spark
@@ -45,7 +45,7 @@
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -1479,6 +_,60 @@
@@ -1478,6 +_,60 @@
return true;
}
@@ -106,7 +106,7 @@
@Override
public List<Recipe> getRecipesFor(ItemStack result) {
Preconditions.checkArgument(result != null, "ItemStack cannot be null");
@@ -2725,6 +_,18 @@
@@ -2723,6 +_,18 @@
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
}
@@ -125,7 +125,7 @@
@Override
public void restart() {
CraftServer.this.restart();
@@ -2960,4 +_,18 @@
@@ -2958,4 +_,18 @@
public void allowPausing(final Plugin plugin, final boolean value) {
this.console.addPluginAllowingSleep(plugin.getName(), value);
}

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -681,4 +_,285 @@
@@ -782,4 +_,285 @@
}
// Paper end - data component API

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -492,7 +_,7 @@
@@ -486,7 +_,7 @@
@Override
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {