Files
Purpur/patches/server/0097-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch
William Blake Galbreath d652384e4a Updated Upstream (Paper)
Upstream has released updates that appears to apply and compile correctly

Paper Changes:
1c446c22 Fix CME when adding a passenger during Spawn events (#4616)
f3927b25 Fix "Not a string" Map Conversion spam - Fixes #3901
1b64536b Clarify the JavaDocs for Entity.getEntitySpawnReason() in response to #4361
6b22219c Remove unnecessary space for provided plugins, fixes #4608
3ece9036 [CI-SKIP] [Auto] Rebuild Patches
551fac7e Fix deop kicking non-whitelisted player when white list is not enabled
faf8eb03 Updated Upstream (CraftBukkit) (#4622)
2020-10-10 16:41:13 -05:00

41 lines
2.2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Mon, 13 Jul 2020 11:40:00 -0500
Subject: [PATCH] Add option to teleport to spawn if outside world border
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 45a2979380..ca70050ce0 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -278,6 +278,13 @@ public abstract class EntityLiving extends Entity {
double d1 = this.world.getWorldBorder().getDamageAmount();
if (d1 > 0.0D) {
+ // Purpur start
+ if (world.purpurConfig.teleportIfOutsideBorder && this instanceof EntityPlayer) {
+ this.ejectPassengers();
+ this.stopRiding(true);
+ ((EntityPlayer) this).playerConnection.teleport(MCUtil.toLocation(world, world.getSpawn()));
+ } else
+ // Purpur end
this.damageEntity(DamageSource.STUCK, (float) Math.max(1, MathHelper.floor(-d0 * d1)));
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index de98b45cfa..5a38ee5bd9 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -180,6 +180,11 @@ public class PurpurWorldConfig {
playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack);
}
+ public boolean teleportIfOutsideBorder = false;
+ private void teleportIfOutsideBorder() {
+ teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder);
+ }
+
public boolean silkTouchEnabled = false;
public String silkTouchSpawnerName = "Spawner";
public List<String> silkTouchSpawnerLore = new ArrayList<>();