Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,7 @@ index 88b81a5fbc88e6240f86c1e780d80eb4b601df8c..00a5ed09caa2689543bd47bcd93d5a61
import java.io.Writer;
import java.nio.file.Path;
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 156f7ddc2fdc96b762598bad2a2b21f433518dc0..ef201f4add358fbf1818f3b2ec9e75fe2cce4c8b 100644
index 81c615d00323bdf86bdb76db17bb47288cf3feba..6b67cc939851745718f919488c997eb6719a16fc 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -544,6 +544,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
Expand Down Expand Up @@ -527,10 +527,10 @@ index fd0cc1bf9e4425a0924ed77854907deec1a7348e..1c9e5f61d182cf60caa885135abddc87
movement = this.maybeBackOffFromEdge(movement, type);
Vec3 vec3 = this.collide(movement);
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 4123354a660f85905c8c2db1c5377201c2b8267e..7ba7a00b8dee651ca7a3cab5b64b4ae11aa66da9 100644
index 17139bfb7fa50e9968008d696d9eb348179360d3..027d6605d483baebecb8dad5ab859543dbe393ef 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -3163,6 +3163,14 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3172,6 +3172,14 @@ public abstract class LivingEntity extends Entity implements Attackable {
return false;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,36 @@
}
}

@@ -394,10 +_,10 @@
boolean flag = this instanceof Player;
if (this.isInWall()) {
this.hurtServer(serverLevel1, this.damageSources().inWall(), 1.0F);
- } else if (flag && !serverLevel1.getWorldBorder().isWithinBounds(this.getBoundingBox())) {
- double d = serverLevel1.getWorldBorder().getDistanceToBorder(this) + serverLevel1.getWorldBorder().getDamageSafeZone();
+ } else if (flag && !this.getWorldBorder().isWithinBounds(this.getBoundingBox())) { // Paper - use the first WorldBorder available
+ double d = this.getWorldBorder().getDistanceToBorder(this) + serverLevel1.getWorldBorder().getDamageSafeZone(); // Paper - use the first WorldBorder available
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nitpicky
But I don't believe "use first world border available" really describes the changes

Maybe smth like "use players worldborder, if present"

if (d < 0.0) {
- double damagePerBlock = serverLevel1.getWorldBorder().getDamagePerBlock();
+ double damagePerBlock = this.getWorldBorder().getDamagePerBlock(); // Paper - use the first WorldBorder available
if (damagePerBlock > 0.0) {
this.hurtServer(serverLevel1, this.damageSources().outOfBorder(), Math.max(1, Mth.floor(-d * damagePerBlock)));
}
@@ -478,6 +_,15 @@
return Mth.lerp((float)this.getAttributeValue(Attributes.MOVEMENT_EFFICIENCY), super.getBlockSpeedFactor(), 1.0F);
}

+ // Paper start - helper for WorldBorder
+ private net.minecraft.world.level.border.WorldBorder getWorldBorder() {
+ if (this instanceof ServerPlayer serverPlayer && serverPlayer.getBukkitEntity().hasClientWorldBorder()) {
+ return ((org.bukkit.craftbukkit.CraftWorldBorder)serverPlayer.getBukkitEntity().getWorldBorder()).getHandle();
+ }
+ return this.level().getWorldBorder();
+ }
+ // Paper end
+
public float getLuck() {
return 0.0F;
}
@@ -535,7 +_,7 @@
this.deathTime++;
if (this.deathTime >= 20 && !this.level().isClientSide() && !this.isRemoved()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1522,7 +1522,9 @@ public void addWorld(World world) {

@Override
public WorldBorder createWorldBorder() {
return new CraftWorldBorder(new net.minecraft.world.level.border.WorldBorder());
net.minecraft.world.level.border.WorldBorder worldBorder = new net.minecraft.world.level.border.WorldBorder();
worldBorder.setDamagePerBlock(0);
return new CraftWorldBorder(worldBorder);
}

@Override
Expand Down
Loading