mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-21 15:59:26 +00:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@dc3ef2a Fix vanilla components not being translated (#9893) PaperMC/Paper@7e15d97 Remove no longer needed diff from adventure patch PaperMC/Paper@f1820dc Fix incorrect border collision detection PaperMC/Paper@de04cbc Updated Upstream (Bukkit/CraftBukkit) (#10034) PaperMC/Paper@ff26d54 send sound and particle packets immediately even if off main (#10033) PaperMC/Paper@e3140fb hotfix spawning item/xp in wrong spot PaperMC/Paper@0b95298 Make worldborder collisions consistent with Vanilla PaperMC/Paper@47b2c18 Don't fire the drop event on player deaths (#10046) PaperMC/Paper@8c007d9 properly read and store sus effect duration (#10050) PaperMC/Paper@5385b21 [ci skip] Make test results viewable in-browser and downloadable (#10055) PaperMC/Paper@086ca61 Fix world border edge collision (#10053) PaperMC/Paper@45e01a2 Use correct max stack size in crafter (#10057) PaperMC/Paper@d11a588 Remove duplicate code in chunk tick iteration (#10056) PaperMC/Paper@b4c9e7e add missing Experimental annotations (#10012)
This commit is contained in:
@@ -2,7 +2,7 @@ group=me.samsuik.sakura
|
|||||||
version=1.20.4-R0.1-SNAPSHOT
|
version=1.20.4-R0.1-SNAPSHOT
|
||||||
|
|
||||||
mcVersion=1.20.4
|
mcVersion=1.20.4
|
||||||
paperRef=0fadaed0783782877502a24fac53a63753959191
|
paperRef=b4c9e7e5d40fd4a0a7fea270fd4ebb72b38fa0fc
|
||||||
|
|
||||||
org.gradle.jvmargs=-Xmx2G
|
org.gradle.jvmargs=-Xmx2G
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Branding changes
|
|||||||
From ForkPaper.
|
From ForkPaper.
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index 170a915098f09ace226648da342a04c5c7583d11..b71b33dabf3066e4b098c6de7bdb21222da2e304 100644
|
index b12b5a1e82a5ebf47135a3863a390a45a9d8d8ec..2d57d5611cc5784e07c2e28b30891b75b05dca43 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -27,8 +27,12 @@ repositories {
|
@@ -27,8 +27,12 @@ repositories {
|
||||||
@@ -47,10 +47,10 @@ index 34f19ac897a30c0c4e3ab406013fcca1c8b7db93..6e1c140d0d26728d64b827f6f3e5a450
|
|||||||
|
|
||||||
public SystemReport fillSystemReport(SystemReport details) {
|
public SystemReport fillSystemReport(SystemReport details) {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 782bb8ca67517dde5dba8f0a133eb8699353dd01..05afb663ecc4d34b80bd6c66d01cd2677bd75f38 100644
|
index e011cfcdda2e0a609d4158b0454bdf046b04c9d9..75198c29643f88ad6f6e94b142eac05f124c5a10 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -270,7 +270,7 @@ import javax.annotation.Nullable; // Paper
|
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper
|
||||||
import javax.annotation.Nonnull; // Paper
|
import javax.annotation.Nonnull; // Paper
|
||||||
|
|
||||||
public final class CraftServer implements Server {
|
public final class CraftServer implements Server {
|
||||||
|
|||||||
@@ -976,7 +976,7 @@ index 58536aabf607015939a1326f80207c0a06eed8ff..102c5bb9a1702b06ed6418bfe9e41319
|
|||||||
this.setPvpAllowed(dedicatedserverproperties.pvp);
|
this.setPvpAllowed(dedicatedserverproperties.pvp);
|
||||||
this.setFlightAllowed(dedicatedserverproperties.allowFlight);
|
this.setFlightAllowed(dedicatedserverproperties.allowFlight);
|
||||||
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 f4d53d9bfe5b060158f69b5d9e4533a5b9869eed..03fcd3d24b18745c3ddbc20edbb06b92417db341 100644
|
index b78a9628a88f2a495ef6de74446a02a14d41a1f6..1f36015d2e9c433cfe2de079b8eba144f0dad4cf 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
|
||||||
@@ -693,7 +693,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
@@ -693,7 +693,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||||
@@ -1018,10 +1018,10 @@ index 0b56e5f7f18fc4286992af22d402205b771165a3..be86deb703272d014de14a9789a5c505
|
|||||||
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 05afb663ecc4d34b80bd6c66d01cd2677bd75f38..872a30aa8695eaf8784792c84483c417c89dc867 100644
|
index 75198c29643f88ad6f6e94b142eac05f124c5a10..1cd650d96686c34d2d439e3edef3c214306b975b 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -1036,6 +1036,7 @@ public final class CraftServer implements Server {
|
@@ -1037,6 +1037,7 @@ public final class CraftServer implements Server {
|
||||||
|
|
||||||
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
|
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
|
||||||
this.console.paperConfigurations.reloadConfigs(this.console);
|
this.console.paperConfigurations.reloadConfigs(this.console);
|
||||||
@@ -1029,7 +1029,7 @@ index 05afb663ecc4d34b80bd6c66d01cd2677bd75f38..872a30aa8695eaf8784792c84483c417
|
|||||||
for (ServerLevel world : this.console.getAllLevels()) {
|
for (ServerLevel world : this.console.getAllLevels()) {
|
||||||
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
||||||
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
||||||
@@ -1066,6 +1067,7 @@ public final class CraftServer implements Server {
|
@@ -1067,6 +1068,7 @@ public final class CraftServer implements Server {
|
||||||
this.reloadData();
|
this.reloadData();
|
||||||
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
||||||
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
|
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
|
||||||
@@ -1038,7 +1038,7 @@ index 05afb663ecc4d34b80bd6c66d01cd2677bd75f38..872a30aa8695eaf8784792c84483c417
|
|||||||
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
index 4b457cbfc56e55e0ae0fee5b69e2e75349702aab..7f88e9fb060d0f2c6ad94277072805c9bc69fadf 100644
|
index a74a8a027c99eef199c1a6a54232ac2c8ffb9d08..0bf24ee26eb96f02918fd82b5967681e3df2ce85 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
@@ -174,6 +174,14 @@ public class Main {
|
@@ -174,6 +174,14 @@ public class Main {
|
||||||
|
|||||||
@@ -404,7 +404,7 @@ index 1f36015d2e9c433cfe2de079b8eba144f0dad4cf..c33c9cb3a0e574e5284e48ffaf8d0945
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 8efbbd379244e3ed54d4aba199037cc20ccd096a..3ef738c817c10a9233b930296ce5df6e6dc0a58b 100644
|
index d1f20a8a3ccea1f074624163eb96da023142a459..29422f36aa5727ae9e8f6728964fda9889986e02 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -261,6 +261,7 @@ public class ServerPlayer extends Player {
|
@@ -261,6 +261,7 @@ public class ServerPlayer extends Player {
|
||||||
@@ -561,10 +561,10 @@ index 30ccbab1586a656e0ae41d7406525fb02d9e025b..187ba90c50256aaa0514f4b2bd79bf30
|
|||||||
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 9abe817ae202edaa2d88cd59ae5c7db0b1c634be..f3b02609297b663559b82984dcd93db186e645f5 100644
|
index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..b2d2b6d588572682730a228888b6dcdae2dc5020 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
|
||||||
@@ -536,6 +536,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -535,6 +535,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
this.teleportTo(worldserver, null);
|
this.teleportTo(worldserver, null);
|
||||||
}
|
}
|
||||||
// Paper end - make end portalling safe
|
// Paper end - make end portalling safe
|
||||||
@@ -611,10 +611,10 @@ index 512088b5457e5afbc29d2937051fc4dcc4c5aed6..8fd4d63fdbff9c454d903f4797ec9281
|
|||||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
||||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
|
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
|
||||||
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 fd84786f3e72875e79df46416f47f3403876cef3..044033eb34581849ecb0463164ca05bf19466c76 100644
|
index 3be5e4df190bff0087c8450b16e4e37b07169040..201a5c5652232cfc64c476d066225df6bb1690d3 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
|
||||||
@@ -497,6 +497,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -494,6 +494,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
this.getHandle().displayName = name == null ? this.getName() : name;
|
this.getHandle().displayName = name == null ? this.getName() : name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Reduce deltaMovement Allocations
|
|||||||
|
|
||||||
|
|
||||||
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 f3b02609297b663559b82984dcd93db186e645f5..8e877437f4d27ef210c9bfbbdbe16e2c328b4e54 100644
|
index b2d2b6d588572682730a228888b6dcdae2dc5020..4ffa96f7eeefd6a2a07458f68458cdbf4369340f 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
|
||||||
@@ -1234,7 +1234,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1233,7 +1233,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
this.tryCheckInsideBlocks();
|
this.tryCheckInsideBlocks();
|
||||||
float f = this.getBlockSpeedFactor();
|
float f = this.getBlockSpeedFactor();
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ index f3b02609297b663559b82984dcd93db186e645f5..8e877437f4d27ef210c9bfbbdbe16e2c
|
|||||||
// Paper start - remove expensive streams from here
|
// Paper start - remove expensive streams from here
|
||||||
boolean noneMatch = true;
|
boolean noneMatch = true;
|
||||||
AABB fireSearchBox = this.getBoundingBox().deflate(1.0E-6D);
|
AABB fireSearchBox = this.getBoundingBox().deflate(1.0E-6D);
|
||||||
@@ -2054,6 +2054,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -2049,6 +2049,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
public void moveTo(double x, double y, double z, float yaw, float pitch) {
|
public void moveTo(double x, double y, double z, float yaw, float pitch) {
|
||||||
// Paper - cancel entity velocity if teleported
|
// Paper - cancel entity velocity if teleported
|
||||||
if (!preserveMotion) {
|
if (!preserveMotion) {
|
||||||
@@ -25,7 +25,7 @@ index f3b02609297b663559b82984dcd93db186e645f5..8e877437f4d27ef210c9bfbbdbe16e2c
|
|||||||
this.deltaMovement = Vec3.ZERO;
|
this.deltaMovement = Vec3.ZERO;
|
||||||
} else {
|
} else {
|
||||||
this.preserveMotion = false;
|
this.preserveMotion = false;
|
||||||
@@ -3456,29 +3457,33 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -3451,29 +3452,33 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onAboveBubbleCol(boolean drag) {
|
public void onAboveBubbleCol(boolean drag) {
|
||||||
@@ -67,7 +67,7 @@ index f3b02609297b663559b82984dcd93db186e645f5..8e877437f4d27ef210c9bfbbdbe16e2c
|
|||||||
this.resetFallDistance();
|
this.resetFallDistance();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4465,16 +4470,19 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -4460,16 +4465,19 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
vec3d = vec3d.normalize();
|
vec3d = vec3d.normalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ index f3b02609297b663559b82984dcd93db186e645f5..8e877437f4d27ef210c9bfbbdbe16e2c
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.fluidHeight.put(tag, d1);
|
this.fluidHeight.put(tag, d1);
|
||||||
@@ -4545,11 +4553,53 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -4540,11 +4548,53 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
return this.chunkPosition;
|
return this.chunkPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@ index f3b02609297b663559b82984dcd93db186e645f5..8e877437f4d27ef210c9bfbbdbe16e2c
|
|||||||
synchronized (this.posLock) { // Paper
|
synchronized (this.posLock) { // Paper
|
||||||
this.deltaMovement = velocity;
|
this.deltaMovement = velocity;
|
||||||
} // Paper
|
} // Paper
|
||||||
@@ -4560,7 +4610,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -4555,7 +4605,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDeltaMovement(double x, double y, double z) {
|
public void setDeltaMovement(double x, double y, double z) {
|
||||||
@@ -214,7 +214,7 @@ index 62a3cd512d473d5ed673386d5c15091a09426945..12067c0372ad2803ffa2501a8296496a
|
|||||||
|
|
||||||
int i = this.getFuse() - 1;
|
int i = this.getFuse() - 1;
|
||||||
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 87897b21c422a6301a08b388a69b3cec650bdfb5..9fdfc43ea51a326444a04d79976d315aa64050d1 100644
|
index 9cd244090c294927a7a92c920854d2282ea3f021..3d4a75302d72bdbe47d0efbe08c89401dbe22a87 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
|
||||||
@@ -619,10 +619,11 @@ public class Explosion {
|
@@ -619,10 +619,11 @@ public class Explosion {
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Load Chunks on Movement
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/util/CollisionUtil.java b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
diff --git a/src/main/java/io/papermc/paper/util/CollisionUtil.java b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
index bfb1de19f53d5d7c7b65e25a606fabfa416706b3..ae2eede559bd9fe7e500ce180f2ac102a95d3856 100644
|
index ee0331a6bc40cdde08d926fd8eb1dc642630c2e5..57ca8212991d0660dd41b70350f59830d4fd09f3 100644
|
||||||
--- a/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
--- a/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
+++ b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
+++ b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
@@ -1595,6 +1595,7 @@ public final class CollisionUtil {
|
@@ -1569,6 +1569,7 @@ public final class CollisionUtil {
|
||||||
public static final int COLLISION_FLAG_COLLIDE_WITH_UNLOADED_CHUNKS = 1 << 1;
|
public static final int COLLISION_FLAG_COLLIDE_WITH_UNLOADED_CHUNKS = 1 << 1;
|
||||||
public static final int COLLISION_FLAG_CHECK_BORDER = 1 << 2;
|
public static final int COLLISION_FLAG_CHECK_BORDER = 1 << 2;
|
||||||
public static final int COLLISION_FLAG_CHECK_ONLY = 1 << 3;
|
public static final int COLLISION_FLAG_CHECK_ONLY = 1 << 3;
|
||||||
@@ -16,7 +16,7 @@ index bfb1de19f53d5d7c7b65e25a606fabfa416706b3..ae2eede559bd9fe7e500ce180f2ac102
|
|||||||
|
|
||||||
public static boolean getCollisionsForBlocksOrWorldBorder(final Level world, final Entity entity, final AABB aabb,
|
public static boolean getCollisionsForBlocksOrWorldBorder(final Level world, final Entity entity, final AABB aabb,
|
||||||
final List<VoxelShape> intoVoxel, final List<AABB> intoAABB,
|
final List<VoxelShape> intoVoxel, final List<AABB> intoAABB,
|
||||||
@@ -1644,11 +1645,20 @@ public final class CollisionUtil {
|
@@ -1619,11 +1620,20 @@ public final class CollisionUtil {
|
||||||
final int maxChunkZ = maxBlockZ >> 4;
|
final int maxChunkZ = maxBlockZ >> 4;
|
||||||
|
|
||||||
final boolean loadChunks = (collisionFlags & COLLISION_FLAG_LOAD_CHUNKS) != 0;
|
final boolean loadChunks = (collisionFlags & COLLISION_FLAG_LOAD_CHUNKS) != 0;
|
||||||
@@ -50,17 +50,17 @@ index 658e63ebde81dc14c8ab5850fb246dc0aab25dea..f1ff1a67fee37ee7b241ceaa164fa4ee
|
|||||||
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 8e877437f4d27ef210c9bfbbdbe16e2c328b4e54..2336ca9f16d8d570eeeff8cd780fa02c0138be04 100644
|
index 4ffa96f7eeefd6a2a07458f68458cdbf4369340f..583f94cd4f517f17909da43f546e8c9e4580d3ad 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
|
||||||
@@ -538,6 +538,19 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -537,6 +537,19 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
// Paper end - make end portalling safe
|
// Paper end - make end portalling safe
|
||||||
public boolean isPrimedTNT; // Sakura
|
public boolean isPrimedTNT; // Sakura
|
||||||
public boolean isFallingBlock; // Sakura
|
public boolean isFallingBlock; // Sakura
|
||||||
+ // Sakura start
|
+ // Sakura start
|
||||||
+ protected boolean loadChunks = false;
|
+ protected boolean loadChunks = false;
|
||||||
+
|
+
|
||||||
+ private int getCollisionFlags() {
|
+ private int getExtraCollisionFlags() {
|
||||||
+ int flags = 0;
|
+ int flags = 0;
|
||||||
+
|
+
|
||||||
+ if (this.loadChunks) {
|
+ if (this.loadChunks) {
|
||||||
@@ -73,16 +73,16 @@ index 8e877437f4d27ef210c9bfbbdbe16e2c328b4e54..2336ca9f16d8d570eeeff8cd780fa02c
|
|||||||
|
|
||||||
public boolean isLegacyTrackingEntity = false;
|
public boolean isLegacyTrackingEntity = false;
|
||||||
|
|
||||||
@@ -1495,7 +1508,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1494,7 +1507,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
|
||||||
io.papermc.paper.util.CollisionUtil.getCollisions(
|
io.papermc.paper.util.CollisionUtil.getCollisions(
|
||||||
world, this, collisionBox, potentialCollisionsVoxel, potentialCollisionsBB,
|
world, this, collisionBox, potentialCollisionsVoxel, potentialCollisionsBB,
|
||||||
- (0),
|
- io.papermc.paper.util.CollisionUtil.COLLISION_FLAG_CHECK_BORDER,
|
||||||
+ this.getCollisionFlags(), // Sakura
|
+ io.papermc.paper.util.CollisionUtil.COLLISION_FLAG_CHECK_BORDER | this.getExtraCollisionFlags(), // Sakura
|
||||||
null, null
|
null, null
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -4880,7 +4893,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -4875,7 +4888,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAlwaysTicking() {
|
public boolean isAlwaysTicking() {
|
||||||
|
|||||||
@@ -203,10 +203,10 @@ index 83c4639c2bdca4dc4281d9f5eca104af3063bfa5..f7d8aaededd39ce52a9d0105f66fd759
|
|||||||
|
|
||||||
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 2336ca9f16d8d570eeeff8cd780fa02c0138be04..d81156d33184ea5a58e3c4e71eaef9f4c5990ea0 100644
|
index 583f94cd4f517f17909da43f546e8c9e4580d3ad..d69dfd44a9ff3ee6861042fa8f5a64c2031815cd 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
|
||||||
@@ -3400,7 +3400,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -3395,7 +3395,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID);
|
this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,10 +52,10 @@ index 0000000000000000000000000000000000000000..c9f2c5ae57878283e8c8bc3847fe63b9
|
|||||||
+
|
+
|
||||||
+}
|
+}
|
||||||
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 d81156d33184ea5a58e3c4e71eaef9f4c5990ea0..89af45a998dd1884bac8ace525b87be9dd291789 100644
|
index d69dfd44a9ff3ee6861042fa8f5a64c2031815cd..70ca40c87c161d96a3661066386f2560d0aeca6d 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
|
||||||
@@ -551,6 +551,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -550,6 +550,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
// Sakura end
|
// Sakura end
|
||||||
|
|||||||
@@ -189,10 +189,10 @@ index f48eaebb0f9a10fb77e85619b2d2a4996e461195..a507605a04af7f576548129517029192
|
|||||||
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 89af45a998dd1884bac8ace525b87be9dd291789..6e2defee2a8523d7025a8341b41488192618dd1a 100644
|
index 70ca40c87c161d96a3661066386f2560d0aeca6d..ce0f8567f8b3d52b806c2c0ef600852ee192c05b 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
|
||||||
@@ -579,6 +579,107 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -578,6 +578,107 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
return BlockPos.asLong(v.getBlockX(), v.getBlockY(), v.getBlockZ());
|
return BlockPos.asLong(v.getBlockX(), v.getBlockY(), v.getBlockZ());
|
||||||
}
|
}
|
||||||
// Sakura end
|
// Sakura end
|
||||||
@@ -300,7 +300,7 @@ index 89af45a998dd1884bac8ace525b87be9dd291789..6e2defee2a8523d7025a8341b4148819
|
|||||||
|
|
||||||
public boolean isLegacyTrackingEntity = false;
|
public boolean isLegacyTrackingEntity = false;
|
||||||
|
|
||||||
@@ -657,6 +758,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -656,6 +757,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
this.getEntityData().registrationLocked = true; // Spigot
|
this.getEntityData().registrationLocked = true; // Spigot
|
||||||
this.setPos(0.0D, 0.0D, 0.0D);
|
this.setPos(0.0D, 0.0D, 0.0D);
|
||||||
this.eyeHeight = this.getEyeHeight(net.minecraft.world.entity.Pose.STANDING, this.dimensions);
|
this.eyeHeight = this.getEyeHeight(net.minecraft.world.entity.Pose.STANDING, this.dimensions);
|
||||||
@@ -308,7 +308,7 @@ index 89af45a998dd1884bac8ace525b87be9dd291789..6e2defee2a8523d7025a8341b4148819
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isColliding(BlockPos pos, BlockState state) {
|
public boolean isColliding(BlockPos pos, BlockState state) {
|
||||||
@@ -2522,6 +2624,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -2517,6 +2619,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
nbttagcompound.putBoolean("Paper.FreezeLock", true);
|
nbttagcompound.putBoolean("Paper.FreezeLock", true);
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -320,7 +320,7 @@ index 89af45a998dd1884bac8ace525b87be9dd291789..6e2defee2a8523d7025a8341b4148819
|
|||||||
return nbttagcompound;
|
return nbttagcompound;
|
||||||
} catch (Throwable throwable) {
|
} catch (Throwable throwable) {
|
||||||
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
|
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
|
||||||
@@ -2669,6 +2776,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -2664,6 +2771,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
freezeLocked = nbt.getBoolean("Paper.FreezeLock");
|
freezeLocked = nbt.getBoolean("Paper.FreezeLock");
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -332,7 +332,7 @@ index 89af45a998dd1884bac8ace525b87be9dd291789..6e2defee2a8523d7025a8341b4148819
|
|||||||
|
|
||||||
} catch (Throwable throwable) {
|
} catch (Throwable throwable) {
|
||||||
CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT");
|
CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT");
|
||||||
@@ -4876,6 +4988,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -4871,6 +4983,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Paper end - rewrite chunk system
|
// Paper end - rewrite chunk system
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise Fast 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 6e2defee2a8523d7025a8341b41488192618dd1a..8d43914e515bbdd58cbc546101af643e6ba6d018 100644
|
index ce0f8567f8b3d52b806c2c0ef600852ee192c05b..8733e11bdfdb355928a332c20ed94bb57c57045f 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
|
||||||
@@ -1217,6 +1217,95 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1216,6 +1216,95 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
}
|
}
|
||||||
// Paper end - detailed watchdog information
|
// Paper end - detailed watchdog information
|
||||||
|
|
||||||
@@ -104,7 +104,7 @@ index 6e2defee2a8523d7025a8341b41488192618dd1a..8d43914e515bbdd58cbc546101af643e
|
|||||||
public void move(MoverType movementType, Vec3 movement) {
|
public void move(MoverType movementType, Vec3 movement) {
|
||||||
// Paper start - detailed watchdog information
|
// Paper start - detailed watchdog information
|
||||||
io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main");
|
io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main");
|
||||||
@@ -1594,6 +1683,99 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1593,6 +1682,95 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
return offsetFactor;
|
return offsetFactor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,13 +170,9 @@ index 6e2defee2a8523d7025a8341b41488192618dd1a..8d43914e515bbdd58cbc546101af643e
|
|||||||
+ // Copied from the collide method below
|
+ // Copied from the collide method below
|
||||||
+ io.papermc.paper.util.CollisionUtil.getCollisions(
|
+ io.papermc.paper.util.CollisionUtil.getCollisions(
|
||||||
+ level, this, collisionBox, voxelList, bbList,
|
+ level, this, collisionBox, voxelList, bbList,
|
||||||
+ this.getCollisionFlags(), // Sakura
|
+ io.papermc.paper.util.CollisionUtil.COLLISION_FLAG_CHECK_BORDER | this.getExtraCollisionFlags(), // Sakura
|
||||||
+ null, null
|
+ null, null
|
||||||
+ );
|
+ );
|
||||||
+
|
|
||||||
+ if (collidingWithWorldBorder = io.papermc.paper.util.CollisionUtil.isCollidingWithBorderEdge(level.getWorldBorder(), collisionBox)) { // Paper - this line *is* correct, ignore the IDE warning about assignments being used as a condition
|
|
||||||
+ voxelList.add(level.getWorldBorder().getCollisionShape());
|
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ private double scanX(AABB currBoundingBox, double x, List<VoxelShape> voxelList, List<AABB> bbList) {
|
+ private double scanX(AABB currBoundingBox, double x, List<VoxelShape> voxelList, List<AABB> bbList) {
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] isPushedByFluid 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 8d43914e515bbdd58cbc546101af643e6ba6d018..b6254947092f15b039d2af442ac36274920731a1 100644
|
index 8733e11bdfdb355928a332c20ed94bb57c57045f..8ff5e03e35cea60a53711d058f103e3b8569c170 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
|
||||||
@@ -680,6 +680,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -679,6 +679,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
discard();
|
discard();
|
||||||
}
|
}
|
||||||
// Sakura end
|
// Sakura end
|
||||||
@@ -16,7 +16,7 @@ index 8d43914e515bbdd58cbc546101af643e6ba6d018..b6254947092f15b039d2af442ac36274
|
|||||||
|
|
||||||
public boolean isLegacyTrackingEntity = false;
|
public boolean isLegacyTrackingEntity = false;
|
||||||
|
|
||||||
@@ -4240,7 +4241,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -4231,7 +4232,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPushedByFluid() {
|
public boolean isPushedByFluid() {
|
||||||
@@ -26,10 +26,10 @@ index 8d43914e515bbdd58cbc546101af643e6ba6d018..b6254947092f15b039d2af442ac36274
|
|||||||
|
|
||||||
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 aa4dbf91cf6da329fdcacbde98bb870eb48e8f5c..2732ddfd75ed7cba31ca3def306e68a65e3aaa1e 100644
|
index 1727e932ac6b9ca09b5df96f9547ff125114e15a..9ce5bb9f15501a17a13e0d13874ff992d5df8a52 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
|
||||||
@@ -555,6 +555,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
@@ -200,6 +200,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||||
return this.entity.isInWater();
|
return this.entity.isInWater();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise TNT fluid state and pushing
|
|||||||
|
|
||||||
|
|
||||||
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 b6254947092f15b039d2af442ac36274920731a1..e5df563f4d3806d72236f302391a69e4b06e6447 100644
|
index 8ff5e03e35cea60a53711d058f103e3b8569c170..4c55fe458378f2f376a8c31cec57e4751aa3d290 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
|
||||||
@@ -2187,7 +2187,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -2178,7 +2178,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
return this.isInWater() || flag;
|
return this.isInWater() || flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,21 @@ Date: Thu, 16 Nov 2023 20:53:51 +0000
|
|||||||
Subject: [PATCH] Falling Block Stacking Restrictions
|
Subject: [PATCH] Falling Block Stacking Restrictions
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java b/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java
|
||||||
|
index 376322d8e47e24a76c7162d6379c7f71debd7505..872b874649ff5383af73f6b07dd59fdabea3ffb2 100644
|
||||||
|
--- a/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java
|
||||||
|
+++ b/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java
|
||||||
|
@@ -69,7 +69,7 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||||
|
public boolean preventAtWorldHeight = false;
|
||||||
|
|
||||||
|
public boolean isFallingBlockInBounds(FallingBlockEntity entity) {
|
||||||
|
- return (!preventAgainstBorder || !io.papermc.paper.util.CollisionUtil.isAlmostCollidingOnBorder(entity.level().getWorldBorder(), entity.getBoundingBox()))
|
||||||
|
+ return (!preventAgainstBorder || !io.papermc.paper.util.CollisionUtil.isCollidingWithBorder(entity.level().getWorldBorder(), entity.getBoundingBox().inflate(0.01)))
|
||||||
|
&& (!preventAtWorldHeight || entity.blockPosition().getY() < entity.level().getMaxBuildHeight() - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
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 78fe35df4ef92f56d5ea2e80131fb7f4e71c9bea..bf52aafe542ca735181e461d1f9cbc39b8d88220 100644
|
index d7a3d869417983ea3758c2fab2de78c098826b19..6274c005f4f53f3cec0c94b7d40cdb7070b190e0 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
|
||||||
@@ -260,7 +260,7 @@ public class FallingBlockEntity extends Entity {
|
@@ -260,7 +260,7 @@ public class FallingBlockEntity extends Entity {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Configure cannon physics by version
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/util/CollisionUtil.java b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
diff --git a/src/main/java/io/papermc/paper/util/CollisionUtil.java b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
index ae2eede559bd9fe7e500ce180f2ac102a95d3856..7ced5ae768cbea9ee0a7bab2365fbaef1a37d9bd 100644
|
index 57ca8212991d0660dd41b70350f59830d4fd09f3..39085c2a356f575f0ef6acaa3de7d9ff560b5a87 100644
|
||||||
--- a/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
--- a/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
+++ b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
+++ b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
@@ -1495,6 +1495,14 @@ public final class CollisionUtil {
|
@@ -1495,6 +1495,14 @@ public final class CollisionUtil {
|
||||||
@@ -87,7 +87,7 @@ index b87748ae90863abe8f85dcbdc5a202cb3c9e2037..a291516ec7bdb9d8b840f41ca52e6bba
|
|||||||
x /= distance;
|
x /= distance;
|
||||||
y /= distance;
|
y /= distance;
|
||||||
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 e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c62bc7959a 100644
|
index 4c55fe458378f2f376a8c31cec57e4751aa3d290..852276d9bedc51c3c8a28b60c85fdb23cf9cf818 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
|
||||||
@@ -378,7 +378,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -378,7 +378,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
@@ -99,7 +99,7 @@ index e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c6
|
|||||||
public boolean isInPowderSnow;
|
public boolean isInPowderSnow;
|
||||||
public boolean wasInPowderSnow;
|
public boolean wasInPowderSnow;
|
||||||
public boolean wasOnFire;
|
public boolean wasOnFire;
|
||||||
@@ -681,6 +681,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -680,6 +680,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
}
|
}
|
||||||
// Sakura end
|
// Sakura end
|
||||||
public boolean pushedByFluid = true; // Sakura
|
public boolean pushedByFluid = true; // Sakura
|
||||||
@@ -113,7 +113,7 @@ index e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c6
|
|||||||
|
|
||||||
public boolean isLegacyTrackingEntity = false;
|
public boolean isLegacyTrackingEntity = false;
|
||||||
|
|
||||||
@@ -1163,7 +1170,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1162,7 +1169,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void checkSupportingBlock(boolean onGround, @Nullable Vec3 movement) {
|
protected void checkSupportingBlock(boolean onGround, @Nullable Vec3 movement) {
|
||||||
@@ -122,7 +122,7 @@ index e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c6
|
|||||||
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);
|
||||||
@@ -1225,7 +1232,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1224,7 +1231,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
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 {
|
||||||
@@ -131,7 +131,7 @@ index e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c6
|
|||||||
movement = this.limitPistonMovement(movement);
|
movement = this.limitPistonMovement(movement);
|
||||||
if (movement.equals(Vec3.ZERO)) {
|
if (movement.equals(Vec3.ZERO)) {
|
||||||
return;
|
return;
|
||||||
@@ -1243,10 +1250,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1242,10 +1249,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
Vec3 vec3d1 = this.collideScan(movement);
|
Vec3 vec3d1 = this.collideScan(movement);
|
||||||
double d0 = vec3d1.lengthSqr();
|
double d0 = vec3d1.lengthSqr();
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@ index e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c6
|
|||||||
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) {
|
||||||
@@ -1282,6 +1289,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1281,6 +1288,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
if (this.horizontalCollision) {
|
if (this.horizontalCollision) {
|
||||||
Vec3 vec3d2 = this.getDeltaMovement();
|
Vec3 vec3d2 = this.getDeltaMovement();
|
||||||
|
|
||||||
@@ -157,7 +157,7 @@ index e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c6
|
|||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1322,7 +1335,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1321,7 +1334,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
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();
|
||||||
@@ -166,7 +166,7 @@ index e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c6
|
|||||||
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);
|
||||||
@@ -1349,8 +1362,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1348,8 +1361,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
Vec3 vec3d1 = this.collide(movement);
|
Vec3 vec3d1 = this.collide(movement);
|
||||||
double d0 = vec3d1.lengthSqr();
|
double d0 = vec3d1.lengthSqr();
|
||||||
|
|
||||||
@@ -177,7 +177,7 @@ index e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c6
|
|||||||
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) {
|
||||||
@@ -1386,6 +1399,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1385,6 +1398,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
if (this.horizontalCollision) {
|
if (this.horizontalCollision) {
|
||||||
Vec3 vec3d2 = this.getDeltaMovement();
|
Vec3 vec3d2 = this.getDeltaMovement();
|
||||||
|
|
||||||
@@ -190,7 +190,7 @@ index e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c6
|
|||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1709,7 +1728,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1708,7 +1727,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
double y = movement.y;
|
double y = movement.y;
|
||||||
double z = movement.z;
|
double z = movement.z;
|
||||||
|
|
||||||
@@ -202,7 +202,7 @@ index e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c6
|
|||||||
|
|
||||||
if (y != 0.0) {
|
if (y != 0.0) {
|
||||||
y = scanY(currBoundingBox, y, voxelList, bbList);
|
y = scanY(currBoundingBox, y, voxelList, bbList);
|
||||||
@@ -1833,7 +1855,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1824,7 +1846,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
return movement;
|
return movement;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -211,7 +211,7 @@ index e5df563f4d3806d72236f302391a69e4b06e6447..fe53e065ccec4954aa48eace372898c6
|
|||||||
|
|
||||||
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))
|
||||||
@@ -1949,8 +1971,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -1940,8 +1962,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
|
|
||||||
protected void checkInsideBlocks() {
|
protected void checkInsideBlocks() {
|
||||||
AABB axisalignedbb = this.getBoundingBox();
|
AABB axisalignedbb = this.getBoundingBox();
|
||||||
@@ -455,7 +455,7 @@ index 8ee03ac1c824fd2476339202c073239292ef62a2..5e588332f5916355293553012c73a647
|
|||||||
// Paper end
|
// Paper end
|
||||||
}
|
}
|
||||||
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 4c570ea162f0dec00960705ef615d6e9f4a210a7..8a2d9f6526b62080c4b35ff856b8125c32983364 100644
|
index 5a10afb92fd62f433be9be6751e5222f3666c9f3..d92798d848754bb02f2de9ee91e1342ceb8e150c 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
|
||||||
@@ -74,6 +74,7 @@ public class Explosion {
|
@@ -74,6 +74,7 @@ public class Explosion {
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Treat all collidable blocks as full while moving fast
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/util/CollisionUtil.java b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
diff --git a/src/main/java/io/papermc/paper/util/CollisionUtil.java b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
index 7ced5ae768cbea9ee0a7bab2365fbaef1a37d9bd..310ad76abcb263fbb067270f522007457c62c81b 100644
|
index 39085c2a356f575f0ef6acaa3de7d9ff560b5a87..7828f8a755343aca24ef81fa5738d19b74a7299b 100644
|
||||||
--- a/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
--- a/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
+++ b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
+++ b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
||||||
@@ -1607,6 +1607,7 @@ public final class CollisionUtil {
|
@@ -1581,6 +1581,7 @@ public final class CollisionUtil {
|
||||||
public static final int COLLISION_FLAG_CHECK_BORDER = 1 << 2;
|
public static final int COLLISION_FLAG_CHECK_BORDER = 1 << 2;
|
||||||
public static final int COLLISION_FLAG_CHECK_ONLY = 1 << 3;
|
public static final int COLLISION_FLAG_CHECK_ONLY = 1 << 3;
|
||||||
public static final int COLLISION_FLAG_ADD_TICKET = 1 << 4; // Sakura
|
public static final int COLLISION_FLAG_ADD_TICKET = 1 << 4; // Sakura
|
||||||
@@ -16,7 +16,7 @@ index 7ced5ae768cbea9ee0a7bab2365fbaef1a37d9bd..310ad76abcb263fbb067270f52200745
|
|||||||
|
|
||||||
public static boolean getCollisionsForBlocksOrWorldBorder(final Level world, final Entity entity, final AABB aabb,
|
public static boolean getCollisionsForBlocksOrWorldBorder(final Level world, final Entity entity, final AABB aabb,
|
||||||
final List<VoxelShape> intoVoxel, final List<AABB> intoAABB,
|
final List<VoxelShape> intoVoxel, final List<AABB> intoAABB,
|
||||||
@@ -1657,6 +1658,7 @@ public final class CollisionUtil {
|
@@ -1632,6 +1633,7 @@ public final class CollisionUtil {
|
||||||
|
|
||||||
final boolean loadChunks = (collisionFlags & COLLISION_FLAG_LOAD_CHUNKS) != 0;
|
final boolean loadChunks = (collisionFlags & COLLISION_FLAG_LOAD_CHUNKS) != 0;
|
||||||
final boolean addTicket = (collisionFlags & COLLISION_FLAG_ADD_TICKET) != 0; // Sakura
|
final boolean addTicket = (collisionFlags & COLLISION_FLAG_ADD_TICKET) != 0; // Sakura
|
||||||
@@ -24,7 +24,7 @@ index 7ced5ae768cbea9ee0a7bab2365fbaef1a37d9bd..310ad76abcb263fbb067270f52200745
|
|||||||
final ServerChunkCache chunkSource = (ServerChunkCache)world.getChunkSource();
|
final ServerChunkCache chunkSource = (ServerChunkCache)world.getChunkSource();
|
||||||
|
|
||||||
for (int currChunkZ = minChunkZ; currChunkZ <= maxChunkZ; ++currChunkZ) {
|
for (int currChunkZ = minChunkZ; currChunkZ <= maxChunkZ; ++currChunkZ) {
|
||||||
@@ -1697,7 +1699,7 @@ public final class CollisionUtil {
|
@@ -1672,7 +1674,7 @@ public final class CollisionUtil {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ index 7ced5ae768cbea9ee0a7bab2365fbaef1a37d9bd..310ad76abcb263fbb067270f52200745
|
|||||||
final int sectionAdjust = !hasSpecial ? 1 : 0;
|
final int sectionAdjust = !hasSpecial ? 1 : 0;
|
||||||
|
|
||||||
final PalettedContainer<BlockState> blocks = section.states;
|
final PalettedContainer<BlockState> blocks = section.states;
|
||||||
@@ -1731,12 +1733,20 @@ public final class CollisionUtil {
|
@@ -1706,12 +1708,20 @@ public final class CollisionUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (edgeCount == 0 || ((edgeCount != 1 || blockData.hasLargeCollisionShape()) && (edgeCount != 2 || blockData.getBlock() == Blocks.MOVING_PISTON))) {
|
if (edgeCount == 0 || ((edgeCount != 1 || blockData.hasLargeCollisionShape()) && (edgeCount != 2 || blockData.getBlock() == Blocks.MOVING_PISTON))) {
|
||||||
@@ -59,10 +59,10 @@ index 7ced5ae768cbea9ee0a7bab2365fbaef1a37d9bd..310ad76abcb263fbb067270f52200745
|
|||||||
AABB singleAABB = blockCollision.getSingleAABBRepresentation();
|
AABB singleAABB = blockCollision.getSingleAABBRepresentation();
|
||||||
if (singleAABB != null) {
|
if (singleAABB != null) {
|
||||||
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 7e00e47fe01b996bf6a2f16dc4998ab8146e0169..750dbb959a0cf91e364ba52fbc69dce20260b1af 100644
|
index 852276d9bedc51c3c8a28b60c85fdb23cf9cf818..2588180e543dc8ca2e41c15802b59c9b87df7ee6 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
|
||||||
@@ -548,6 +548,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
@@ -547,6 +547,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||||
flags |= io.papermc.paper.util.CollisionUtil.COLLISION_FLAG_LOAD_CHUNKS | io.papermc.paper.util.CollisionUtil.COLLISION_FLAG_ADD_TICKET;
|
flags |= io.papermc.paper.util.CollisionUtil.COLLISION_FLAG_LOAD_CHUNKS | io.papermc.paper.util.CollisionUtil.COLLISION_FLAG_ADD_TICKET;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,66 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Samsuik <40902469+Samsuik@users.noreply.github.com>
|
|
||||||
Date: Wed, 29 Nov 2023 23:36:21 +0000
|
|
||||||
Subject: [PATCH] Fix paper world border collision
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/util/CollisionUtil.java b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
|
||||||
index 310ad76abcb263fbb067270f522007457c62c81b..1edae701aa293ae61039119421ced42828b9a470 100644
|
|
||||||
--- a/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
|
||||||
+++ b/src/main/java/io/papermc/paper/util/CollisionUtil.java
|
|
||||||
@@ -1555,27 +1555,19 @@ public final class CollisionUtil {
|
|
||||||
|
|
||||||
public static boolean isAlmostCollidingOnBorder(final WorldBorder worldborder, final double boxMinX, final double boxMaxX,
|
|
||||||
final double boxMinZ, final double boxMaxZ) {
|
|
||||||
- final double borderMinX = worldborder.getMinX(); // -X
|
|
||||||
- final double borderMaxX = worldborder.getMaxX(); // +X
|
|
||||||
+ // Sakura start - this method always returned true
|
|
||||||
+ final double borderMinX = worldborder.getMinX() + COLLISION_EPSILON; // -X
|
|
||||||
+ final double borderMaxX = worldborder.getMaxX() - COLLISION_EPSILON; // +X
|
|
||||||
|
|
||||||
- final double borderMinZ = worldborder.getMinZ(); // -Z
|
|
||||||
- final double borderMaxZ = worldborder.getMaxZ(); // +Z
|
|
||||||
+ final double borderMinZ = worldborder.getMinZ() + COLLISION_EPSILON; // -Z
|
|
||||||
+ final double borderMaxZ = worldborder.getMaxZ() - COLLISION_EPSILON; // +Z
|
|
||||||
|
|
||||||
return
|
|
||||||
- // Not intersecting if we're smaller
|
|
||||||
- !voxelShapeIntersect(
|
|
||||||
- boxMinX + COLLISION_EPSILON, Double.NEGATIVE_INFINITY, boxMinZ + COLLISION_EPSILON,
|
|
||||||
- boxMaxX - COLLISION_EPSILON, Double.POSITIVE_INFINITY, boxMaxZ - COLLISION_EPSILON,
|
|
||||||
- borderMinX, Double.NEGATIVE_INFINITY, borderMinZ, borderMaxX, Double.POSITIVE_INFINITY, borderMaxZ
|
|
||||||
- )
|
|
||||||
- &&
|
|
||||||
-
|
|
||||||
- // Are intersecting if we're larger
|
|
||||||
- voxelShapeIntersect(
|
|
||||||
- boxMinX - COLLISION_EPSILON, Double.NEGATIVE_INFINITY, boxMinZ - COLLISION_EPSILON,
|
|
||||||
- boxMaxX + COLLISION_EPSILON, Double.POSITIVE_INFINITY, boxMaxZ + COLLISION_EPSILON,
|
|
||||||
- borderMinX, Double.NEGATIVE_INFINITY, borderMinZ, borderMaxX, Double.POSITIVE_INFINITY, borderMaxZ
|
|
||||||
- );
|
|
||||||
+ // within the border at present
|
|
||||||
+ !isCollidingWithBorderEdge(worldborder, boxMinX, boxMaxX, boxMinZ, boxMaxZ)
|
|
||||||
+ // outside the border if we are larger or the border is shrunk
|
|
||||||
+ && boxMinX < borderMinX || boxMaxX > borderMaxX || boxMinZ < borderMinZ || boxMaxZ > borderMaxZ;
|
|
||||||
+ // Sakura end
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isCollidingWithBorderEdge(final WorldBorder worldborder, final AABB boundingBox) {
|
|
||||||
@@ -1584,11 +1576,13 @@ public final class CollisionUtil {
|
|
||||||
|
|
||||||
public static boolean isCollidingWithBorderEdge(final WorldBorder worldborder, final double boxMinX, final double boxMaxX,
|
|
||||||
final double boxMinZ, final double boxMaxZ) {
|
|
||||||
- final double borderMinX = worldborder.getMinX() + COLLISION_EPSILON; // -X
|
|
||||||
- final double borderMaxX = worldborder.getMaxX() - COLLISION_EPSILON; // +X
|
|
||||||
+ // Sakura start - compare against an enlarged border
|
|
||||||
+ final double borderMinX = worldborder.getMinX() - COLLISION_EPSILON; // -X
|
|
||||||
+ final double borderMaxX = worldborder.getMaxX() + COLLISION_EPSILON; // +X
|
|
||||||
|
|
||||||
- final double borderMinZ = worldborder.getMinZ() + COLLISION_EPSILON; // -Z
|
|
||||||
- final double borderMaxZ = worldborder.getMaxZ() - COLLISION_EPSILON; // +Z
|
|
||||||
+ final double borderMinZ = worldborder.getMinZ() - COLLISION_EPSILON; // -Z
|
|
||||||
+ final double borderMaxZ = worldborder.getMaxZ() + COLLISION_EPSILON; // +Z
|
|
||||||
+ // Sakura end
|
|
||||||
|
|
||||||
return boxMinX < borderMinX || boxMaxX > borderMaxX || boxMinZ < borderMinZ || boxMaxZ > borderMaxZ;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user