Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@70f253f3 Update ItemType
PaperMC/Paper@774a32e8 sulfur cube archetype registry
PaperMC/Paper@f2ebae60 update legacy ItemType generic type
PaperMC/Paper@93feb440 deprecate PigZapEvent
PaperMC/Paper@73725c6b update to pre-5
PaperMC/Paper@5357d03b fix serialization error when creating empty flat world
PaperMC/Paper@620da256 expand CreeperIgniteEvent to cover minecart tnt and sulfur cube
This commit is contained in:
granny
2026-06-08 12:17:33 -07:00
parent 148c8551bd
commit c94a2c9b86
10 changed files with 38 additions and 38 deletions

View File

@@ -1,9 +1,9 @@
group = org.purpurmc.purpur
mcVersion = 26.2-pre-4
mcVersion = 26.2-pre-5
apiVersion = 26.2
channel=EXPERIMENTAL
paperCommit = 273c92d85559ea176dab86c16f76989c1a061012
paperCommit = 620da256d6de496a26b788fc394c241fb9cd61c1
org.gradle.configuration-cache = true
org.gradle.caching = true

View File

@@ -2730,10 +2730,10 @@ index 5d1e0d44163b9f29dc824b46b7b983456a273419..f54a14a1e434cbfedf709d3b1495f2ae
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
this.targetSelector.addGoal(3, new HurtByTargetGoal(this).setAlertOthers());
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d452f5f3839 100644
index f960bb265bc5a4b350d24c9d1caafb3a06068df0..c0ffda7c18461494aee68aac2d99a660e3b21dcf 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -91,6 +91,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -92,6 +92,7 @@ public class EnderDragon extends Mob implements Enemy {
private final net.minecraft.world.level.Explosion explosionSource; // Paper - reusable source for CraftTNTPrimed.getSource()
private @Nullable BlockPos podium;
// Paper end
@@ -2741,7 +2741,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
public EnderDragon(final EntityType<? extends EnderDragon> type, final Level level) {
super(EntityTypes.ENDER_DRAGON, level);
@@ -107,6 +108,37 @@ public class EnderDragon extends Mob implements Enemy {
@@ -108,6 +109,37 @@ public class EnderDragon extends Mob implements Enemy {
this.noPhysics = true;
this.phaseManager = new EnderDragonPhaseManager(this);
this.explosionSource = new net.minecraft.world.level.ServerExplosion(level.getMinecraftWorld(), this, null, null, new Vec3(Double.NaN, Double.NaN, Double.NaN), Float.NaN, true, net.minecraft.world.level.Explosion.BlockInteraction.DESTROY); // Paper
@@ -2779,7 +2779,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
}
public void setDragonFight(final EnderDragonFight fight) {
@@ -121,6 +153,17 @@ public class EnderDragon extends Mob implements Enemy {
@@ -122,6 +154,17 @@ public class EnderDragon extends Mob implements Enemy {
return this.fightOrigin;
}
@@ -2797,7 +2797,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
public static AttributeSupplier.Builder createAttributes() {
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
}
@@ -170,6 +213,37 @@ public class EnderDragon extends Mob implements Enemy {
@@ -171,6 +214,37 @@ public class EnderDragon extends Mob implements Enemy {
@Override
public void aiStep() {
@@ -2835,7 +2835,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
this.processFlappingMovement();
if (this.level().isClientSide()) {
this.setHealth(this.getHealth());
@@ -198,6 +272,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -199,6 +273,7 @@ public class EnderDragon extends Mob implements Enemy {
this.oFlapTime = this.flapTime;
if (this.isDeadOrDying()) {
@@ -2843,7 +2843,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
float xo = (this.random.nextFloat() - 0.5F) * 8.0F;
float yo = (this.random.nextFloat() - 0.5F) * 4.0F;
float zo = (this.random.nextFloat() - 0.5F) * 8.0F;
@@ -207,9 +282,9 @@ public class EnderDragon extends Mob implements Enemy {
@@ -208,9 +283,9 @@ public class EnderDragon extends Mob implements Enemy {
Vec3 movement = this.getDeltaMovement();
float flapSpeed = 0.2F / ((float)movement.horizontalDistance() * 10.0F + 1.0F);
flapSpeed *= (float)Math.pow(2.0, movement.y);
@@ -2855,7 +2855,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
this.flapTime += flapSpeed * 0.5F;
} else {
this.flapTime += flapSpeed;
@@ -220,7 +295,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -221,7 +296,7 @@ public class EnderDragon extends Mob implements Enemy {
this.flapTime = 0.5F;
} else {
this.flightHistory.record(this.getY(), this.getYRot());
@@ -2864,7 +2864,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
DragonPhaseInstance currentPhase = this.phaseManager.getCurrentPhase();
currentPhase.doServerTick(level);
if (this.phaseManager.getCurrentPhase() != currentPhase) {
@@ -291,7 +366,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -292,7 +367,7 @@ public class EnderDragon extends Mob implements Enemy {
this.tickPart(this.body, ss1 * 0.5F, 0.0, -cc1 * 0.5F);
this.tickPart(this.wing1, cc1 * 4.5F, 2.0, ss1 * 4.5F);
this.tickPart(this.wing2, cc1 * -4.5F, 2.0, ss1 * -4.5F);
@@ -2873,7 +2873,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
this.knockBack(
serverLevel,
serverLevel.getEntities(
@@ -339,9 +414,9 @@ public class EnderDragon extends Mob implements Enemy {
@@ -340,9 +415,9 @@ public class EnderDragon extends Mob implements Enemy {
}
if (this.level() instanceof ServerLevel level) {
@@ -4356,7 +4356,7 @@ index 96776d23370736da3408e6a86ed89b7f3d686732..0ac7a442a0ea79f190aceb60b771d616
public SoundEvent getHurtSound(final DamageSource source) {
return this.isTiny() ? SoundEvents.SLIME_HURT_SMALL : SoundEvents.SLIME_HURT;
diff --git a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
index 6b89d25aa130c9b7fe7f6d27f1d5f393c2954778..601a54820df95a566cec6079715af166f912df70 100644
index 7f79c8e4e5874d2ce3a1a58b96df698c3f774011..7b3ab0515bae1963cdd2319f097bfffb4d12f4e5 100644
--- a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
+++ b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
@@ -129,6 +129,28 @@ public class SulfurCube extends AbstractCubeMob implements Bucketable, Shearable

View File

@@ -974,10 +974,10 @@ index f54a14a1e434cbfedf709d3b1495f2ae9ae4f11f..acf623ba0ab1f1d6c98af1a83cddd634
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 55a24b960f1372c0fa7edf7c5d439d452f5f3839..6883bd42f9d124c6421d1eb332f04514aa7bc3f8 100644
index c0ffda7c18461494aee68aac2d99a660e3b21dcf..ffd612896a30ebff55906baba94150eb25fd8e98 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -164,6 +164,13 @@ public class EnderDragon extends Mob implements Enemy {
@@ -165,6 +165,13 @@ public class EnderDragon extends Mob implements Enemy {
}
// Purpur end - Ridables
@@ -991,7 +991,7 @@ index 55a24b960f1372c0fa7edf7c5d439d452f5f3839..6883bd42f9d124c6421d1eb332f04514
public static AttributeSupplier.Builder createAttributes() {
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
}
@@ -1065,7 +1072,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -1068,7 +1075,7 @@ public class EnderDragon extends Mob implements Enemy {
@Override
protected float sanitizeScale(final float scale) {
@@ -1501,7 +1501,7 @@ index 0ac7a442a0ea79f190aceb60b771d616b377e613..22c20e4360473cdbe9cda8bb7b3b30be
+ }
}
diff --git a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
index 601a54820df95a566cec6079715af166f912df70..8a12c35177a745e94c2a4ced86994114fac933f5 100644
index 7b3ab0515bae1963cdd2319f097bfffb4d12f4e5..a966d253af27d5a8cc89a2454cf60377bdf7ce62 100644
--- a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
+++ b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
@@ -151,6 +151,20 @@ public class SulfurCube extends AbstractCubeMob implements Bucketable, Shearable

View File

@@ -131,10 +131,10 @@ index f0c4ad3715322bf1a5a60edd870b34a15949a77f..80a65dba81ab82cdb9bd43d1878e7455
}
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 6883bd42f9d124c6421d1eb332f04514aa7bc3f8..1294dc666be270b4c7b335b7f2786b9b68bededc 100644
index ffd612896a30ebff55906baba94150eb25fd8e98..2597ee3ca93653af04b5e620f3909c3791369bf0 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -536,7 +536,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -537,7 +537,7 @@ public class EnderDragon extends Mob implements Enemy {
BlockPos blockPos = new BlockPos(x, y, z);
BlockState state = level.getBlockState(blockPos);
if (!state.isAir() && !state.is(BlockTags.DRAGON_TRANSPARENT)) {

View File

@@ -657,10 +657,10 @@ index 66e58482f8422e5478b29f82271489d0449ceddb..cdc12cabee85c7090ff317068a98b0ac
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 1294dc666be270b4c7b335b7f2786b9b68bededc..5ad833b7673e73a1a5120b335f8980f639a9b2eb 100644
index 2597ee3ca93653af04b5e620f3909c3791369bf0..f445c81d1054b897f8489cdb9cc9bb04096e3835 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -171,6 +171,13 @@ public class EnderDragon extends Mob implements Enemy {
@@ -172,6 +172,13 @@ public class EnderDragon extends Mob implements Enemy {
}
// Purpur end - Configurable entity base attributes
@@ -1029,7 +1029,7 @@ index 22c20e4360473cdbe9cda8bb7b3b30be85f16fe6..3c09f472ba54f8929782ac6a080ceabf
public SoundEvent getHurtSound(final DamageSource source) {
return this.isTiny() ? SoundEvents.SLIME_HURT_SMALL : SoundEvents.SLIME_HURT;
diff --git a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
index 8a12c35177a745e94c2a4ced86994114fac933f5..f777ed1de1ec159fed3019bd5bfb711b9aad6146 100644
index a966d253af27d5a8cc89a2454cf60377bdf7ce62..f43d33605e8d0d4ade0a5c6269bccb4d10668543 100644
--- a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
+++ b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
@@ -165,6 +165,13 @@ public class SulfurCube extends AbstractCubeMob implements Bucketable, Shearable

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/server/commands/GameModeCommand.java
+++ b/net/minecraft/server/commands/GameModeCommand.java
@@ -47,6 +_,18 @@
@@ -48,6 +_,18 @@
}
private static int setMode(final CommandContext<CommandSourceStack> context, final Collection<ServerPlayer> players, final GameType type) {
@@ -17,5 +17,5 @@
+ }
+ // Purpur end - Gamemode extra permissions
int count = 0;
MinecraftServer server = context.getSource().getServer();
for (ServerPlayer player : players) {

View File

@@ -40,7 +40,7 @@
@Nullable
public Entity eventEntityDamager() {
return this.eventEntityDamager;
@@ -94,6 +_,8 @@
@@ -98,6 +_,8 @@
damageSource.eventBlockDamager = this.eventBlockDamager;
damageSource.fromBlockSnapshot = this.fromBlockSnapshot;
damageSource.critical = this.critical;
@@ -49,7 +49,7 @@
return damageSource;
}
// CraftBukkit end
@@ -159,11 +_,20 @@
@@ -163,11 +_,20 @@
} else {
Component name = this.causingEntity == null ? this.directEntity.getDisplayName() : this.causingEntity.getDisplayName();
ItemStack held = this.causingEntity instanceof LivingEntity livingEntity ? livingEntity.getMainHandItem() : ItemStack.EMPTY;

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 @@
@@ -967,6 +_,7 @@
@Override
protected boolean canRide(final Entity vehicle) {
@@ -8,7 +8,7 @@
return false;
}
@@ -999,7 +_,7 @@
@@ -1002,7 +_,7 @@
boolean shouldDrop = level.getGameRules().get(GameRules.MOB_DROPS);
int xpCount = 500;

View File

@@ -36,10 +36,10 @@ index de6fe0b783a145f6571bf73665e7107430f22592..612e3457d537d6129437443753cad3e4
+ // Purpur end - Ridables
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 6dd60f8a3c322671a3c91e7239d6218e4724bc71..6c78b4b24d43712ae98bbc1e2c3f2e896da57fb4 100644
index a3f9ebbd03c355168c8ea72e8d9f0e222712c61d..fbd78d4f06deaddb0954863cdf4eac47ce80e0b7 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -653,6 +653,15 @@ public class CraftEventFactory {
@@ -654,6 +654,15 @@ public class CraftEventFactory {
}
craftServer.getPluginManager().callEvent(event);
@@ -55,7 +55,7 @@ index 6dd60f8a3c322671a3c91e7239d6218e4724bc71..6c78b4b24d43712ae98bbc1e2c3f2e89
return event;
}
@@ -1158,6 +1167,7 @@ public class CraftEventFactory {
@@ -1159,6 +1168,7 @@ public class CraftEventFactory {
EntityDamageEvent event;
if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -415,6 +_,20 @@
@@ -411,6 +_,20 @@
this.paperPluginManager = new io.papermc.paper.plugin.manager.PaperPluginManagerImpl(this, this.commandMap, pluginManager);
this.pluginManager.paperPluginManager = this.paperPluginManager;
// Paper end
@@ -21,7 +21,7 @@
CraftRegistry.setMinecraftRegistry(console.registryAccess());
@@ -989,6 +_,7 @@
@@ -985,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))
@@ -1004,6 +_,7 @@
@@ -1000,6 +_,7 @@
}
}
world.spigotConfig.init(); // Spigot
@@ -37,7 +37,7 @@
}
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
@@ -1021,6 +_,7 @@
@@ -1017,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");
@@ -1478,6 +_,60 @@
@@ -1482,6 +_,60 @@
return true;
}
@@ -106,7 +106,7 @@
@Override
public List<Recipe> getRecipesFor(ItemStack result) {
Preconditions.checkArgument(result != null, "ItemStack cannot be null");
@@ -2723,6 +_,18 @@
@@ -2727,6 +_,18 @@
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
}
@@ -125,7 +125,7 @@
@Override
public void restart() {
CraftServer.this.restart();
@@ -2958,4 +_,18 @@
@@ -2962,4 +_,18 @@
public void allowPausing(final Plugin plugin, final boolean value) {
this.console.addPluginAllowingSleep(plugin.getName(), value);
}