Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@f53a8042 drop previous block from sulfur cube after swap
PaperMC/Paper@37d9857b Call ExplosionPrimeEvent / EntityUnleashEvent for Sulfur Cube (#13935)
PaperMC/Paper@58cfde23 make sulfur cube ageable
PaperMC/Paper@a4e7b2f6 fix abi break for blockdata
PaperMC/Paper@3a05566b improve damage cause heuristics
PaperMC/Paper@3ec423fb Call EntityDamageByEntityEvent for SulfurCube's contact damage (#13937)
PaperMC/Paper@2c1ecaec merge hot floor and campfire damage cause to contact
PaperMC/Paper@273c92d8 support markdown javadoc in generator
This commit is contained in:
granny
2026-06-06 22:59:52 -07:00
parent a857d511b9
commit da23f92836
7 changed files with 21 additions and 21 deletions

View File

@@ -3,7 +3,7 @@ group = org.purpurmc.purpur
mcVersion = 26.2-pre-4 mcVersion = 26.2-pre-4
apiVersion = 26.2 apiVersion = 26.2
channel=EXPERIMENTAL channel=EXPERIMENTAL
paperCommit = c600b162314435ca84f99477384aeb7ec3bfc2e8 paperCommit = 273c92d85559ea176dab86c16f76989c1a061012
org.gradle.configuration-cache = true org.gradle.configuration-cache = true
org.gradle.caching = true org.gradle.caching = true

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Purpur config files
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index b7f4c4efad7335d1c02d1315c64ba9953f3f05c9..81484f52feea2ccf8b9e7c791b976561a1a3e5f6 100644 index 1f012a7c5c3129c1dcaacb5377051c6285b3486a..8805b385dd7c123d3de74520ca2ba702ea351b00 100644
--- a/src/main/java/org/bukkit/Server.java --- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java
@@ -2443,6 +2443,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -2440,6 +2440,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
} }
// Paper end // Paper end

View File

@@ -4,8 +4,8 @@
executor.execute(listener, event); executor.execute(listener, event);
return; return;
} }
- try (Timing ignored = timings.startTiming()){ - try (Timing ignored = timings.startTiming()) {
+ //try (Timing ignored = timings.startTiming()){ // Purpur - Remove Timings + //try (Timing ignored = timings.startTiming()) { // Purpur - Remove Timings
executor.execute(listener, event); executor.execute(listener, event);
- } - }
+ //} // Purpur - Remove Timings + //} // Purpur - Remove Timings

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/Server.java --- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java
@@ -2779,4 +_,125 @@ @@ -2776,4 +_,125 @@
*/ */
void allowPausing(@NotNull org.bukkit.plugin.Plugin plugin, boolean value); void allowPausing(@NotNull org.bukkit.plugin.Plugin plugin, boolean value);
// Paper end - API to check if the server is sleeping // Paper end - API to check if the server is sleeping

View File

