9
0
mirror of https://github.com/Samsuik/Sakura.git synced 2025-12-22 16:29:16 +00:00

Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@20ec622 use correct types for preloading CraftRegistry
PaperMC/Paper@627cc64 Adjust HAProxy's existance to log for console masters (#11433)
PaperMC/Paper@01c4820 Call EntityDropItemEvent when a container item drops its contents (#11441)
PaperMC/Paper@9c76642 Deprecate for removal Block#isValidTool (#11439)
PaperMC/Paper@dd6d184 Remove redundant fillUsableCommands call (#11425)
PaperMC/Paper@f33611c fix ItemStack#removeEnchantments creating non-stackable items (#11442)
PaperMC/Paper@8f56db8 Add enchantWithLevels with tag specification (#11438)
PaperMC/Paper@b7ab22d Fix console completions on invalid commands (#7603)
PaperMC/Paper@41bc31b Update paperweight to 1.7.3 (#11445)
PaperMC/Paper@e17eb6b Improve entity effect API (#11444)
PaperMC/Paper@7b03141 Add startingBrewTime (#11406)
PaperMC/Paper@355b1cb Add API for explosions to damage the explosion cause (#11180)
PaperMC/Paper@6d7a438 Call bucket events for cauldrons (#7486)
PaperMC/Paper@f9c7f2a Begin switching to JSpecify annotations (#11448)
PaperMC/Paper@e3c8a8e Add PlayerInsertLecternBookEvent [1.20 port] (#7305)
PaperMC/Paper@b410fe8 Configurable per-world void damage offset/damage(#11436)
PaperMC/Paper@ea00be3 Do not NPE on uuid resolution in player profile (#11449)
PaperMC/Paper@ba3c29b Finish converting all events to jspecify annotations
PaperMC/Paper@e7e1ab5 Finish converting most of the undeprecated api to jspecify
PaperMC/Paper@69ffbec Fix hex color check
PaperMC/Paper@709f0f2 Use components properly in ProfileWhitelistVerifyEvent (#11456)
PaperMC/Paper@fb76840 [ci skip] Add section on nullability annotations (#11461)
This commit is contained in:
Samsuik
2024-10-02 19:14:24 +01:00
parent f5b03e1787
commit 021078518d
26 changed files with 125 additions and 121 deletions

View File

@@ -2,7 +2,7 @@ group=me.samsuik.sakura
version=1.21.1-R0.1-SNAPSHOT version=1.21.1-R0.1-SNAPSHOT
mcVersion=1.21.1 mcVersion=1.21.1
paperRef=1bc02e6b23bf18ba43054bf978769411bd96a04d paperRef=fb768404aa8bdd35b95c88132b95f5cb529cc098
org.gradle.jvmargs=-Xmx2G org.gradle.jvmargs=-Xmx2G
org.gradle.vfs.watch=false org.gradle.vfs.watch=false

View File

@@ -155,10 +155,10 @@ index 0000000000000000000000000000000000000000..de18836d1a2a6038a661cdc60161d3ba
+ } + }
+} +}
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index e6f66d70d024cf4f0536a5bf8e51bf7b306335df..d554b1f54e706500153718527a6b60c7743901ea 100644 index ef32a937e6faf1e8a5d6b1207986715bae5a246c..9ef129370e7773e256fe4d2d3bfe93abc625b26a 100644
--- a/src/main/java/org/bukkit/World.java --- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java
@@ -157,6 +157,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @@ -205,6 +205,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
return new Location(this, x, y, z); return new Location(this, x, y, z);
} }
// Paper end // Paper end

View File

@@ -239,7 +239,7 @@ index f7a636990d581ad0230317a716d2662ea25480e3..f0ba7597de6f1eb025639cbe0f35f51d
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 7da2fc17f6e7bf888ef0c2a8eba0fc3b4c10436e..c811bc64d0686fdec58defb707d57e539c261b48 100644 index 48c2d026fd678f7990738a0037780a535f1ac19b..613c402744314644f86b401fa84dbd20ffb108f5 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -177,6 +177,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -177,6 +177,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
@@ -256,10 +256,10 @@ index 7da2fc17f6e7bf888ef0c2a8eba0fc3b4c10436e..c811bc64d0686fdec58defb707d57e53
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
public final co.aikar.timings.WorldTimingsHandler timings; // Paper public final co.aikar.timings.WorldTimingsHandler timings; // Paper
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index cd3381d8225e0322b3e285b3c4aa0a1265a91cc0..7d70fb7553a04bebf9300b0372afd36802b7045c 100644 index 33e4818ba5a90d78d69baad9f6b1be1b1382e9f3..d14c942a4505222c13bf0e7bc15ac4904f3ebbd1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -256,6 +256,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -291,6 +291,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
} }
// Paper end // Paper end

View File

@@ -310,10 +310,10 @@ index af8cb316ac169aa8d98a88765b85bb013b9ba961..76d4b7e9dad6536c100e5940f9f528ba
// CraftBukkit start - respect vanish API // CraftBukkit start - respect vanish API
if (flag && !player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { // Paper - only consider hits if (flag && !player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { // Paper - only consider hits
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index fb2e895aa658175329708828de3e1030bf28620b..07f36cd0dea417459e7022fe7e73a5177fc7c67a 100644 index 1a0819301e0ce05c60b6cb961202a5c60697f6c1..94b130f9fd12ad077e66e5aa1c7b143ad97d96e5 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1791,7 +1791,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. @@ -1793,7 +1793,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
while (iterator.hasNext()) { while (iterator.hasNext()) {
ServerPlayer entityplayer = (ServerPlayer) iterator.next(); ServerPlayer entityplayer = (ServerPlayer) iterator.next();
@@ -497,7 +497,7 @@ index befeaac4786760f6847a5945da2296a3e68dbb17..167e7478ea87d611c526db7974f1dac0
if (this.player.containerMenu != oldContainer) { if (this.player.containerMenu != oldContainer) {
return; return;
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index bc45c74987974b4828201e06fc8b1f3fbc0af8b4..7c32f41cca62d03b8fcd6e5486a32c9872ab040c 100644 index 4b54d0ea31062972e68ee8fafe3cfaf68f65a5cd..d2e91843df93753a78bb9bd6839de287dc2ce4e5 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -549,6 +549,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -549,6 +549,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -536,7 +536,7 @@ index 42bd2d9a1528b6210e4dfb56233062fd97c9743b..28a15f612239614c6c56974da5855ce3
public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) { public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index ad740739437be632fc7fedec488a7d0c49534688..ff8580ca3e74e7e28afbfa8c2e566b98ced2dbff 100644 index 42d7660efe5baa6f796f2a7606686c765b6f2478..71f9c53cb3a3130adcbbf92a081fbe2b32efd626 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -547,6 +547,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -547,6 +547,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

View File

@@ -52,7 +52,7 @@ index f56e5c0f53f9b52a9247b9be9265b949494fc924..f8e0746433057297c88f0237502da856
public static <T> TicketType<T> create(String name, Comparator<T> argumentComparator) { public static <T> TicketType<T> create(String name, Comparator<T> argumentComparator) {
return new TicketType<>(name, argumentComparator, 0L); return new TicketType<>(name, argumentComparator, 0L);
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 7c32f41cca62d03b8fcd6e5486a32c9872ab040c..471c8a43337d8d93d0532a333dfae2166725f5d9 100644 index d2e91843df93753a78bb9bd6839de287dc2ce4e5..87a117c74dcee2e58126e133b853a56a7965e55f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -553,6 +553,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -553,6 +553,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -76,7 +76,7 @@ index 7c32f41cca62d03b8fcd6e5486a32c9872ab040c..471c8a43337d8d93d0532a333dfae216
public Entity(EntityType<?> type, Level world) { public Entity(EntityType<?> type, Level world) {
this.id = Entity.ENTITY_COUNTER.incrementAndGet(); this.id = Entity.ENTITY_COUNTER.incrementAndGet();
@@ -1502,7 +1516,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1504,7 +1518,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.getCollisions( ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.getCollisions(
world, (Entity)(Object)this, collisionBox, potentialCollisionsVoxel, potentialCollisionsBB, world, (Entity)(Object)this, collisionBox, potentialCollisionsVoxel, potentialCollisionsBB,
@@ -85,7 +85,7 @@ index 7c32f41cca62d03b8fcd6e5486a32c9872ab040c..471c8a43337d8d93d0532a333dfae216
null, null null, null
); );
@@ -4872,12 +4886,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4874,12 +4888,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@Override @Override
public boolean shouldBeSaved() { public boolean shouldBeSaved() {

View File

@@ -185,10 +185,10 @@ index 8ea2f24695f5dad55e21f238b69442513e7a90c6..66ce58684d7a571ebcb33e62ef1d67fe
if (this.entity instanceof LivingEntity) { if (this.entity instanceof LivingEntity) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 067a0aa9a57628d0d7b41e419d91df5ece7ec3d3..a5c69230536d163496e0d7f175fd240c6202584a 100644 index 87a117c74dcee2e58126e133b853a56a7965e55f..9c890b1bc77834799abdbb403aeeb928ed0125ec 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3493,7 +3493,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3495,7 +3495,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID); this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID);
return; return;
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise paper explosions
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b740025c29443e 100644 index f696afd7e241bf1966a2d505b5d59bff824b43e4..611fc40fd7461f6d9cd9e737de71e702bf1f36c5 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -100,7 +100,7 @@ public class Explosion { @@ -101,7 +101,7 @@ public class Explosion {
} }
} }
@@ -17,7 +17,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
} }
private static final int CHUNK_CACHE_SHIFT = 2; private static final int CHUNK_CACHE_SHIFT = 2;
@@ -315,6 +315,39 @@ public class Explosion { @@ -316,6 +316,39 @@ public class Explosion {
return (float)missedRays / (float)totalRays; return (float)missedRays / (float)totalRays;
} }
// Paper end - optimise collisions // Paper end - optimise collisions
@@ -57,7 +57,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
public static DamageSource getDefaultDamageSource(Level world, @Nullable Entity source) { public static DamageSource getDefaultDamageSource(Level world, @Nullable Entity source) {
return world.damageSources().explosion(source, Explosion.getIndirectSourceEntityInternal(source)); return world.damageSources().explosion(source, Explosion.getIndirectSourceEntityInternal(source));
@@ -438,6 +471,16 @@ public class Explosion { @@ -439,6 +472,16 @@ public class Explosion {
int j; int j;
// Paper start - collision optimisations // Paper start - collision optimisations
@@ -74,7 +74,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
for (int ray = 0, len = CACHED_RAYS.length; ray < len;) { for (int ray = 0, len = CACHED_RAYS.length; ray < len;) {
ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache cachedBlock = initialCache; ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache cachedBlock = initialCache;
@@ -509,25 +552,64 @@ public class Explosion { @@ -510,25 +553,64 @@ public class Explosion {
} }
// Paper - optimise collisions // Paper - optimise collisions
@@ -93,7 +93,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
int i1 = Mth.floor(this.y + (double) f2 + 1.0D); int i1 = Mth.floor(this.y + (double) f2 + 1.0D);
int j1 = Mth.floor(this.z - (double) f2 - 1.0D); int j1 = Mth.floor(this.z - (double) f2 - 1.0D);
int k1 = Mth.floor(this.z + (double) f2 + 1.0D); int k1 = Mth.floor(this.z + (double) f2 + 1.0D);
- List<Entity> list = this.level.getEntities(this.source, new AABB((double) i, (double) l, (double) j1, (double) j, (double) i1, (double) k1), (com.google.common.base.Predicate<Entity>) entity -> entity.isAlive() && !entity.isSpectator()); // Paper - Fix lag from explosions processing dead entities - List<Entity> list = this.level.getEntities(excludeSourceFromDamage ? this.source : null, new AABB((double) i, (double) l, (double) j1, (double) j, (double) i1, (double) k1), (com.google.common.base.Predicate<Entity>) entity -> entity.isAlive() && !entity.isSpectator()); // Paper - Fix lag from explosions processing dead entities, Allow explosions to damage source
+ return new AABB((double) i, (double) l, (double) j1, (double) j, (double) i1, (double) k1); + return new AABB((double) i, (double) l, (double) j1, (double) j, (double) i1, (double) k1);
+ } + }
+ +
@@ -141,12 +141,12 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
+ } + }
+ +
+ protected final void impactEntity(ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[] blockCache, BlockPos.MutableBlockPos blockPos, float f2, Vec3 vec3d, Entity entity) { + protected final void impactEntity(ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[] blockCache, BlockPos.MutableBlockPos blockPos, float f2, Vec3 vec3d, Entity entity) {
+ if (entity.isAlive() && !entity.isSpectator()) { // Paper - Fix lag from explosions processing dead entities + if (entity.isAlive() && !entity.isSpectator() && (!this.excludeSourceFromDamage || entity != this.source)) { // Paper - Fix lag from explosions processing dead entities
+ // Sakura end - optimise paper explosions + // Sakura end - optimise paper explosions
if (!entity.ignoreExplosion(this)) { if (!entity.ignoreExplosion(this)) {
double d7 = Math.sqrt(entity.distanceToSqr(vec3d)) / (double) f2; double d7 = Math.sqrt(entity.distanceToSqr(vec3d)) / (double) f2;
@@ -552,7 +634,7 @@ public class Explosion { @@ -553,7 +635,7 @@ public class Explosion {
// - Damaging EntityEnderDragon does nothing // - Damaging EntityEnderDragon does nothing
// - EntityEnderDragon hitbock always covers the other parts and is therefore always present // - EntityEnderDragon hitbock always covers the other parts and is therefore always present
if (entity instanceof EnderDragonPart) { if (entity instanceof EnderDragonPart) {
@@ -155,7 +155,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
} }
entity.lastDamageCancelled = false; entity.lastDamageCancelled = false;
@@ -560,9 +642,10 @@ public class Explosion { @@ -561,9 +643,10 @@ public class Explosion {
seenFraction = (double)this.getBlockDensity(vec3d, entity, blockCache, blockPos); // Paper - optimise collisions seenFraction = (double)this.getBlockDensity(vec3d, entity, blockCache, blockPos); // Paper - optimise collisions
if (entity instanceof EnderDragon) { if (entity instanceof EnderDragon) {
@@ -167,7 +167,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
entityComplexPart.hurt(this.damageSource, this.damageCalculator.getEntityDamageAmount(this, entity)); entityComplexPart.hurt(this.damageSource, this.damageCalculator.getEntityDamageAmount(this, entity));
} }
} }
@@ -576,7 +659,7 @@ public class Explosion { @@ -577,7 +660,7 @@ public class Explosion {
} }
if (entity.lastDamageCancelled) { // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Skip entity if damage event was cancelled if (entity.lastDamageCancelled) { // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Skip entity if damage event was cancelled
@@ -176,7 +176,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
} }
// CraftBukkit end // CraftBukkit end
} else { seenFraction = (double)this.getBlockDensity(vec3d, entity, blockCache, blockPos); } // Paper - optimise collisions } else { seenFraction = (double)this.getBlockDensity(vec3d, entity, blockCache, blockPos); } // Paper - optimise collisions
@@ -619,6 +702,11 @@ public class Explosion { @@ -620,6 +703,11 @@ public class Explosion {
} }
} }
} }

View File

@@ -410,7 +410,7 @@ index d48a1f7d23d1c47465ad8df37facbabe3a15c543..012bec9a32acc26f65c8efbfde341b0d
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 61ebb6db40626442b75cf768e1bacce3c5c09ec0..65a71789571f896fc25a3eec22ee7808130a1578 100644 index df6074dae80cce98ce27bd28280c246dafa9562a..0a29ad6409226ece40c03c6eba699592c7f0aa11 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -714,6 +714,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. @@ -714,6 +714,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
@@ -438,7 +438,7 @@ index 61ebb6db40626442b75cf768e1bacce3c5c09ec0..65a71789571f896fc25a3eec22ee7808
this.guardEntityTick(this::tickNonPassenger, entity); this.guardEntityTick(this::tickNonPassenger, entity);
gameprofilerfiller.pop(); gameprofilerfiller.pop();
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 86fc7094d540573a559dd47a1dab7479dc27c1e7..5932aea4430f445eddf9a27d3f93bfc7d58d20e3 100644 index 04ff913f304c7b70b5fcbf866984cb0a91c2b05c..a636c0331b6c963224727eaaed9c09d29ba9d2d7 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -586,6 +586,23 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -586,6 +586,23 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -465,7 +465,7 @@ index 86fc7094d540573a559dd47a1dab7479dc27c1e7..5932aea4430f445eddf9a27d3f93bfc7
public Entity(EntityType<?> type, Level world) { public Entity(EntityType<?> type, Level world) {
this.id = Entity.ENTITY_COUNTER.incrementAndGet(); this.id = Entity.ENTITY_COUNTER.incrementAndGet();
@@ -4876,6 +4893,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4878,6 +4895,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
if (this.removalReason != Entity.RemovalReason.UNLOADED_TO_CHUNK) { this.getPassengers().forEach(Entity::stopRiding); } // Paper - rewrite chunk system if (this.removalReason != Entity.RemovalReason.UNLOADED_TO_CHUNK) { this.getPassengers().forEach(Entity::stopRiding); } // Paper - rewrite chunk system
this.levelCallback.onRemove(entity_removalreason); this.levelCallback.onRemove(entity_removalreason);
@@ -676,7 +676,7 @@ index 888d018a8e73234332455b7d3700e70e1a50c5db..a8e540c8a27135336fb2d6e37aec13d5
} }
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 0925de100a7da3bba6c3fab7a0c79b2ee0d86904..186f1be4aca5295ca260f3808d332cb5ed77bc7e 100644 index 0a0884ceb365e01432126b414335c1ff8fa8e084..dc2b8e054a3dd89e1c45d0c96ad640a7d32a2c0d 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -695,6 +695,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -695,6 +695,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl

View File

@@ -138,10 +138,10 @@ index 012bec9a32acc26f65c8efbfde341b0d15a4e822..8041737aa751bec1c51ee3d9dacd6dfb
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 80bd249e9572fd0c9ebf53c4731ed50a65290c74..fd1d9e0a8b55378c9cd06369d1850f97b63ab7d7 100644 index 611fc40fd7461f6d9cd9e737de71e702bf1f36c5..d8baaed4ae55c079bdfd684b6d942923dfbbbcd1 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -305,7 +305,12 @@ public class Explosion { @@ -306,7 +306,12 @@ public class Explosion {
Math.fma(dz, diffZ, offZ) Math.fma(dz, diffZ, offZ)
); );
@@ -155,7 +155,7 @@ index 80bd249e9572fd0c9ebf53c4731ed50a65290c74..fd1d9e0a8b55378c9cd06369d1850f97
++missedRays; ++missedRays;
} }
} }
@@ -411,7 +416,16 @@ public class Explosion { @@ -412,7 +417,16 @@ public class Explosion {
double d10 = Mth.lerp(d7, axisalignedbb.minZ, axisalignedbb.maxZ); double d10 = Mth.lerp(d7, axisalignedbb.minZ, axisalignedbb.maxZ);
Vec3 vec3d1 = new Vec3(d8 + d3, d9, d10 + d4); Vec3 vec3d1 = new Vec3(d8 + d3, d9, d10 + d4);
@@ -173,7 +173,7 @@ index 80bd249e9572fd0c9ebf53c4731ed50a65290c74..fd1d9e0a8b55378c9cd06369d1850f97
++i; ++i;
} }
@@ -801,6 +815,11 @@ public class Explosion { @@ -802,6 +816,11 @@ public class Explosion {
}); });
} }
@@ -185,7 +185,7 @@ index 80bd249e9572fd0c9ebf53c4731ed50a65290c74..fd1d9e0a8b55378c9cd06369d1850f97
Iterator iterator = list.iterator(); Iterator iterator = list.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
@@ -929,14 +948,12 @@ public class Explosion { @@ -930,14 +949,12 @@ public class Explosion {
} }
// Paper start - Optimize explosions // Paper start - Optimize explosions
private float getBlockDensity(Vec3 vec3d, Entity entity, ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[] blockCache, BlockPos.MutableBlockPos blockPos) { // Paper - optimise collisions private float getBlockDensity(Vec3 vec3d, Entity entity, ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[] blockCache, BlockPos.MutableBlockPos blockPos) { // Paper - optimise collisions
@@ -207,7 +207,7 @@ index 80bd249e9572fd0c9ebf53c4731ed50a65290c74..fd1d9e0a8b55378c9cd06369d1850f97
return blockDensity; return blockDensity;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 186f1be4aca5295ca260f3808d332cb5ed77bc7e..8e12d473bfd7dad4dfda8bba503f475151da0ad1 100644 index dc2b8e054a3dd89e1c45d0c96ad640a7d32a2c0d..ed049df61d38ed06076273115b841e2852963844 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -696,6 +696,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -696,6 +696,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise explosions in protected regions
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 3ad6f5f19c9fae2f00c662971eaa613c1a0ddbcf..da423a9211dd72bc531d7f0f65aab08b5c44f39c 100644 index d8baaed4ae55c079bdfd684b6d942923dfbbbcd1..220d97947df493d1ab825e6637ca648e0b186d18 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -353,6 +353,22 @@ public class Explosion { @@ -354,6 +354,22 @@ public class Explosion {
return rays; return rays;
} }
// Sakura end - optimise paper explosions // Sakura end - optimise paper explosions
@@ -31,7 +31,7 @@ index 3ad6f5f19c9fae2f00c662971eaa613c1a0ddbcf..da423a9211dd72bc531d7f0f65aab08b
public static DamageSource getDefaultDamageSource(Level world, @Nullable Entity source) { public static DamageSource getDefaultDamageSource(Level world, @Nullable Entity source) {
return world.damageSources().explosion(source, Explosion.getIndirectSourceEntityInternal(source)); return world.damageSources().explosion(source, Explosion.getIndirectSourceEntityInternal(source));
@@ -486,7 +502,7 @@ public class Explosion { @@ -487,7 +503,7 @@ public class Explosion {
// Paper start - collision optimisations // Paper start - collision optimisations
// Sakura start - optimise paper explosions // Sakura start - optimise paper explosions

View File

@@ -23,10 +23,10 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..1e1329adde1457898a3002279b53b1bb
if (index >= 0) { if (index >= 0) {
diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..58add5bd1afc2f3e89b9a7d0d9a325bf17b77a18 index 0000000000000000000000000000000000000000..86a4b9502df49b1614fc76920b164e1148244643
--- /dev/null --- /dev/null
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java +++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
@@ -0,0 +1,218 @@ @@ -0,0 +1,222 @@
+package me.samsuik.sakura.explosion.special; +package me.samsuik.sakura.explosion.special;
+ +
+import ca.spottedleaf.moonrise.common.util.WorldUtil; +import ca.spottedleaf.moonrise.common.util.WorldUtil;
@@ -41,6 +41,7 @@ index 0000000000000000000000000000000000000000..58add5bd1afc2f3e89b9a7d0d9a325bf
+import net.minecraft.util.Mth; +import net.minecraft.util.Mth;
+import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.damagesource.DamageSource;
+import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.Entity;
+import net.minecraft.world.entity.item.PrimedTnt;
+import net.minecraft.world.level.Explosion; +import net.minecraft.world.level.Explosion;
+import net.minecraft.world.level.ExplosionDamageCalculator; +import net.minecraft.world.level.ExplosionDamageCalculator;
+import net.minecraft.world.level.Level; +import net.minecraft.world.level.Level;
@@ -191,6 +192,9 @@ index 0000000000000000000000000000000000000000..58add5bd1afc2f3e89b9a7d0d9a325bf
+ } + }
+ +
+ protected final void impactEntity(Entity entity, Vec3 pos, int potential, double radius) { + protected final void impactEntity(Entity entity, Vec3 pos, int potential, double radius) {
+ if (this.excludeSourceFromDamage && entity == this.source) {
+ return; // for paper api
+ }
+ if (entity.isPrimedTNT || entity.isFallingBlock) { + if (entity.isPrimedTNT || entity.isFallingBlock) {
+ this.impactCannonEntity(entity, pos, potential, radius); + this.impactCannonEntity(entity, pos, potential, radius);
+ } else { + } else {
@@ -459,10 +463,10 @@ index 0000000000000000000000000000000000000000..a5d13c6b0d8765e4a65b43f5835fd907
+ } + }
+} +}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 65a71789571f896fc25a3eec22ee7808130a1578..fc84d393df406cc9895ee063422afe562762d443 100644 index 0a29ad6409226ece40c03c6eba699592c7f0aa11..9e059ca44d19da96ff5fbe84a716e747036025d3 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1796,6 +1796,12 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. @@ -1798,6 +1798,12 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
explosion.clearToBlow(); explosion.clearToBlow();
} }
@@ -475,7 +479,7 @@ index 65a71789571f896fc25a3eec22ee7808130a1578..fc84d393df406cc9895ee063422afe56
Iterator iterator = this.players.iterator(); Iterator iterator = this.players.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
@@ -1806,7 +1812,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. @@ -1808,7 +1814,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
} }
} }
@@ -511,7 +515,7 @@ index a8e540c8a27135336fb2d6e37aec13d598b2000e..e64c85bf8fbd3ad0d7e8a6e4a34aed81
// Sakura end - merge cannon entities // Sakura end - merge cannon entities
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac68ece9af7 100644 index 220d97947df493d1ab825e6637ca648e0b186d18..5cac17def6b49316ae8fb994d4f3d80154074fe0 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -57,9 +57,11 @@ public class Explosion { @@ -57,9 +57,11 @@ public class Explosion {
@@ -529,7 +533,7 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
@Nullable @Nullable
public final Entity source; public final Entity source;
private final float radius; private final float radius;
@@ -114,10 +116,10 @@ public class Explosion { @@ -115,10 +117,10 @@ public class Explosion {
// resistance = (res + 0.3F) * 0.3F; // resistance = (res + 0.3F) * 0.3F;
// so for resistance = 0, we need res = -0.3F // so for resistance = 0, we need res = -0.3F
private static final Float ZERO_RESISTANCE = Float.valueOf(-0.3f); private static final Float ZERO_RESISTANCE = Float.valueOf(-0.3f);
@@ -542,7 +546,7 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
final long key, final boolean calculateResistance) { final long key, final boolean calculateResistance) {
ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache ret = this.blockCache.get(key); ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache ret = this.blockCache.get(key);
if (ret != null) { if (ret != null) {
@@ -215,7 +217,7 @@ public class Explosion { @@ -216,7 +218,7 @@ public class Explosion {
(currZ & BLOCK_EXPLOSION_CACHE_MASK) << (BLOCK_EXPLOSION_CACHE_SHIFT + BLOCK_EXPLOSION_CACHE_SHIFT); (currZ & BLOCK_EXPLOSION_CACHE_MASK) << (BLOCK_EXPLOSION_CACHE_SHIFT + BLOCK_EXPLOSION_CACHE_SHIFT);
ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache cachedBlock = blockCache[cacheKey]; ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache cachedBlock = blockCache[cacheKey];
if (cachedBlock == null || cachedBlock.key != key) { if (cachedBlock == null || cachedBlock.key != key) {
@@ -551,7 +555,7 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
} }
final BlockState blockState = cachedBlock.blockState; final BlockState blockState = cachedBlock.blockState;
@@ -369,6 +371,28 @@ public class Explosion { @@ -370,6 +372,28 @@ public class Explosion {
return true; return true;
} }
// Sakura end - optimise explosion protected regions // Sakura end - optimise explosion protected regions
@@ -580,7 +584,7 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
public static DamageSource getDefaultDamageSource(Level world, @Nullable Entity source) { public static DamageSource getDefaultDamageSource(Level world, @Nullable Entity source) {
return world.damageSources().explosion(source, Explosion.getIndirectSourceEntityInternal(source)); return world.damageSources().explosion(source, Explosion.getIndirectSourceEntityInternal(source));
@@ -472,16 +496,7 @@ public class Explosion { @@ -473,16 +497,7 @@ public class Explosion {
// CraftBukkit end // CraftBukkit end
this.level.gameEvent(this.source, (Holder) GameEvent.EXPLODE, new Vec3(this.x, this.y, this.z)); this.level.gameEvent(this.source, (Holder) GameEvent.EXPLODE, new Vec3(this.x, this.y, this.z));
@@ -598,7 +602,7 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
// use initial cache value that is most likely to be used: the source position // use initial cache value that is most likely to be used: the source position
final ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache initialCache; final ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache initialCache;
{ {
@@ -963,7 +978,7 @@ public class Explosion { @@ -964,7 +979,7 @@ public class Explosion {
private BlockInteraction() {} private BlockInteraction() {}
} }
// Paper start - Optimize explosions // Paper start - Optimize explosions
@@ -608,10 +612,10 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
float blockDensity = this.level.densityCache.getDensity(vec3d, entity); float blockDensity = this.level.densityCache.getDensity(vec3d, entity);
if (blockDensity == me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) { if (blockDensity == me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) {
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 8e12d473bfd7dad4dfda8bba503f475151da0ad1..eaafb99543869234e6bb8eb227bf9a0d6e8346d0 100644 index ed049df61d38ed06076273115b841e2852963844..c3260ad0ddb40fbde9c1aaf25c0a2be901357dcc 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1521,7 +1521,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -1537,7 +1537,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
} }
Explosion.BlockInteraction explosion_effect1 = explosion_effect; Explosion.BlockInteraction explosion_effect1 = explosion_effect;
@@ -624,6 +628,6 @@ index 8e12d473bfd7dad4dfda8bba503f475151da0ad1..eaafb99543869234e6bb8eb227bf9a0d
+ explosion = new Explosion(this, entity, damageSource, behavior, x, y, z, power, createFire, explosion_effect1, particle, emitterParticle, soundEvent); + explosion = new Explosion(this, entity, damageSource, behavior, x, y, z, power, createFire, explosion_effect1, particle, emitterParticle, soundEvent);
+ } + }
+ // Sakura end - specialised explosions + // Sakura end - specialised explosions
if (configurator != null) configurator.accept(explosion); // Paper - Allow explosions to damage source
explosion.explode(); explosion.explode();
explosion.finalizeExplosion(particles);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise cannon entity movement
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 023500526ab0a42bf7cbf21e1773cf5369aa2323..00fcff6e934ec7bc7a7ba853cab4c6e69c42af99 100644 index a636c0331b6c963224727eaaed9c09d29ba9d2d7..b8b86de79c276b89ff5d4f9469c3456104dcc00e 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1164,6 +1164,93 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1166,6 +1166,93 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return this.moveStartZ; return this.moveStartZ;
} }
// Paper end - detailed watchdog information // Paper end - detailed watchdog information
@@ -102,7 +102,7 @@ index 023500526ab0a42bf7cbf21e1773cf5369aa2323..00fcff6e934ec7bc7a7ba853cab4c6e6
public void move(MoverType movementType, Vec3 movement) { public void move(MoverType movementType, Vec3 movement) {
final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity
@@ -1508,6 +1595,95 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1510,6 +1597,95 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return offsetFactor; return offsetFactor;
} }
@@ -199,7 +199,7 @@ index 023500526ab0a42bf7cbf21e1773cf5369aa2323..00fcff6e934ec7bc7a7ba853cab4c6e6
// Paper start - optimise collisions // Paper start - optimise collisions
final boolean xZero = movement.x == 0.0; final boolean xZero = movement.x == 0.0;
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
index 19eed968884f79a7982d96ae8c3c378f00afbdf9..cc5ef63a99a18f093f600612bf972cf50722e3a5 100644 index 53488a1d0c56e7da4cf93c08cab01a033fb4f1f8..d1e06ef173468fa722d4b121e44ac0a9a314ee78 100644
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
@@ -204,7 +204,7 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti @@ -204,7 +204,7 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti
@@ -212,7 +212,7 @@ index 19eed968884f79a7982d96ae8c3c378f00afbdf9..cc5ef63a99a18f093f600612bf972cf5
if (this.level().paperConfig().fixes.fallingBlockHeightNerf.test(v -> this.getY() > v)) { if (this.level().paperConfig().fixes.fallingBlockHeightNerf.test(v -> this.getY() > v)) {
if (this.dropItem && this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) { if (this.dropItem && this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) {
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
index e048542cdd1fe9c807ce21e57af9cf59b4adb33f..fdbc990af4190f93f207c3309cf9f89613092c0a 100644 index e64c85bf8fbd3ad0d7e8a6e4a34aed8140f4f8bc..1a2cdd2235dfa930e82151a370ddf2e60f2866fa 100644
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
@@ -124,7 +124,7 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak @@ -124,7 +124,7 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Entity pushed by fluid API
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index ba13fcd0c01dc2c4068017fa0c008016640c4c8b..232132951856f244bcbf978709bef98da2f8827d 100644 index b8b86de79c276b89ff5d4f9469c3456104dcc00e..18f3aaa704a9f04aa5bac468f2e5963538629f64 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -603,6 +603,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -603,6 +603,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -16,7 +16,7 @@ index ba13fcd0c01dc2c4068017fa0c008016640c4c8b..232132951856f244bcbf978709bef98d
public Entity(EntityType<?> type, Level world) { public Entity(EntityType<?> type, Level world) {
this.id = Entity.ENTITY_COUNTER.incrementAndGet(); this.id = Entity.ENTITY_COUNTER.incrementAndGet();
@@ -4169,7 +4170,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4171,7 +4172,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public boolean isPushedByFluid() { public boolean isPushedByFluid() {
@@ -26,7 +26,7 @@ index ba13fcd0c01dc2c4068017fa0c008016640c4c8b..232132951856f244bcbf978709bef98d
public static double getViewScale() { public static double getViewScale() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index cd789c235acf740ec29c30b180e7fbe1a140caa9..f837748105540ae77b718590f1387168e6c906ac 100644 index 89c8713d2c2206d1b0d8c0a392c9d13b3e736f0c..38ef55af47c7eb24ebc719c63298a9b071693f4e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -203,6 +203,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -203,6 +203,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise TNT fluid state
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 08b795b91138e052e6df6c477700de8ef7aabb5b..18cefd77146cee72f1818cbb725dd1704ae5fec0 100644 index 18f3aaa704a9f04aa5bac468f2e5963538629f64..6131a99836b721f468d21df00c8d0f2bcb7feda9 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2151,7 +2151,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -2153,7 +2153,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return this.isInWater() || flag; return this.isInWater() || flag;
} }
@@ -18,7 +18,7 @@ index 08b795b91138e052e6df6c477700de8ef7aabb5b..18cefd77146cee72f1818cbb725dd170
if (entity instanceof Boat entityboat) { if (entity instanceof Boat entityboat) {
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
index ee5d0dd90ebc2eb3280c9047450f8eac5dca167c..64ebae26c3c58c94b9907a5819cdc09f4f748cf1 100644 index 12983f598ffbd395b718878ac3865c0c5e5104fb..89d297bbec6034630fe0dbb84c079023611194a3 100644
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
@@ -120,6 +120,21 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak @@ -120,6 +120,21 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak

View File

@@ -98,10 +98,10 @@ index efc0c1acc8239dd7b00211a1d3bfd3fc3b2c810c..0ffbc8b459c3475ff0a9c307cb7bd144
\ No newline at end of file \ No newline at end of file
+} +}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index eaafb99543869234e6bb8eb227bf9a0d6e8346d0..ec47e7da3c06ee74e0c134e4a881ab373fc68af8 100644 index c3260ad0ddb40fbde9c1aaf25c0a2be901357dcc..75d11642b7246bae4073feec09c0cf21c24622ca 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1668,10 +1668,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -1685,10 +1685,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
this.getEntities(filter, box, predicate, result, Integer.MAX_VALUE); this.getEntities(filter, box, predicate, result, Integer.MAX_VALUE);
} }
@@ -121,7 +121,7 @@ index eaafb99543869234e6bb8eb227bf9a0d6e8346d0..ec47e7da3c06ee74e0c134e4a881ab37
this.getProfiler().incrementCounter("getEntities"); this.getProfiler().incrementCounter("getEntities");
if (entityTypeTest instanceof net.minecraft.world.entity.EntityType<T> byType) { if (entityTypeTest instanceof net.minecraft.world.entity.EntityType<T> byType) {
@@ -1686,7 +1694,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -1703,7 +1711,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
if (entityTypeTest == null) { if (entityTypeTest == null) {
if (maxCount != Integer.MAX_VALUE) { if (maxCount != Integer.MAX_VALUE) {

View File

@@ -104,10 +104,10 @@ index a8008c7550488be34b51f4280f5569170b1ebd1d..2e5a46b9d27b930870c68dbde93d8731
public String getDescriptionId() { public String getDescriptionId() {
return this.getOrCreateDescriptionId(); return this.getOrCreateDescriptionId();
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 4702f1d07ad32e94aeada46122f84ac68ece9af7..da6f8d2f9b27de6c256920187c9841536842147b 100644 index 5cac17def6b49316ae8fb994d4f3d80154074fe0..407154670acbec704ef6804a33c320ab9246c16d 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -144,7 +144,7 @@ public class Explosion { @@ -145,7 +145,7 @@ public class Explosion {
BlockState blockState = ((ca.spottedleaf.moonrise.patches.chunk_getblock.GetBlockChunk)chunk).moonrise$getBlock(x, y, z); BlockState blockState = ((ca.spottedleaf.moonrise.patches.chunk_getblock.GetBlockChunk)chunk).moonrise$getBlock(x, y, z);
FluidState fluidState = blockState.getFluidState(); FluidState fluidState = blockState.getFluidState();
@@ -116,7 +116,7 @@ index 4702f1d07ad32e94aeada46122f84ac68ece9af7..da6f8d2f9b27de6c256920187c984153
ret = new ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache( ret = new ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache(
key, pos, blockState, fluidState, key, pos, blockState, fluidState,
@@ -158,6 +158,21 @@ public class Explosion { @@ -159,6 +159,21 @@ public class Explosion {
return ret; return ret;
} }
@@ -138,7 +138,7 @@ index 4702f1d07ad32e94aeada46122f84ac68ece9af7..da6f8d2f9b27de6c256920187c984153
private boolean clipsAnything(final Vec3 from, final Vec3 to, private boolean clipsAnything(final Vec3 from, final Vec3 to,
final ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.LazyEntityCollisionContext context, final ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.LazyEntityCollisionContext context,
final ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[] blockCache, final ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[] blockCache,
@@ -831,6 +846,16 @@ public class Explosion { @@ -832,6 +847,16 @@ public class Explosion {
// CraftBukkit start - TNTPrimeEvent // CraftBukkit start - TNTPrimeEvent
BlockState iblockdata = this.level.getBlockState(blockposition); BlockState iblockdata = this.level.getBlockState(blockposition);
Block block = iblockdata.getBlock(); Block block = iblockdata.getBlock();
@@ -156,7 +156,7 @@ index 4702f1d07ad32e94aeada46122f84ac68ece9af7..da6f8d2f9b27de6c256920187c984153
Entity sourceEntity = this.source == null ? null : this.source; Entity sourceEntity = this.source == null ? null : this.source;
BlockPos sourceBlock = sourceEntity == null ? BlockPos.containing(this.x, this.y, this.z) : null; BlockPos sourceBlock = sourceEntity == null ? BlockPos.containing(this.x, this.y, this.z) : null;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index ec47e7da3c06ee74e0c134e4a881ab373fc68af8..88aa465a4bc6ae79dbad8dc8ecc21345f70abf0b 100644 index 75d11642b7246bae4073feec09c0cf21c24622ca..2cf25b6e51f1c430f80f1defe365b0373227bed2 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -697,6 +697,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -697,6 +697,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Destroy Waterlogged Blocks
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index da1dd876b5e64d1f5fefd0701f380ff20b965e0f..099e733940667ed146d7687634bb99855b439616 100644 index 407154670acbec704ef6804a33c320ab9246c16d..b32f377079a7c97840079b0a6b541be936c822dd 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -167,6 +167,11 @@ public class Explosion { @@ -168,6 +168,11 @@ public class Explosion {
if (material != null && material.resistance() >= 0.0f && (this.level.sakuraConfig().cannons.explosion.allowNonTntBreakingDurableBlocks || this.source instanceof net.minecraft.world.entity.item.PrimedTnt)) { if (material != null && material.resistance() >= 0.0f && (this.level.sakuraConfig().cannons.explosion.allowNonTntBreakingDurableBlocks || this.source instanceof net.minecraft.world.entity.item.PrimedTnt)) {
return Optional.of(material.resistance()); return Optional.of(material.resistance());
} }

View File

@@ -5,18 +5,18 @@ Subject: [PATCH] Consistent Explosion Radius
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 81284ec481ac6cc82d2b1171d1772c107d1a5a0c..0dd0397036309c881f955b78ba3934e33bcf18fd 100644 index b32f377079a7c97840079b0a6b541be936c822dd..fa142719b1c4f6434466141128c475ef945edbb7 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -76,6 +76,7 @@ public class Explosion { @@ -77,6 +77,7 @@ public class Explosion {
public boolean wasCanceled = false;
public float yield; public float yield;
// CraftBukkit end // CraftBukkit end
public boolean excludeSourceFromDamage = true; // Paper - Allow explosions to damage source
+ private final boolean consistentRadius; // Sakura - consistent explosion radius + private final boolean consistentRadius; // Sakura - consistent explosion radius
// Paper start - optimise collisions // Paper start - optimise collisions
private static final double[] CACHED_RAYS; private static final double[] CACHED_RAYS;
@@ -450,6 +451,7 @@ public class Explosion { @@ -451,6 +452,7 @@ public class Explosion {
this.largeExplosionParticles = emitterParticle; this.largeExplosionParticles = emitterParticle;
this.explosionSound = soundEvent; this.explosionSound = soundEvent;
this.yield = this.blockInteraction == Explosion.BlockInteraction.DESTROY_WITH_DECAY ? 1.0F / this.radius : 1.0F; // CraftBukkit this.yield = this.blockInteraction == Explosion.BlockInteraction.DESTROY_WITH_DECAY ? 1.0F / this.radius : 1.0F; // CraftBukkit
@@ -24,7 +24,7 @@ index 81284ec481ac6cc82d2b1171d1772c107d1a5a0c..0dd0397036309c881f955b78ba3934e3
} }
private ExplosionDamageCalculator makeDamageCalculator(@Nullable Entity entity) { private ExplosionDamageCalculator makeDamageCalculator(@Nullable Entity entity) {
@@ -558,7 +560,7 @@ public class Explosion { @@ -559,7 +561,7 @@ public class Explosion {
final double incZ = CACHED_RAYS[ray + 2]; final double incZ = CACHED_RAYS[ray + 2];
ray += 3; ray += 3;

View File

@@ -67,10 +67,10 @@ index ea6e252053b8910141aacd5bb82108d6abf3fb96..aa23d2665d5804e31b7c1b7021377010
if (xSmaller && z != 0.0) { if (xSmaller && z != 0.0) {
z = performAABBCollisionsZ(axisalignedbb, z, aabbs); z = performAABBCollisionsZ(axisalignedbb, z, aabbs);
diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
index 58add5bd1afc2f3e89b9a7d0d9a325bf17b77a18..8ff4ce297e9e799b14d623b49493c5a4638153fc 100644 index 86a4b9502df49b1614fc76920b164e1148244643..8db362721860fe8d5eb497a766e6d1b7879cb455 100644
--- a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java --- a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java +++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
@@ -176,9 +176,15 @@ public abstract class SpecialisedExplosion<T extends Entity> extends Explosion { @@ -180,9 +180,15 @@ public abstract class SpecialisedExplosion<T extends Entity> extends Explosion {
if (distanceFromBottom <= 1.0) { if (distanceFromBottom <= 1.0) {
double x = entity.getX() - pos.x; double x = entity.getX() - pos.x;
@@ -106,7 +106,7 @@ index a5d13c6b0d8765e4a65b43f5835fd907738e1da4..19f0d8cf94a60b66cead3c129ded69fc
protected int getExplosionCount() { protected int getExplosionCount() {
if (this.cause.getMergeEntityData().getMergeLevel() == MergeLevel.NONE) { if (this.cause.getMergeEntityData().getMergeLevel() == MergeLevel.NONE) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c012879306c94af4a 100644 index 6131a99836b721f468d21df00c8d0f2bcb7feda9..4a899864f460c80bbc6d5d6849e0421c2e392495 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -384,7 +384,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -384,7 +384,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -132,7 +132,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
public Entity(EntityType<?> type, Level world) { public Entity(EntityType<?> type, Level world) {
this.id = Entity.ENTITY_COUNTER.incrementAndGet(); this.id = Entity.ENTITY_COUNTER.incrementAndGet();
@@ -1111,7 +1118,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1113,7 +1120,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
protected void checkSupportingBlock(boolean onGround, @Nullable Vec3 movement) { protected void checkSupportingBlock(boolean onGround, @Nullable Vec3 movement) {
@@ -141,7 +141,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
AABB axisalignedbb = this.getBoundingBox(); AABB axisalignedbb = this.getBoundingBox();
AABB axisalignedbb1 = new AABB(axisalignedbb.minX, axisalignedbb.minY - 1.0E-6D, axisalignedbb.minZ, axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.maxZ); AABB axisalignedbb1 = new AABB(axisalignedbb.minX, axisalignedbb.minY - 1.0E-6D, axisalignedbb.minZ, axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.maxZ);
Optional<BlockPos> optional = this.level.findSupportingBlock(this, axisalignedbb1); Optional<BlockPos> optional = this.level.findSupportingBlock(this, axisalignedbb1);
@@ -1171,7 +1178,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1173,7 +1180,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
if (this.noPhysics) { if (this.noPhysics) {
this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z);
} else { } else {
@@ -150,7 +150,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
movement = this.limitPistonMovement(movement); movement = this.limitPistonMovement(movement);
if (movement.equals(Vec3.ZERO)) { if (movement.equals(Vec3.ZERO)) {
return; return;
@@ -1189,10 +1196,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1191,10 +1198,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
Vec3 vec3d1 = this.collideScan(movement); Vec3 vec3d1 = this.collideScan(movement);
double d0 = vec3d1.lengthSqr(); double d0 = vec3d1.lengthSqr();
@@ -164,7 +164,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
BlockHitResult movingobjectpositionblock = this.level().clip(new ClipContext(this.position(), this.position().add(vec3d1), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid.WATER, this)); BlockHitResult movingobjectpositionblock = this.level().clip(new ClipContext(this.position(), this.position().add(vec3d1), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid.WATER, this));
if (movingobjectpositionblock.getType() != HitResult.Type.MISS) { if (movingobjectpositionblock.getType() != HitResult.Type.MISS) {
@@ -1228,6 +1235,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1230,6 +1237,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
if (this.horizontalCollision) { if (this.horizontalCollision) {
Vec3 vec3d2 = this.getDeltaMovement(); Vec3 vec3d2 = this.getDeltaMovement();
@@ -176,7 +176,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
this.setDeltaMovement(flag ? 0.0D : vec3d2.x, vec3d2.y, flag1 ? 0.0D : vec3d2.z); this.setDeltaMovement(flag ? 0.0D : vec3d2.x, vec3d2.y, flag1 ? 0.0D : vec3d2.z);
} }
@@ -1269,7 +1281,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1271,7 +1283,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z);
} else { } else {
this.wasOnFire = this.isOnFire(); this.wasOnFire = this.isOnFire();
@@ -185,7 +185,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
this.activatedTick = Math.max(this.activatedTick, MinecraftServer.currentTick + 20); // Paper this.activatedTick = Math.max(this.activatedTick, MinecraftServer.currentTick + 20); // Paper
this.activatedImmunityTick = Math.max(this.activatedImmunityTick, MinecraftServer.currentTick + 20); // Paper this.activatedImmunityTick = Math.max(this.activatedImmunityTick, MinecraftServer.currentTick + 20); // Paper
movement = this.limitPistonMovement(movement); movement = this.limitPistonMovement(movement);
@@ -1296,8 +1308,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1298,8 +1310,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
Vec3 vec3d1 = this.collide(movement); Vec3 vec3d1 = this.collide(movement);
double d0 = vec3d1.lengthSqr(); double d0 = vec3d1.lengthSqr();
@@ -196,7 +196,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
BlockHitResult movingobjectpositionblock = this.level().clip(new ClipContext(this.position(), this.position().add(vec3d1), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid.WATER, this)); BlockHitResult movingobjectpositionblock = this.level().clip(new ClipContext(this.position(), this.position().add(vec3d1), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid.WATER, this));
if (movingobjectpositionblock.getType() != HitResult.Type.MISS) { if (movingobjectpositionblock.getType() != HitResult.Type.MISS) {
@@ -1333,6 +1345,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1335,6 +1347,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
if (this.horizontalCollision) { if (this.horizontalCollision) {
Vec3 vec3d2 = this.getDeltaMovement(); Vec3 vec3d2 = this.getDeltaMovement();
@@ -208,7 +208,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
this.setDeltaMovement(flag ? 0.0D : vec3d2.x, vec3d2.y, flag1 ? 0.0D : vec3d2.z); this.setDeltaMovement(flag ? 0.0D : vec3d2.x, vec3d2.y, flag1 ? 0.0D : vec3d2.z);
} }
@@ -1612,7 +1629,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1614,7 +1631,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} else { } else {
AABB bb = currBoundingBox.expandTowards(movement.x, movement.y, movement.z); AABB bb = currBoundingBox.expandTowards(movement.x, movement.y, movement.z);
this.collectCollisions(bb, potentialCollisionsVoxel, potentialCollisionsBB); this.collectCollisions(bb, potentialCollisionsVoxel, potentialCollisionsBB);
@@ -217,7 +217,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
} }
} }
@@ -1621,7 +1638,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1623,7 +1640,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
double y = movement.y; double y = movement.y;
double z = movement.z; double z = movement.z;
@@ -229,7 +229,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
if (y != 0.0) { if (y != 0.0) {
y = this.scanY(currBoundingBox, y, voxelList, bbList); y = this.scanY(currBoundingBox, y, voxelList, bbList);
@@ -1737,7 +1757,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1739,7 +1759,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return movement; return movement;
} }
@@ -238,7 +238,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
if (stepHeight > 0.0 if (stepHeight > 0.0
&& (onGround || (limitedMoveVector.y != movement.y && movement.y < 0.0)) && (onGround || (limitedMoveVector.y != movement.y && movement.y < 0.0))
@@ -1888,8 +1908,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1890,8 +1910,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
protected void checkInsideBlocks() { protected void checkInsideBlocks() {
AABB axisalignedbb = this.getBoundingBox(); AABB axisalignedbb = this.getBoundingBox();
@@ -475,18 +475,18 @@ index 4d0cfa1f96a04713cb1d51c7aaaf91374a0d6c17..96c43df6834e20a9e04eb095f36a644e
// Paper end - Option to prevent TNT from moving in water // Paper end - Option to prevent TNT from moving in water
} }
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c2c353368 100644 index fa142719b1c4f6434466141128c475ef945edbb7..cfeacded13f5ebbc3ef66163387c7a40622d7b74 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -77,6 +77,7 @@ public class Explosion { @@ -78,6 +78,7 @@ public class Explosion {
public float yield;
// CraftBukkit end // CraftBukkit end
public boolean excludeSourceFromDamage = true; // Paper - Allow explosions to damage source
private final boolean consistentRadius; // Sakura - consistent explosion radius private final boolean consistentRadius; // Sakura - consistent explosion radius
+ protected final me.samsuik.sakura.physics.PhysicsVersion physics; // Sakura - physics version api + protected final me.samsuik.sakura.physics.PhysicsVersion physics; // Sakura - physics version api
// Paper start - optimise collisions // Paper start - optimise collisions
private static final double[] CACHED_RAYS; private static final double[] CACHED_RAYS;
@@ -452,6 +453,7 @@ public class Explosion { @@ -453,6 +454,7 @@ public class Explosion {
this.explosionSound = soundEvent; this.explosionSound = soundEvent;
this.yield = this.blockInteraction == Explosion.BlockInteraction.DESTROY_WITH_DECAY ? 1.0F / this.radius : 1.0F; // CraftBukkit this.yield = this.blockInteraction == Explosion.BlockInteraction.DESTROY_WITH_DECAY ? 1.0F / this.radius : 1.0F; // CraftBukkit
this.consistentRadius = world.localConfig().config(BlockPos.containing(x, y, z)).consistentRadius; // Sakura - consistent explosion radius this.consistentRadius = world.localConfig().config(BlockPos.containing(x, y, z)).consistentRadius; // Sakura - consistent explosion radius
@@ -494,7 +494,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
} }
private ExplosionDamageCalculator makeDamageCalculator(@Nullable Entity entity) { private ExplosionDamageCalculator makeDamageCalculator(@Nullable Entity entity) {
@@ -483,8 +485,12 @@ public class Explosion { @@ -484,8 +486,12 @@ public class Explosion {
final float density = entity.level().densityCache.getKnownDensity(vec3d1); final float density = entity.level().densityCache.getKnownDensity(vec3d1);
if (density != me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) { if (density != me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) {
hitResult = density != 0.0f ? net.minecraft.world.phys.HitResult.Type.MISS : net.minecraft.world.phys.HitResult.Type.BLOCK; hitResult = density != 0.0f ? net.minecraft.world.phys.HitResult.Type.MISS : net.minecraft.world.phys.HitResult.Type.BLOCK;
@@ -508,7 +508,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
} }
if (hitResult == HitResult.Type.MISS) { if (hitResult == HitResult.Type.MISS) {
// Sakura end - replace density cache // Sakura end - replace density cache
@@ -580,6 +586,14 @@ public class Explosion { @@ -581,6 +587,14 @@ public class Explosion {
} }
if (cachedBlock.outOfWorld) { if (cachedBlock.outOfWorld) {
@@ -523,7 +523,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
break; break;
} }
// Paper end - collision optimisations // Paper end - collision optimisations
@@ -682,9 +696,15 @@ public class Explosion { @@ -683,9 +697,15 @@ public class Explosion {
if (d7 <= 1.0D) { if (d7 <= 1.0D) {
double d8 = entity.getX() - this.x; double d8 = entity.getX() - this.x;
@@ -540,7 +540,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
if (d11 != 0.0D) { if (d11 != 0.0D) {
d8 /= d11; d8 /= d11;
@@ -1014,7 +1034,7 @@ public class Explosion { @@ -1015,7 +1035,7 @@ public class Explosion {
// Sakura start - replace density cache // Sakura start - replace density cache
float blockDensity = this.level.densityCache.getDensity(vec3d, entity); float blockDensity = this.level.densityCache.getDensity(vec3d, entity);
if (blockDensity == me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) { if (blockDensity == me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) {
@@ -549,7 +549,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
this.level.densityCache.putDensity(vec3d, entity, blockDensity); this.level.densityCache.putDensity(vec3d, entity, blockDensity);
// Sakura end - replace density cache // Sakura end - replace density cache
} }
@@ -1022,6 +1042,17 @@ public class Explosion { @@ -1023,6 +1043,17 @@ public class Explosion {
return blockDensity; return blockDensity;
} }
@@ -568,7 +568,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
private final Level world; private final Level world;
private final double posX, posY, posZ; private final double posX, posY, posZ;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index d82d64c98fc7624dfcc86fcbf49cde108bb34ede..062bc318e9c4e3b9a6429ce0eaaa29081cd1d227 100644 index 20d6044e32cc56089a175675ff74dca02d68e75a..bd72b02c20fb56c2351f865dfff2573545ac313a 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -695,6 +695,170 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -695,6 +695,170 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow explosions to destroy lava
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 22fa16f67100c68668a99312e38475499acac38a..6fbdbaa399c9381ea6906e7af7a7a29a4adb1666 100644 index cfeacded13f5ebbc3ef66163387c7a40622d7b74..f39507dd7e0890446c9c16e6ae45d96302577253 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -174,6 +174,11 @@ public class Explosion { @@ -175,6 +175,11 @@ public class Explosion {
return Optional.of(ZERO_RESISTANCE); return Optional.of(ZERO_RESISTANCE);
} }
// Sakura end - destroy water logged blocks // Sakura end - destroy water logged blocks

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add explosions dropping items config
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 4ed468653f2487e62ad3c187d558978b05a3264d..ec0a3764e129faecce4fd35f4e301a6fe8a9061b 100644 index f39507dd7e0890446c9c16e6ae45d96302577253..98df890c88c6635566b5702080753f5cb0c20598 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -908,6 +908,11 @@ public class Explosion { @@ -909,6 +909,11 @@ public class Explosion {
this.level.densityCache.invalidate(); this.level.densityCache.invalidate();
} }
// Sakura end - explosion density cache // Sakura end - explosion density cache

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise check inside blocks and fluids
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index e1af8ca911513146eb04382b95fedbbf39545f91..b8688e0d8eb2ba25c15d9c4bad8d403e4625683d 100644 index eb90625e5a4b843877ba2f7b2510ba1c26d861ce..8237ed9645ccebc274d3e7bbb16444126638c7a2 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1922,18 +1922,37 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1924,18 +1924,37 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
BlockPos blockposition1 = BlockPos.containing(axisalignedbb.maxX - offset, axisalignedbb.maxY - offset, axisalignedbb.maxZ - offset); BlockPos blockposition1 = BlockPos.containing(axisalignedbb.maxX - offset, axisalignedbb.maxY - offset, axisalignedbb.maxZ - offset);
// Sakura end - physics version api // Sakura end - physics version api
@@ -50,7 +50,7 @@ index e1af8ca911513146eb04382b95fedbbf39545f91..b8688e0d8eb2ba25c15d9c4bad8d403e
try { try {
iblockdata.entityInside(this.level(), blockposition_mutableblockposition, this); iblockdata.entityInside(this.level(), blockposition_mutableblockposition, this);
@@ -4712,7 +4731,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4714,7 +4733,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) { public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
@@ -59,7 +59,7 @@ index e1af8ca911513146eb04382b95fedbbf39545f91..b8688e0d8eb2ba25c15d9c4bad8d403e
return false; return false;
} else { } else {
AABB axisalignedbb = this.getBoundingBox().deflate(0.001D); AABB axisalignedbb = this.getBoundingBox().deflate(0.001D);
@@ -4729,11 +4748,30 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4731,11 +4750,30 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
int k1 = 0; int k1 = 0;
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Protect scaffolding from creepers
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index cfcbbea230982cfa0f496eebcdc660c859650199..5d0db6c87467b6b2bda37b2e3cf5eb76573069a6 100644 index 98df890c88c6635566b5702080753f5cb0c20598..d7278a4f2a186532a9b4a57af8dad47b86660068 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -179,6 +179,11 @@ public class Explosion { @@ -180,6 +180,11 @@ public class Explosion {
return Optional.of(ZERO_RESISTANCE); return Optional.of(ZERO_RESISTANCE);
} }
// Sakura end - allow explosions to destroy lava // Sakura end - allow explosions to destroy lava

View File

@@ -33,10 +33,10 @@ index 007bc568d3fb23f08790044aa3171727996927dc..4a5844be3683f502eebe01eed7ff1c2a
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) { public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) {
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index ff8580ca3e74e7e28afbfa8c2e566b98ced2dbff..c989f7051167ad6b83f0c916aefd068198711dab 100644 index 71f9c53cb3a3130adcbbf92a081fbe2b32efd626..581a9efe67f3b803688679609d1feb0b601c9bde 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3017,6 +3017,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3022,6 +3022,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return (this.getHandle().requestedViewDistance() == 0) ? Bukkit.getViewDistance() : this.getHandle().requestedViewDistance(); return (this.getHandle().requestedViewDistance() == 0) ? Bukkit.getViewDistance() : this.getHandle().requestedViewDistance();
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Set entity impulse on explosion
diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
index 8ff4ce297e9e799b14d623b49493c5a4638153fc..a0ee26744d27b75d1a979b565cfe96989329ac81 100644 index 8db362721860fe8d5eb497a766e6d1b7879cb455..911d1d8bef53b549f5f77ca1ed1e5b2e5102ba54 100644
--- a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java --- a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java +++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
@@ -219,6 +219,7 @@ public abstract class SpecialisedExplosion<T extends Entity> extends Explosion { @@ -223,6 +223,7 @@ public abstract class SpecialisedExplosion<T extends Entity> extends Explosion {
moveZ += z; moveZ += z;
} }
@@ -17,10 +17,10 @@ index 8ff4ce297e9e799b14d623b49493c5a4638153fc..a0ee26744d27b75d1a979b565cfe9698
} }
} }
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index ac98c757f9ee39c9cf6f08f5484eb4cb2d9686b1..6f805008df17b66cdb9f49dd9fb9cba582767348 100644 index d7278a4f2a186532a9b4a57af8dad47b86660068..60267afc1d0ca0ed2daeff27c804e544f7704700 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java --- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -785,6 +785,7 @@ public class Explosion { @@ -786,6 +786,7 @@ public class Explosion {
// Paper end - knockback events // Paper end - knockback events
} }
// CraftBukkit end // CraftBukkit end

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable left shooting and adjusting limits
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 33ba8ba3168425268825c24f0d9b7c9778b5b292..6755bd2073f5ad876470906d63cdbac2fbdd1f3a 100644 index 2e902a96d335abe849a2519fdc94844346046dc3..1912b9b1410073711ca85ed1703886a2d0e72f2b 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -632,6 +632,24 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -632,6 +632,24 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -33,7 +33,7 @@ index 33ba8ba3168425268825c24f0d9b7c9778b5b292..6755bd2073f5ad876470906d63cdbac2
public Entity(EntityType<?> type, Level world) { public Entity(EntityType<?> type, Level world) {
this.id = Entity.ENTITY_COUNTER.incrementAndGet(); this.id = Entity.ENTITY_COUNTER.incrementAndGet();
@@ -1664,6 +1682,25 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1666,6 +1684,25 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
boolean xSmaller = this.physics == null || this.physics.afterOrEqual(1_14_0) ? Math.abs(x) < Math.abs(z) boolean xSmaller = this.physics == null || this.physics.afterOrEqual(1_14_0) ? Math.abs(x) < Math.abs(z)
: this.physics.isLegacy() && Math.abs(x) > Math.abs(z); : this.physics.isLegacy() && Math.abs(x) > Math.abs(z);
// Sakura end - physics version api // Sakura end - physics version api