Files
Purpur/purpur-server/paper-patches/features/0004-Add-EntityTeleportHinderedEvent.patch
granny b6d73e8ce6 Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@e3aca921 Replace ConcurrentUtil's Validate with Objects
PaperMC/Paper@9a626dd7 Rewrite ticket counter system
PaperMC/Paper@65250cbe Drop "Optimize Collision to not load chunks"
PaperMC/Paper@55d56d91 Apply "Flush regionfiles on save configuration option"
PaperMC/Paper@920e8d35 Apply "Optimise collision checking in player move packet handling"
PaperMC/Paper@ec492d3f Apply "Improve keepalive ping system"
PaperMC/Paper@8f659478 Apply "Optimise EntityScheduler ticking"
PaperMC/Paper@086b4fd4 Apply "Optional per player mob spawns"
PaperMC/Paper@2f4211ed Apply "Improve cancelling PreCreatureSpawnEvent with per player mob spawns"
PaperMC/Paper@b6d95574 Apply "Optimize Hoppers"
PaperMC/Paper@388e6936 update generator
PaperMC/Paper@a3c89a8f add javadocs for new api
PaperMC/Paper@fcc763ad Call BlockRedstoneEvent for the shelf
PaperMC/Paper@03eb18bb replace requireNonNull by checkArgument and deprecate MCUtil#toLocation
PaperMC/Paper@6b7bf014 bump built-in datapack version
PaperMC/Paper@2779a538 deprecate #lanterns material tag in favour of vanilla tag
PaperMC/Paper@6f9957e8 Mannequin#createDefaultProfile -> Mannequin#defaultProfile
PaperMC/Paper@24874e53 Also rename Mannequin profile getter/setters for consistency
PaperMC/Paper@bc2ae107 Fix default respawn dimension being null for new worlds
PaperMC/Paper@eb421583 Use 0.0.4 release of ConcurrentUtil
PaperMC/Paper@bb017458 1.21.9-pre2
PaperMC/Paper@02492043 1.21.9-pre2 feature patches
PaperMC/Paper@9360ba42 Identifying comments for MinecraftServer
PaperMC/Paper@5d3aa537 Some diff improvements in prepare spawn task
PaperMC/Paper@22ad4519 Move some stuff to ATs
PaperMC/Paper@0ea15c97 Drop no longer applicable ATs
PaperMC/Paper@cf78f2a2 bump api-version/datapack format and add a copper torch tag
PaperMC/Paper@60cb0dfc generate ClientOption enums and mark CraftBlockData impl as null marked
PaperMC/Paper@40252892 Add pre2 to api version
PaperMC/Paper@f2cb073a Set build channel to alpha
PaperMC/Paper@90b29c4c Port most of the anti-xray patch
PaperMC/Paper@4a8e88dc Disable oldPaperCommit to fix CI build
PaperMC/Paper@121ac2eb Port the last Anti-XRay hunk
PaperMC/Paper@f43641f8 Use ConcurrentUtil 0.0.5
PaperMC/Paper@1f79388d fix end portal teleportation
PaperMC/Paper@2efb400a [ci/skip] Adjust spawn location event docs
PaperMC/Paper@cb9fc05d simplify overloads
PaperMC/Paper@25ecc590 Enable Anti-Xray
PaperMC/Paper@4d7185f6 Add AsyncPlayerSpawnLocationEvent#isNewPlayer (#13081)
PaperMC/Paper@dc474a89 Fixup vanilla code for Anti-Xray changes
PaperMC/Paper@0e23b024 Add back null check for chunkPacketBlockController
2025-09-21 19:45:04 -07:00

51 lines
3.3 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Mariell Hoversholm <proximyst@proximyst.com>
Date: Sat, 9 Jan 2021 15:26:04 +0100
Subject: [PATCH] Add EntityTeleportHinderedEvent
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index ae850c7366e438e5721f0914b48a1e36408e8917..e5d23a8d571fda492bc6dd6ee6694f175ff30ba1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -314,6 +314,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
boolean retainPassengers = flagSet.contains(io.papermc.paper.entity.TeleportFlag.EntityState.RETAIN_PASSENGERS);
// Don't allow teleporting between worlds while keeping passengers
if (flagSet.contains(io.papermc.paper.entity.TeleportFlag.EntityState.RETAIN_PASSENGERS) && this.entity.isVehicle() && location.getWorld() != this.getWorld()) {
+ if (!new org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent(entity.getBukkitEntity(), org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent.Reason.IS_VEHICLE, cause).callEvent()) // Purpur - Add EntityTeleportHinderedEvent
return false;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 33908430c27e8590b6509a1dea456b44ebb665c1..0d93eb5c28570c0d82846f3dfaeac28e94cb420c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1424,6 +1424,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
// Paper start - Teleport passenger API
// Don't allow teleporting between worlds while keeping passengers
if (ignorePassengers && entity.isVehicle() && location.getWorld() != this.getWorld()) {
+ if (!new org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent(entity.getBukkitEntity(), org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent.Reason.IS_VEHICLE, cause).callEvent()) // Purpur - Add EntityTeleportHinderedEvent
return false;
}
@@ -1445,6 +1446,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
}
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
+ if (!new org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent(entity.getBukkitEntity(), org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent.Reason.IS_VEHICLE, cause).callEvent()) // Purpur - Add EntityTeleportHinderedEvent
return false;
}