@@ -1,12 +1,12 @@
--- a/src/main/java/org/bukkit/event/entity/EntityDamageEvent.java --- a/src/main/java/org/bukkit/event/entity/EntityDamageEvent.java
+++ b/src/main/java/org/bukkit/event/entity/EntityDamageEvent.java +++ b/src/main/java/org/bukkit/event/entity/EntityDamageEvent.java
@@ -310,7 +_,8 @@ @@ -311,7 +_,8 @@
WORLD_BORDER, WORLD_BORDER,
/** /**
* Damage caused when an entity contacts a block such as a Cactus, * Damage caused when an entity contacts another entity (sulfur cube) or block (cactus, dripstone stalagmite,
- * Dripstone (Stalagmite) or Berry Bush. - * berry bush, campfire, magma block).
+ * Dripstone (Stalagmite) or Berry Bush. (Stonecutters too if you + * berry bush, campfire, magma block). (Stonecutters too if you have the Stonecutter damage Purpur feature
+ * have the Stonecutter damage Purpur feature enabled) + * enabled)
* <p> * <p>
* Damage: variable * Damage: variable
*/ */

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/Block.java --- a/net/minecraft/world/level/block/Block.java
+++ b/net/minecraft/world/level/block/Block.java +++ b/net/minecraft/world/level/block/Block.java
@@ -112,6 +_,10 @@ @@ -111,6 +_,10 @@
public static final int UPDATE_LIMIT = 512; public static final int UPDATE_LIMIT = 512;
protected final StateDefinition<Block, BlockState> stateDefinition; protected final StateDefinition<Block, BlockState> stateDefinition;
private BlockState defaultBlockState; private BlockState defaultBlockState;
@@ -11,7 +11,7 @@
// Paper start - Protect Bedrock and End Portal/Frames from being destroyed // Paper start - Protect Bedrock and End Portal/Frames from being destroyed
public final boolean isDestroyable() { public final boolean isDestroyable() {
return io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits || return io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits ||
@@ -413,7 +_,7 @@ @@ -412,7 +_,7 @@
event.setExpToDrop(block.getExpDrop(state, serverLevel, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); // Paper - Properly handle xp dropping event.setExpToDrop(block.getExpDrop(state, serverLevel, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); // Paper - Properly handle xp dropping
event.callEvent(); event.callEvent();
for (org.bukkit.inventory.ItemStack drop : event.getDrops()) { for (org.bukkit.inventory.ItemStack drop : event.getDrops()) {
@@ -20,7 +20,7 @@
} }
state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping
block.popExperience(serverLevel, pos, event.getExpToDrop()); // Paper - Properly handle xp dropping block.popExperience(serverLevel, pos, event.getExpToDrop()); // Paper - Properly handle xp dropping
@@ -431,7 +_,7 @@ @@ -430,7 +_,7 @@
public static void dropResources(final BlockState state, final LevelAccessor level, final BlockPos pos, final @Nullable BlockEntity blockEntity) { public static void dropResources(final BlockState state, final LevelAccessor level, final BlockPos pos, final @Nullable BlockEntity blockEntity) {
if (level instanceof ServerLevel serverLevel) { if (level instanceof ServerLevel serverLevel) {
@@ -29,7 +29,7 @@
state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, true); state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, true);
} }
} }
@@ -452,11 +_,30 @@ @@ -451,11 +_,30 @@
, final boolean dropExperience // Paper - Properly handle xp dropping , final boolean dropExperience // Paper - Properly handle xp dropping
) { ) {
if (level instanceof ServerLevel serverLevel) { if (level instanceof ServerLevel serverLevel) {
@@ -61,7 +61,7 @@
public static void popResource(final Level level, final BlockPos pos, final ItemStack itemStack) { public static void popResource(final Level level, final BlockPos pos, final ItemStack itemStack) {
double halfHeight = EntityTypes.ITEM.getHeight() / 2.0; double halfHeight = EntityTypes.ITEM.getHeight() / 2.0;
RandomSource random = level.getRandom(); RandomSource random = level.getRandom();
@@ -546,7 +_,15 @@ @@ -545,7 +_,15 @@
} }
public void setPlacedBy(final Level level, final BlockPos pos, final BlockState state, final @Nullable LivingEntity by, final ItemStack itemStack) { 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) { public boolean isPossibleToRespawnInThis(final BlockState state) {
return !state.isSolid() && !state.liquid(); return !state.isSolid() && !state.liquid();
@@ -557,7 +_,7 @@ @@ -556,7 +_,7 @@
} }
public void fallOn(final Level level, final BlockState state, final BlockPos pos, final Entity entity, final double fallDistance) { 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/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java --- a/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
+++ b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java +++ b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
@@ -60,7 +_,7 @@ @@ -61,7 +_,7 @@
Vector<String> vector = new Vector<>(); Vector<String> vector = new Vector<>();
// Follows CraftServer#getTPS // Follows CraftServer#getTPS
@@ -8,11 +8,11 @@
+ double[] tps = server.getTPS(); // Purpur - diff on change + double[] tps = server.getTPS(); // Purpur - diff on change
String[] tpsAvg = new String[tps.length]; String[] tpsAvg = new String[tps.length];
for ( int g = 0; g < tps.length; g++) { for (int g = 0; g < tps.length; g++) {
@@ -69,7 +_,7 @@ @@ -70,7 +_,7 @@
vector.add("Memory use: " + (data.getUsedMem() / 1024L / 1024L) + " mb (" + (data.getFree() * 100L / data.getMax()) + "% free)"); vector.add("Memory use: " + (data.getUsedMem() / 1024L / 1024L) + " mb (" + (data.getFree() * 100L / data.getMax()) + "% free)");
vector.add("Heap: " + (data.getTotal() / 1024L / 1024L) + " / " + (data.getMax() / 1024L / 1024L) + " mb"); vector.add("Heap: " + (data.getTotal() / 1024L / 1024L) + " / " + (data.getMax() / 1024L / 1024L) + " mb");
vector.add("Avg tick: " + DECIMAL_FORMAT.format((double)this.server.getAverageTickTimeNanos() / (double) TimeUtil.NANOSECONDS_PER_MILLISECOND) + " ms"); vector.add("Avg tick: " + DECIMAL_FORMAT.format((double) this.server.getAverageTickTimeNanos() / (double) TimeUtil.NANOSECONDS_PER_MILLISECOND) + " ms");
- vector.add("TPS from last 1m, 5m, 15m: " + String.join(", ", tpsAvg)); - vector.add("TPS from last 1m, 5m, 15m: " + String.join(", ", tpsAvg));
+ vector.add("TPS from last 5s, 1m, 5m, 15m: " + String.join(", ", tpsAvg)); // Purpur - Add 5 second tps average in /tps + vector.add("TPS from last 5s, 1m, 5m, 15m: " + String.join(", ", tpsAvg)); // Purpur - Add 5 second tps average in /tps
setListData(vector); setListData(vector);